MRxQueryFileInfo 例程
RDBSS 會呼叫MRxQueryFileInfo 例程,要求文件系統物件上的網路迷你重新導向器查詢檔案資訊。
語法
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
參數
RxContext [in, out]
RX_CONTEXT 結構的指標。 此參數包含要求作業的 IRP。
傳回值
MRxQueryFileInfo 會在成功或適當的 NTSTATUS 值上傳回STATUS_SUCCESS,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_ACCESS_DENIED | 呼叫端缺少此作業的適當安全性。 |
STATUS_BUFFER_OVERFLOW | 接收檔案信息的緩衝區太小。 這個傳回值應該視為成功,而且應該盡可能在 RxContext 參數所指向之RX_CONTEXT結構的 Info.Buffer 成員中傳回有效的數據。 |
STATUS_BUFFER_TOO_SMALL | 緩衝區太小,無法接收要求的數據。 如果傳回這個值,則 RxContext 參數所指向之RX_CONTEXT結構的 InformationToReturn 成員應該設定為預期的緩衝區大小下限,讓呼叫成功。 |
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法完成查詢。 |
STATUS_INVALID_NETWORK_RESPONSE | 從遠端伺服器收到無效的檔案信息緩衝區。 |
STATUS_INVALID_PARAMETER | 指定了無效的參數。 如果傳遞RX_CONTEXT中 FileInformationClass 成員的值無效,則可以傳回此值。 如果指定的 FileInformationClass 成員是針對 FileStreamInformation 而遠端檔案系統不支持數據流,也可以傳回此值。 |
STATUS_OBJECT_NAME_NOT_FOUND | 找不到物件名稱。 這是錯誤碼。 |
備註
RDBSS 發出 MRxQueryFileInfo 的呼叫,以回應接收 IRP_MJ_QUERY_INFORMATION 要求。
呼叫 MRxQueryFileInfo 之前,RDBSS 會修改 RxContext 參數所指向之RX_CONTEXT結構中的下列成員:
Info.FileInformationClass 成員會設定為 IrpSp-Parameters.QueryFile.FileInformationClass>,要求FILE_INFORMATION_CLASS值。
Info.Buffer 成員會從 I/O 要求封包設定為用戶緩衝區。
Info.LengthRemaining 成員會設定為 IrpSp-Parameters.QueryFile.Length>。
QueryDirectory.FileIndex 成員設定為 IrpSp-Parameters.QueryDirectory.FileIndex>。
如果 IrpSp-Flags> 已設定 SL_RESTART_SCAN 位,則會設定 QueryDirectory.RestartScan 成員。
如果 IrpSp-Flags> 已設定SL_RETURN_SINGLE_ENTRY位,則會設定 QueryDirectory.ReturnSingleEntry 成員。
如果 Fobx-UnicodeQueryTemplate.Buffer> 為 NULL 且 Fobx-Flags> 沒有設定FOBX_FLAG_MATCH_ALL位,則會設定 QueryDirectory.InitialQuery 成員。
成功時,網路迷你重新導向器應該將 RX_CONTEXT 結構的 Info.LengthRemaining 成員設定為 Info.Length 成員減去所傳回檔案資訊的長度。 如果呼叫 MRxQueryFileInfo 成功,RDBSS 會將 IRP 的 IoStatus.Information 成員設定為 IrpSp-Parameters.QueryFile.Length> 減去 RX_CONTEXT 的 Info.LengthRemaining 成員。
RDBSS 不支援 IrpSp-Flags> 集合SL_INDEX_SPECIFIED位的要求。 網路迷你重新導向器不會收到對 MRxQueryFileInfo 的呼叫,而 IrpSp-Flags> 集的SL_INDEX_SPECIFIED位。
規格需求
目標平台 |
桌面 |
標頭 |
Mrx.h (包含 Mrx.h) |