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 會在成功或適當的 NTSTATUS 值上傳回STATUS_SUCCESS,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_REDIRECTOR_HAS_OPEN_HANDLES | 網路迷你重新導向器有開啟的句柄,防止它目前停止。 |
STATUS_REDIRECTOR_NOT_STARTED | 網路迷你重新導向器未啟動。 |
備註
MRxStop 會從 RDBSS 的觀點停止和取消初始化網路迷你重新導向器。 停止網路迷你重新導向器可能需要釋放記憶體配置和其他系統資源。
呼叫 MRxStop 之前,RDBSS 會修改下列值:
RxContext 所指向之RX_CONTEXT結構中的 MajorFunction 成員會設定為 IRP 的主要函式。
如果這是用來停止網路迷你重新導向器的 FSTCL 要求,則 RxContext 所指向之RX_CONTEXT結構的 LowIoContext.ParamsFor.FsCCtl.FsCCode 成員會設定為 IRP 的 FSCTL 程式代碼。
RxDeviceObject 所指向之RDBSS_DEVICE_OBJECT結構的 StartStopContext.State 成員會設定為 RDBSS_STOP_IN_PROGRESS
RxDeviceObject 所指向之RDBSS_DEVICE_OBJECT結構的 StartStopContext.pStopContext 成員會設定為 RxContext 參數。
MRxStop 是由 RDBSS 從 RxStopMinirdr 例程呼叫。
如果 MRxStop 傳回STATUS_SUCCESS,則例程成功。 任何其他傳回值表示停止網路迷你重新導向器時發生錯誤。
如果 MRxStop 傳回STATUS_SUCCESS,RDBSS 會將 RDBSS 的狀態設定為RDBSS_STARTABLE。 此狀態會儲存在 RxDeviceObject 所指向之RDBSS_DEVICE_OBJECT結構的 StartStopContext.State 成員中。
網路迷你重新導向器通常會維護內部變數,指出是否已啟動網路迷你重新導向器。 例如,網路迷你重新導向器可能會追蹤何時停止、啟動,以及啟動作業或停止作業正在進行時。
規格需求
目標平台 |
桌面 |
標頭 |
Mrx.h (包含 Mrx.h) |