CreatePipe

CreatePipe是創建一個匿名管道,並從中得到讀寫管道的句柄。

Syntax

BOOL WINAPI CreatePipe( _Out_PHANDLE hReadPipe, _Out_PHANDLE hWritePipe, _In_opt_LPSECURITY_ATTRIBUTES lpPipeAttributes, _In_DWORD nSize);

Parameters

hReadPipe[out]

返回一個可用於讀管道數據的檔案句柄

hWritePipe[out]

返回一個可用於寫管道數據的檔案句柄

lpPipeAttributes[in, optional]

傳入一個SECURITY_ATTRIBUTES結構的指針,該結構用於決定該函式返回的句柄是否可被子進程繼承。如果傳NULL,則返回的句柄是不可繼承的。

該結構的lpSecurityDescriptor成員用於設定管道的安全屬性,如果傳NULL,那么該管道將獲得一個默認的安全屬性,該屬性與創建該管道的用戶賬戶許可權ACLs的安全令牌(token)相同。

nSize[in]

管道的緩衝區大小。但是這僅僅只是一個理想值,系統根據這個值創建大小相近的緩衝區。如果傳入0 ,那么系統將使用一個默認的緩衝區大小。

VB聲明

Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long

說明

創建一個匿名管道

返回值

Long,非零表示成功,零表示失敗。會設定GetLastError

參數表

參數 類型及說明

phReadPipe Long,指定一個變數,設為管道讀入(輸出)端的一個句柄

phWritePipe Long,指定一個變數,設為管道寫入(輸入)端的一個句柄

lpPipeAttributes SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結構,或者傳遞零值(將參數聲明為ByVal As Long,並傳遞零值),以便使用不允許繼承的一個默認描述符

nSize Long,管道緩衝區的建議大小。零表示用默認值

註解

匿名管道不允許異步操作,所以如在一個管道中寫入數據,且緩衝區已滿,那么除非另一個進程從管道中讀出數據,從而騰出了緩衝區的空間,否則寫入函式不會返回

相關詞條

相關搜尋

熱門詞條

聯絡我們