MRxQueryEaInfo 例程
RDBSS 會呼叫 MRxQueryEaInfo 例程,要求文件系統物件上的網路迷你重新導向器查詢擴充屬性資訊。
語法
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
參數
RxContext [in, out]
RX_CONTEXT 結構的指標。 此參數包含要求作業的 IRP。
傳回值
MRxQueryEaInfo 會在成功或適當的 NTSTATUS 值上傳回STATUS_SUCCESS,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_ACCESS_DENIED | 呼叫端缺少此作業的適當安全性。 |
STATUS_BUFFER_OVERFLOW | 接收擴充屬性信息的緩衝區太小。 這個傳回值應該視為成功,而且應該盡可能在 RxContext 參數所指向之RX_CONTEXT結構的 Info.Buffer 成員中傳回有效的數據。 |
STATUS_BUFFER_TOO_SMALL | 緩衝區太小,無法接收要求的數據。 如果傳回這個值,則 RxContext 參數所指向之RX_CONTEXT結構的 InformationToReturn 成員應該設定為預期的緩衝區大小下限,讓呼叫成功。 |
STATUS_CONNECTION_DISCONNECTED | 線上已中斷連線。 |
STATUS_EA_CORRUPT_ERROR | 從遠端伺服器收到無效的擴充屬性資訊。 |
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法完成查詢。 |
STATUS_INVALID_PARAMETER | 指定了無效的參數。 |
STATUS_NONEXISTENT_EA_ENTRY | 檔案對象上沒有擴充屬性,而且使用者提供了擴充屬性索引。 |
STATUS_NOT_SUPPORTED | 不支援擴充屬性。 |
STATUS_ONLY_IF_CONNECTED | SRV_OPEN 結構未連接。 |
STATUS_REQUEST_ABORTED | 網路要求已中止。 |
備註
RDBSS 發出 MRxQueryEaInfo 的呼叫,以回應接收 IRP_MJ_QUERY_EA 要求。
呼叫 MRxQueryEaInfo 之前,RDBSS 會修改 RxContext 參數所指向之RX_CONTEXT結構中的下列成員:
Info.Buffer 成員會設定為來自 I/O 要求封包的用戶緩衝區。 如有需要,RDBSS 已鎖定此緩衝區。
Info.LengthRemaining 成員設定為 IrpSp-Parameters.QueryEa.Length>。
QueryEa.UserEaList 成員會設定為 IrpSp-Parameters.QueryEa.EaList>。
QueryEa.UserEaListLength 成員設定為 IrpSp-Parameters.QueryEa.EaListLength>。
QueryEa.UserEaIndex 成員設定為 IrpSp-Parameters.QueryEa.EaIndex>。
如果 IrpSp-Flags> 的位開啟 SL_RESTART_SCAN,QueryEa.RestartScan 成員會設定為非零。
如果 IrpSp-Flags> 具有SL_RETURN_SINGLE_ENTRY位,QueryEa.ReturnSingleEntry 成員會設定為非零。
如果 IrpSp-Flags> 具有SL_INDEX_SPECIFIED位,QueryEa.IndexSpecified 成員會設定為非零。
成功時,MRxQueryEaInfo 應該將RX_CONTEXT結構的 Info.LengthRemaininging 成員設定為傳回的擴充屬性資訊長度,同時更新 Fobx-OffsetOfNextEaToReturn> 成員。 如果呼叫 MRxQueryEaInfo 成功,RDBSS 會將 IRP 的 IoStatus.Information 成員設定為 IrpSp-Parameters.QueryEa.Length> 減去 RX_CONTEXT Info.LengthRemaining 成員。
規格需求
目標平台 |
桌面 |
標頭 |
Mrx.h (包含 Mrx.h) |