GetNamedPipeHandleState

【勇芳软件工作室】汉化HomePreviousNext

GetNamedPipeHandleState函数检索有关指定命名管道的信息。返回的信息可以在命名管道的实例的生命周期内变化。

BOOL GetNamedPipeHandleState(

HANDLE 【hNamedPipe】,//命名管道的句柄
LPDWORD 【lpState】,//指示管道状态的标志的地址
LPDWORD 【lpCurInstances】,//当前管道实例数的地址
LPDWORD 【lpMaxCollectionCount】,//最大地址远程传输前的字节
LPDWORD 【lpCollectDataTimeout】,//最大地址远程传输之前的时间
LPTSTR 【lpUserName】,//客户端进程的用户名的地址
DWORD 【nMaxUserNameSize】//用户名缓冲区的大小(以字符为单位)
); 

参数

【hNamedPipe】

标识需要信息的命名管道。句柄必须具有对命名管道的GENERIC_READ访问权限。

【lpState】

指向一个32位变量,指示句柄的当前状态。如果不需要此信息,此参数可以为NULL。可以指定以下任意一个值:

含义
PIPE_NOWAIT管道手柄处于非阻塞模式。如果未指定此标志,管道手柄处于阻塞模式。
PIPE_READMODE_MESSAGE管道手柄处于消息读取模式。如果未指定此标志,则管道句柄处于字节读取模式。

【lpCurInstances】

指向接收当前管道实例数的32位变量。如果不需要此信息,此参数可以为NULL。

【lpMaxCollectionCount】

指向一个32位变量,在传输到服务器之前接收客户端计算机上要收集的最大字节数。如果指定的管道句柄位于命名管道的服务器端,或者客户端和服务器进程位于同一台计算机上,则此参数必须为NULL。如果不需要此信息,此参数可以为NULL。

【lpCollectDataTimeout】

指向一个32位变量,它接收在远程命名管道通过网络传输信息之前可以通过的最大时间(以毫秒为单位)。如果指定的管道句柄位于命名管道的服务器端,或者客户端和服务器进程位于同一台计算机上,则此参数必须为NULL。如果不需要此信息,此参数可以为NULL。

【lpUserName】

指向缓冲区,接收包含客户端应用程序的用户名字符串的以null结尾的字符串。如果指定的管道句柄是指向命名管道的客户端,则此参数必须为NULL。如果不需要此信息,此参数可以为NULL。

【nMaxUserNameSize】

指定由【lpUserName】参数指定的缓冲区的大小(以字符为单位)。如果【lpUserName】为NULL,则忽略此参数。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

即使传递给它的所有指针都为NULL,GetNamedPipeHandleState函数也将成功返回。

要设置管道手柄状态,请使用SetNamedPipeHandleState功能。

也可以看看

SetNamedPipeHandleState