Share via


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

RxFinalizeConnection は、孤立したファイルやIRP_MN_NOTIFY_CHANGE_DIRECTORY要求が開いている場合でも成功します。 オプションは、これらの孤立したファイルを強制的に閉じます。

False

ファイルまたは変更通知が開いている場合、RxFinalizeConnection は失敗します。

0 xff

RxFinalizeConnection は、接続の追加要求のためにV_NET_ROOT構造体の追加参照を削除しますが、それ以外の場合は FALSE のように動作します。 ファイルまたは変更通知が開いている場合、RxFinalizeConnection は失敗します。

戻り値

RxFinalizeConnection は、成功した場合はSTATUS_SUCCESSを返し、失敗した場合は次のいずれかのエラー コードを返します。

リターン コード 説明
STATUS_CANCELLED
RX_CONTEXT構造体の Flags メンバーは、IRP が取り消されたことを示します。
STATUS_CONNECTION_IN_USE
接続は引き続き使用されています。
STATUS_FILES_OPEN
ファイルが開いていたため、リモート接続を削除しないでください。
STATUS_LOCK_NOT_GRANTED
関連付けられている に対する排他ロック

注釈

RxFinalizeConnection は通常、ユーザー モードからのカスタム IOCTL 要求の受信に応答して、ネットワーク ミニ リダイレクター ドライバーによって呼び出されます。 たとえば、ユーザーはコマンド ラインから "NET USE x: /d" を実行して共有を削除できます。 この要求は、ネットワーク ミニ リダイレクターによって提供されるネットワーク プロバイダー DLL を介して、接続を削除するために RxFinalizeConnection ルーチンを呼び出すネットワーク ミニ リダイレクター カーネル ドライバーに送信されるカスタム IOCTL 要求にマップされます。

RxFinalizeConnection は、特定のV_NET_ROOT構造体に対するすべての未処理の要求を取り消します。 これらのV_NET_ROOT構造は、開かれて操作されるファイルとは無関係に作成および削除されます。 したがって、削除操作が試行されると、未処理のすべての要求が取り消される必要があります。

要件

要件
対象プラットフォーム デスクトップ
Header rxprocs.h (Rxprocs.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

NET_ROOT構造体

V_NET_ROOT構造体