RxFsdPostRequest 會將由RX_CONTEXT結構指定的 I/O 要求封包排入佇列,以供文件系統進程 (FSP) 處理。
語法
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
參數
[in] RxContext
包含要排入背景工作線程之 IRP 之RX_CONTEXT的指標。
傳回值
RxFsdPostRequest 會傳回下列值:
| 傳回碼 | 描述 |
|---|---|
|
已提出異步要求,並已排入背景工作線程以供稍後處理。 要求的狀態為擱置中。 |
言論
RDBSS 通常會呼叫 RxFsdPostRequest 來處理異步 I/O 要求封包 (IRP)。 RDBSS 通常會收到這些 IRP,以回應要求檔案作業的使用者模式應用程式。 另一個核心驅動程式也有可能發出這類 IRP。
如果 Flags RX_CONTEXT 結構的成員 RxContext 參數未設定RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED位,則 RxFsdPostRequest 會嘗試鎖定特定類型要求所需的任何使用者位址空間。 導致此行為的要求是以 RxContext 所指向之RX_CONTEXT結構的 MajorFunction 成員為基礎,並包含下列專案:
- 當 RxContext->MinorFunctionIRP_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 |