RxFsdPostRequest 函式 (rxprocs.h)
RxFsdPostRequest 會將 I/O 要求封包排入佇列, (IRP) 由背景工作佇列RX_CONTEXT結構指定,以供文件系統進程處理 (FSP) 處理。
語法
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
參數
[in] RxContext
包含要排入背景工作線程之 IRP 的RX_CONTEXT指標。
傳回值
RxFsdPostRequest 會傳回下列值:
傳回碼 | Description |
---|---|
|
已提出異步要求,並已排入背景工作線程以供稍後處理。 要求的狀態為擱置中。 |
備註
RDBSS 通常會呼叫 RxFsdPostRequest 來處理異步 I/O 要求封包 (IRP) 。 RDBSS 通常會收到這些 IRP,以回應要求檔案作業的使用者模式應用程式。 另一個核心驅動程式也可以發出這類 IRP。
如果 RxContext 參數所指向之RX_CONTEXT結構的 Flags 成員沒有設定RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED位,則 RxFsdPostRequest 會嘗試鎖定特定類型要求所需的任何使用者位址空間。 導致此行為的要求是以 RxContext 所指向之RX_CONTEXT結構的 MajorFunction 成員為基礎,並包含下列專案:
- 當 RxContext->MinorFunction IRP_MN_QUERY_DIRECTORY 時 ,IRP_MJ_DIRECTORY CONTROL。
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
如果 IRP 的 FileObject 成員不是 NULL ,而且可以立即張貼要求來處理, (裝置佇列的閾值是空的) ,就會發生這種情況。 否則,要求將會張貼至磁碟區上的溢位佇列。
所有對 RxFsdPostRequest 的呼叫都會排入背景工作線程,以呼叫傳入 RxContext 參數的 RxFsdDispatch 例程。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | rxprocs.h (包括 Rxprocs.h、Rxcontx.h) |
IRQL | <= APC_LEVEL |