CreatePipe

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

CreatePipe函数创建一个匿名管道,并返回到管道的读取和写入端的句柄。

BOOL CreatePipe(

PHANDLE 【hReadPipe】,//读取句柄变量的地址
PHANDLE 【hWritePipe】,//写入句柄变量的地址
LPSECURITY_ATTRIBUTES 【lpPipeAttributes】,//指向安全属性的指针
DWORD 【服务提供商】//为管道保留的字节数
); 

参数

【hReadPipe】

指向接收管道读取句柄的变量。

【hWritePipe】

指向接收管道写入句柄的变量。

【lpPipeAttributes】

指向SECURITY_ATTRIBUTES结构的指针,用于确定返回的句柄是否可由子进程继承。如果【lpPipeAttributes】为NULL,则无法继承句柄。

Windows NT:结构的lpSecurityDescriptor成员指定新管道的安全描述符。如果【lpPipeAttributes】为NULL,则管道将获取默??认安全描述符。

Windows 95:结构的lpSecurityDescriptor成员将被忽略。

【服务提供商】

指定管道的缓冲区大小。大小只是一个建议;系统使用该值来计算适当的缓冲机制。如果此参数为零,系统将使用默认缓冲区大小。

返回值

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

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

备注

CreatePipe创建管道,将指定的管道大小分配给存储缓冲区。CreatePipe还创建了在ReadFileWriteFile函数的后续调用中该进程用于读取和写入缓冲区的句柄。

要从管道读取,一个进程在调用ReadFile函数时使用读取句柄。ReadFile返回时,以下之一为真:写入操作在管道的写入端完成,字节数请求已被读取,或发生错误。

当进程使用WriteFile写入匿名管道时,写操作在所有字节都被写入之前不会完成。如果在写入所有字节之前管道缓冲区已满,WriteFile不会返回,直到另一个进程或线程使用ReadFile来创建更多的缓冲区空间。

也可以看看

ReadFile, SECURITY_ATTRIBUTES, WriteFile