RxFinalizeConnection 関数 (rxprocs.h)
RxFinalizeConnection は、共有への接続を削除します。 接続で開いているファイルは、指定された力のレベルに応じて閉じられます。 ネットワーク ミニ リダイレクターは、接続を強制的に閉じるオプションが指定されていない限り、パフォーマンス上の理由からトランスポート接続を開いたままにすることを選択する場合があります。
構文
NTSTATUS RxFinalizeConnection(
IN OUT PNET_ROOT NetRoot,
IN OUT PV_NET_ROOT VNetRoot,
IN LOGICAL ForceFilesClosed
);
パラメーター
NetRoot
[入力、出力]最終処理されるNET_ROOT構造体へのポインター。
VNetRoot
最終処理されるV_NET_ROOT構造体へのポインター。
ForceFilesClosed
RxFinalizeConnection ルーチンの動作を制御するフラグ。 フラグには、次のいずれかの値を指定できます。
- True
- False
- 0 xff
RxFinalizeConnection は、孤立したファイルやIRP_MN_NOTIFY_CHANGE_DIRECTORY要求が開いている場合でも成功します。 オプションは、これらの孤立したファイルを強制的に閉じます。
ファイルまたは変更通知が開いている場合、RxFinalizeConnection は失敗します。
RxFinalizeConnection は、接続の追加要求のためにV_NET_ROOT構造体の追加参照を削除しますが、それ以外の場合は FALSE のように動作します。 ファイルまたは変更通知が開いている場合、RxFinalizeConnection は失敗します。
戻り値
RxFinalizeConnection は、成功した場合はSTATUS_SUCCESSを返し、失敗した場合は次のいずれかのエラー コードを返します。
リターン コード | 説明 |
---|---|
|
RX_CONTEXT構造体の Flags メンバーは、IRP が取り消されたことを示します。 |
|
接続は引き続き使用されています。 |
|
ファイルが開いていたため、リモート接続を削除しないでください。 |
|
関連付けられている に対する排他ロック |
注釈
RxFinalizeConnection は通常、ユーザー モードからのカスタム IOCTL 要求の受信に応答して、ネットワーク ミニ リダイレクター ドライバーによって呼び出されます。 たとえば、ユーザーはコマンド ラインから "NET USE x: /d" を実行して共有を削除できます。 この要求は、ネットワーク ミニ リダイレクターによって提供されるネットワーク プロバイダー DLL を介して、接続を削除するために RxFinalizeConnection ルーチンを呼び出すネットワーク ミニ リダイレクター カーネル ドライバーに送信されるカスタム IOCTL 要求にマップされます。
RxFinalizeConnection は、特定のV_NET_ROOT構造体に対するすべての未処理の要求を取り消します。 これらのV_NET_ROOT構造は、開かれて操作されるファイルとは無関係に作成および削除されます。 したがって、削除操作が試行されると、未処理のすべての要求が取り消される必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | rxprocs.h (Rxprocs.h を含む) |
IRQL | <= APC_LEVEL |