RxFinalizeConnection 函式 (rxprocs.h)
RxFinalizeConnection 會 刪除與共享的連線。 根據指定的強制層級,會關閉連線上開啟的任何檔案。 除非指定了某些選項來強制關閉連線,否則網路迷你重新導向器可能會選擇讓傳輸連線保持開啟狀態。
語法
NTSTATUS RxFinalizeConnection(
IN OUT PNET_ROOT NetRoot,
IN OUT PV_NET_ROOT VNetRoot,
IN LOGICAL ForceFilesClosed
);
參數
NetRoot
[in, out]正在完成之NET_ROOT結構的指標。
VNetRoot
要完成之V_NET_ROOT結構的指標。
ForceFilesClosed
控制 RxFinalizeConnection 例程行為的旗標。 旗標可以是下列其中一個值:
- 真
- 假
- 0xff
即使孤立檔案和IRP_MN_NOTIFY_CHANGE_DIRECTORY要求已開啟,RxFinalizeConnection 仍會成功。 選項會強制關閉這些孤立檔案。
如果檔案或變更通知已開啟,RxFinalizeConnection 會失敗。
RxFinalizeConnection 會因為新增連接要求而移除V_NET_ROOT結構上的額外參考,否則會像 FALSE 一樣。 如果檔案或變更通知已開啟,RxFinalizeConnection 會失敗。
傳回值
RxFinalizeConnection 會在成功時傳回STATUS_SUCCESS,或在失敗時傳回下列其中一個錯誤碼:
傳回碼 | Description |
---|---|
|
RX_CONTEXT 結構的 Flags 成員表示 IRP 已取消。 |
|
線上仍在使用中。 |
|
檔案已開啟,因此不應該刪除遠端連線。 |
|
相關聯之的獨佔鎖定 |
備註
RxFinalizeConnection 通常是由網路迷你重新導向器驅動程式呼叫,以回應從使用者模式接收自定義 IOCTL 要求。 例如,使用者可能會從命令行執行 「NET USE x: /d」 來刪除共用。 此要求會透過網路迷你重新導向器所提供的網路提供者 DLL 對應至傳送至網路迷你重新導向器核心驅動程式的自定義 IOCTL 要求,這會呼叫 RxFinalizeConnection 例程 來刪除連線。
RxFinalizeConnection 會取消指定V_NET_ROOT結構的所有未處理要求。 這些V_NET_ROOT結構會建立和刪除,與開啟和操作的檔案無關。 因此,嘗試刪除作業時,所有未處理的要求都會取消。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | rxprocs.h (包含 Rxprocs.h) |
IRQL | <= APC_LEVEL |