MRxCreate 例程
RDBSS 會呼叫MRxCreate 例程,以要求網路迷你重新導向器建立文件系統物件。
語法
PMRX_CALLDOWN MRxCreate;
NTSTATUS MRxCreate(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
參數
RxContext [in, out]
RX_CONTEXT 結構的指標。 此參數包含要求作業的 IRP。
傳回值
MRxCreate 會在成功或適當的 NTSTATUS 值上傳回STATUS_SUCCESS,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法完成作業。 |
STATUS_NETWORK_ACCESS_DENIED | 網路存取遭到拒絕。 如果系統要求網路迷你重新導向器在唯讀共用上開啟新檔案,則可以傳回此錯誤。 |
STATUS_NOT_IMPLEMENTED | 未實作所要求的功能,例如遠端開機或遠端頁面檔案。 |
STATUS_NOT_SUPPORTED | 不支援要求的功能,例如擴充屬性。 |
STATUS_OBJECT_NAME_COLLISION | 系統要求網路迷你重新導向器建立已經存在的檔案。 |
STATUS_OBJECT_NAME_NOT_FOUND | 找不到物件名稱。 如果系統要求網路迷你重新導向器開啟不存在的檔案,可以傳回此錯誤。 |
STATUS_OBJECT_PATH_NOT_FOUND | 找不到物件路徑。 如果要求NTFS資料流物件,而且遠端檔案系統不支持數據流,則可以傳回此錯誤。 |
STATUS_REPARSE | 需要重新分析才能處理符號連結。 |
STATUS_RETRY | 應該重試作業。 如果網路迷你重新導向器遇到共用違規或拒絕存取錯誤,則可以傳回此錯誤。 |
備註
RDBSS 會呼叫 MRxCreate,要求網路迷你重新導向器在網路上開啟文件系統物件。 RDBSS 會發出此呼叫,以回應接收 IRP_MJ_CREATE 要求。
呼叫 MRxCreate 之前,RDBSS 會修改 RxContext 參數所指向之RX_CONTEXT結構中的下列成員:
pRelevantSrvOpen 設定為 SRV_OPEN 結構。
Create.pSrvCall 會設定為 SRV_CALL 結構。
Create.NtCreateParameters 會設定為所要求的NT_CREATE_PARAMETERS。
在網路迷你重新導向器的內容中,檔案物件是指相關聯的檔案控制區塊, (FCB) 和檔案物件擴展名 (FOBX) 結構。 檔案物件與FOBX之間有一對一的對應。 許多檔案物件都會參考相同的FCB,代表遠端伺服器上的單一檔案。 用戶端可以有數個不同的開啟要求, (NtCreateFile 要求) 在相同的FCB上,而且每個要求都會建立新的檔案物件。 RDBSS 和網路迷你重新導向器可以選擇傳送比收到的 NtCreateFile 要求少的 MRxCreate 要求,實際上在數個 FOBX 之間共用SRV_OPEN結構。
如果 MRxCreate 要求是針對檔案覆寫而 傳回 MRxCreate STATUS_SUCCESS,則 RDBSS 會取得分頁 I/O 資源並截斷檔案。 如果快取管理員正在快取檔案,RDBSS 會更新快取管理員剛從伺服器接收的大小。
傳回之前,MRxCreate 必須設定 RxContext 參數所指向之RX_CONTEXT結構的 CurrentIrp-IoStatus.Information> 成員。
規格需求
目標平台 |
桌面 |
標頭 |
Mrx.h (包含 Mrx.h) |