PFLT_CONNECT_NOTIFYコールバック関数 (fltkernel.h)
FltMgr は、ミニフィルターの ConnectNotifyCallback コールバック関数を呼び出して、通信ポートへの新しい接続が要求されたときにミニフィルターに通知します。
PFLT_CONNECT_NOTIFY PfltConnectNotify;
NTSTATUS PfltConnectNotify(
PFLT_PORT ClientPort,
PVOID ServerPortCookie,
PVOID ConnectionContext,
ULONG SizeOfContext,
PVOID *ConnectionPortCookie
)
{...}
ClientPort
[in]ユーザー モード アプリケーションとカーネル モード ミニフィルターの間で確立されている新しいクライアント ポートの非透過的な FltMgr生成されたハンドル。
ミニフィルターは、このクライアント ポートでメッセージを送信および応答するときに FltSendMessageをするには、このハンドルを ClientPort パラメーターとして渡す必要があります。
ミニフィルターは、最終的に FltCloseClientPortを呼び出してこのクライアント ポートを閉じる必要があります。通常は、DisconnectNotifyCallback ルーチンから閉じます。
ClientPort は、FltCreateCommunicationPortによって返される ServerPort ハンドル同じではありません。
ServerPortCookie
[in]ミニフィルターによって定義されたコンテキスト情報へのポインター。 ミニフィルターでは、この情報を使用して、作成する可能性がある複数の通信サーバー ポートを区別できます。 サーバー ポートが作成されると、ミニフィルター ドライバーは、このコンテキスト ポインターを ServerPortCookie パラメーターとして渡して、FltCreateCommunicationPort をしました。
ConnectionContext
[in]ユーザー モード アプリケーションが lpContext パラメーターで FilterConnectCommunicationPortをするために渡したコンテキスト情報ポインター。
SizeOfContext
[in]ConnectionContext が指 バッファーのサイズ (バイト単位)。
ConnectionPortCookie
[out]このクライアント ポートを一意に識別するミニポートの情報へのポインター。 ミニフィルターは、FltMgr が後続の呼び出しで接続 MessageNotifyCallback に渡し、DisconnectNotifyCallbackをするときに、この Cookie を使用して接続を識別できます。
ConnectNotifyCallback は、操作が成功し、接続が受け入れられた場合にSTATUS_SUCCESSを返します。 それ以外の場合は、次のような適切な NTSTATUS 値が返されます。
リターン コード | 意味 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 操作を完了するのに十分なリソースがありません。 |
STATUS_INVALID_PARAMETER | 1 つ以上の入力パラメーターが無効です。 |
FltMgr 、ユーザー モード アプリケーションが FilterConnectCommunicationPort を呼び出してミニフィルター ドライバーに接続要求を送信するたびに、このルーチンを呼び出します。
ミニフィルターは、接続試行に必要な検証を実行する必要があります。
詳細については、「ユーザー モードとミニフィルターの間の通信を参照してください。
要件 | 価値 |
---|---|
ヘッダー | fltkernel.h |
ライブラリ | FltMgr.lib |
DLL | FltMgr.sys |
IRQL | PASSIVE_LEVEL |
FilterConnectCommunicationPort
FltCloseClientPortをする
FltCreateCommunicationPortをする
FltSendMessageをする
DisconnectNotifyCallbackの