FltCreateCommunicationPort 関数 (fltkernel.h)
FltCreateCommunicationPort
構文
NTSTATUS FLTAPI FltCreateCommunicationPort(
PFLT_FILTER Filter,
PFLT_PORT *ServerPort,
POBJECT_ATTRIBUTES ObjectAttributes,
PVOID ServerPortCookie,
PFLT_CONNECT_NOTIFY ConnectNotifyCallback,
PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback,
PFLT_MESSAGE_NOTIFY MessageNotifyCallback,
LONG MaxConnections
);
パラメーター
Filter
[in]呼び出し元の不透明なフィルター ポインター。
ServerPort
[out]通信サーバー ポートの不透明なポート ハンドルを受け取る呼び出し元によって割り当てられた変数へのポインター。 ミニフィルターは、このハンドルを使用して、ユーザー モード アプリケーションからの着信接続要求をリッスンします。
ObjectAttributes
[in]通信サーバー ポートの属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 この構造体は、InitializeObjectAttributes
メンバー | 価値 |
---|---|
の長さの |
InitializeObjectAttributes このメンバーを sizeof(OBJECT_ATTRIBUTES) に設定します。 |
ObjectName | ポート オブジェクトの一意の名前 (L"\MyFilterPort"など) を含む UNICODE_STRING 構造体へのポインター。 |
SecurityDescriptor | ポート オブジェクトに適用するセキュリティ記述子 (SECURITY_DESCRIPTOR) へのポインター。 必要に応じて、FltBuildDefaultSecurityDescriptor |
属性の | ポート ハンドルに必要な属性を指定するフラグのビットマスク。 これらのフラグには、OBJ_KERNEL_HANDLEを含める必要があります。 呼び出し元は必要に応じて、OBJ_CASE_INSENSITIVE フラグを設定することもできます。これは、完全一致検索を実行するのではなく、名前参照コード ObjectName の大文字と小文字を無視する必要があることを示します。 |
ServerPortCookie
[入力、省略可能]ミニフィルターによって定義されたコンテキスト情報へのポインター。 この情報を使用して、同じミニフィルターによって作成された複数の通信サーバー ポートを区別できます。 FltMgr
ConnectNotifyCallback
[in]ConnectNotifyCallback コールバック ルーチン
DisconnectNotifyCallback
[in]呼び出し元が指定した DisconnectNotifyCallback コールバック ルーチンへのポインター。 FltMgr
MessageNotifyCallback
[入力、省略可能]MessageNotifyCallback コールバック ルーチン
MaxConnections
[in]このサーバー ポートで許可される同時クライアント接続の最大数。 このパラメーターは必須であり、0 より大きい必要があります。
戻り値
FltCreateCommunicationPort
リターン コード | 形容 |
---|---|
STATUS_FLT_DELETING_OBJECT | 指定した フィルター が取り壊されています。 これはエラー コードです。 |
STATUS_INSUFFICIENT_RESOURCES | FltCreateCommunicationPort プール割り当てエラーが発生。 これはエラー コードです。 |
STATUS_OBJECT_NAME_COLLISION | 同じ名前のミニフィルター通信ポートが既に存在します。 ポート名は一意である必要があります。 これはエラー コードです。 |
備考
ミニフィルター FltCreateCommunicationPort を呼び出して、通信サーバー ポート オブジェクトを作成します。
サーバー ポートが作成されたら、ユーザー モード アプリケーションは、FilterConnectCommunicationPortを呼び出すことによってポートに接続できます。 接続されている場合、ユーザー モード アプリケーションは、FilterSendMessage、FilterGetMessage、FilterReplyMessageなどのユーザー モード メッセージング機能を呼び出すことによってメッセージを送受信できます。
呼び出し元は、FltCreateCommunicationPortの
FltCreateCommunicationPort を作成
詳細については、「ユーザー モードとミニフィルターの間の通信を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |
関連項目
FilterConnectCommunicationPort
FltBuildDefaultSecurityDescriptor の
FltCloseClientPort を
FltCloseCommunicationPort を
FltFreeSecurityDescriptor を
FltSendMessage を
InitializeObjectAttributes の
ProbeForRead の
ProbeForWrite の