次の方法で共有


MRxStop ルーチン

ネットワーク ミニ リダイレクターを停止するために、RDBSS によって呼び出される MRxStop ルーチン。

構文

PMRX_CALLDOWN_CTX MRxStop;

NTSTATUS MRxStop(
  _Inout_ PRX_CONTEXT          RxContext,
  _Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{ ... }

パラメーター

RxContext [in, out]
RX_CONTEXT 構造体へのポインター。 このパラメーターには、ネットワーク ミニ リダイレクターの停止を要求した IRP が含まれています。

RxDeviceObject [in, out]
このネットワーク ミニ リダイレクターの RDBSS_DEVICE_OBJECT 構造体へのポインター。

戻り値

MRxStop は、成功した場合に STATUS_SUCCESS を返すか、次のような適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_REDIRECTOR_HAS_OPEN_HANDLES

ネットワーク ミニ リダイレクターには、現時点で停止できないようにする開いているハンドルがあります。

STATUS_REDIRECTOR_NOT_STARTED

ネットワーク ミニ リダイレクターが開始されませんでした。

解説

MRxStop は、RDBSS の観点からネットワーク ミニ リダイレクターを停止して初期化解除します。 ネットワーク ミニ リダイレクターを停止するには、メモリ割り当てやその他のシステム リソースを解放する必要がある可能性があります。

MRxStop を呼び出す前に、RDBSS は次の値を変更します。

RxContext が指す RX_CONTEXT 構造体の MajorFunction メンバーは、IRP のメジャー関数に設定されます。

RxContext が指す RX_CONTEXT 構造体の LowIoContext.ParamsFor.FsCtl.FsControlCode メンバーは、ネットワーク ミニ リダイレクターを停止するために使用される FSTCL 要求である場合、IRP の FSCTL コードに設定されます。

RxDeviceObject が指す RDBSS_DEVICE_OBJECT 構造体の StartStopContext.State メンバーは、RDBSS_STOP_IN_PROGRESS に設定されます。

RxDeviceObject が指す RDBSS_DEVICE_OBJECT 構造体の StartStopContext.pStopContext メンバーは、RxContext パラメーターに設定されます。

MRxStop は、RxStopMinirdr ルーチンから RDBSS によって呼び出されます。

MRxStop が STATUS_SUCCESS を返した場合、ルーチンは成功しました。 その他の戻り値は、ネットワーク ミニ リダイレクターの停止中にエラーが発生したことを示します。

MRxStop が STATUS_SUCCESS を返す場合、RDBSS は RDBSS の状態を RDBSS_STARTABLE に設定します。 この状態は、RxDeviceObject が指す RDBSS_DEVICE_OBJECT 構造体の StartStopContext.State メンバーに格納されます。

通常、ネットワーク ミニ リダイレクターには、ネットワーク ミニ リダイレクターが開始されているかどうかを示す内部変数が保守されます。 たとえば、ネットワーク ミニ リダイレクターは、停止、開始、開始操作または停止操作の進行中を追跡できます。

要件

対象プラットフォーム

デスクトップ

ヘッダー

Mrx.h (Mrx.h を含む)

関連項目

MRxDevFcbXXXControlFile

MrxStart

RxStopMinirdr