PeekNamedPipe

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

PeekNamedPipe功能将数据从命名或匿名管道复制到缓冲区,而不从管道中删除。它还返回有关管道中数据的信息。

BOOL PeekNamedPipe(

HANDLE 【hNamedPipe】,//将管道复制到句柄
LPVOID 【lpBuffer】,//指向数据缓冲区的指针
DWORD 【nBufferSize】,//数据缓冲区的大小(以字节为单位)
LPDWORD 【lpBytesRead】,//指向读取字节数的指针
LPDWORD 【lpTotalBytesAvail】,//指向总可用字节数的指针
LPDWORD 【lpBytesLeftThisMessage】//指向此消息中未读字节的指针
); 

参数

【hNamedPipe】

标识管道。该参数可以是CreateNamedPipeCreateFile函数返回的命名管道实例的句柄,或者它可以是CreatePipe函数返回的匿名管道的读取端的句柄。手柄必须具有对管道的GENERIC_READ访问权限。

【lpBuffer】

指向缓冲区,接收从管道读取的数据。如果不读取数据,此参数可以为NULL。

【nBufferSize】

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

【lpBytesRead】

指向接收从管道读取的字节数的32位变量。如果不读取数据,此参数可以为NULL。

【lpTotalBytesAvail】

指向一个32位变量,它接收可从管道读取的总字节数。如果不读取数据,此参数可以为NULL。

【lpBytesLeftThisMessage】

指向接收此消息中剩余字节数的32位变量。字节型命名管道或匿名管道的此参数为零。如果不读取数据,此参数可以为NULL。

返回值

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

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

备注

PeekNamedPipeReadFile功能类似,但有以下例外:

*从管道读取的数据不会从管道缓冲区中删除。

*即使管道中没有数据,该函数也会立即返回。命名管道句柄(阻塞或非阻塞)的等待模式对该函数没有影响。

*该函数可以返回有关管道内容的附加信息。

如果指定的句柄是字节读取模式下的命名管道句柄,则该函数读取所有可用字节,直到【nBufferSize】中指定的大小。对于消息读取模式下的命名管道句柄,该函数读取管道中的下一条消息。如果消息大于【nBufferSize】,则在读取指定的字节数后,该函数将返回TRUE。在这种情况下,【lpBytesLeftThisMessage】将会收到消息中剩余的字节数。

也可以看看

CreateFile, CreateNamedPipe, CreatePipe, ReadFile, WriteFile