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 を含む) |