CreateNamedPipe

機能

名前付きパイプを作成

Declare Function CreateNamedPipe Lib "kernel32.dll" Alias "CreateNamedPipeA" _
(ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, _
ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, _
ByVal nDefaultTimeOut As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Declare Function CreateNamedPipe Lib "kernel32.dll" Alias "CreateNamedPipeA" _
(ByVal lpName As String, ByVal dwOpenMode As Integer, ByVal dwPipeMode As Integer, _
ByVal nMaxInstances As Integer, ByVal nOutBufferSize As Integer, ByVal nInBufferSize As Integer, _
ByVal nDefaultTimeOut As Integer, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Integer

HANDLE CreateNamedPipe(
LPCTSTR lpName,
DWORD dwOpenMode,
DWORD dwPipeMode,
DWORD nMaxInstances,
DWORD nOutBufferSize,
DWORD nInBufferSize,
DWORD nDefaultTimeOut,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);


引数
lpName

名前つきパイプの名称を格納したNULL文字で終わる文字列

dwOpenMode

パイプハンドルのパイプアクセスモードを指定する定数
双方向モード、ライトスルーモード、セーフティーアクセスモードを指定する

dwPipeMode

以下のタイプモードのいずれかを指定する
・書き込みモード
・読み込みモード
・ウェイトモード

nMaxInstances

パイプを利用するアプリケーションインスタンスの最大値を指定する

nOutBufferSize

出力バッファのサイズをバイト単位で指定する

nInBufferSize

入力バッファのサイズをバイト単位で指定する

nDefaultTimeOut

タイムアウトの発生時間をミリ単位で指定する

lpSecurityAttributes

SECURITY_ATTRIBUTES構造体

戻り値

成功したとき            名前付きパイプのサーバー終端を識別するハンドル
失敗したとき            INVALID_HANDLE_VALUE

備考

新しい名前付きパイプが作成された場合、パラメーターからのアクセスコントロール
リスト(ACL)は名前付きパイプのための任意のアクセスコントロールを定義する。

dwOpenMode


PIPE_ACCESS_DUPLEX                          双方向モードで作成する
PIPE_ACCESS_INBOUND                         クライアントからサーバーにだけ通信を行う
PIPE_ACCESS_OUTBOUND                        サーバーからクライアントにだけ通信を行う
(ライトスルーか、オーバーラップの指定)
FILE_FLAG_WRITE_THROUGH                     ライトスルーモードである
FILE_FLAG_OVERLAPPED                        オーバーラップモードである
(セーフティアクセスモードの設定を指定)
WRITE_DAC                                   呼び出し側は任意のアクセスを可能にして
                                             アクセスコントロールのリストを制御する
WRITE_OWNER                                 呼び出し側は名前付きパイプの所有者に対して
                                             書き込みが許可される
ACCESS_SYSTEM_SECURITY                      呼び出し側はシステムアクセスコントロールリストに対して
                                             書き込みが許可される

dwPipeModeの定数


(書き込みモードの場合)
PIPE_TYPE_BYTE                              データはバイトの流れとしてパイプに書き込まれる
                                             PIPE_READMODE_MESSAGEと同時に指定できない
PIPE_TYPE_MESSAGE                           データはメッセージの流れとしてパイプに書き込まれる
                                             PIPE_TYPE_BYTEと同時に指定できない
(読み込みモードの場合)
PIPE_READMODE_BYTE                          データはバイトの流れとして読み込まれる
                                             PIPE_TYPE_MESSAGE,PIPE_TYPE_BYTEと同時に指定できない
PIPE_READMODE_MESSAGE                       データはメッセージの流れとして読まれる
                                             PIPE_TYPE_MESSAGEが指定されている場合のみ有効である
(ウェイトモードの場合)
PIPE_WAIT                                   ブロックモードで動作する
                                             このモードの使用はクライアントプロセスが動作を
                                             実行する状況において無制限に待つことを意味する
PIPE_NOWAIT                                 ノンブロックモードで動作する