RxFsdPostRequest 関数 (rxprocs.h)
RxFsdPostRequest は、ファイル システム プロセス (FSP) によって処理するために、RX_CONTEXT構造体で指定された I/O 要求パケット (IRP) をワーカー キューにキューに入れます。
構文
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
パラメーター
[in] RxContext
ワーカー スレッドにキューに入る IRP を含むRX_CONTEXTへのポインター。
戻り値
RxFsdPostRequest は 次の値を返します。
リターン コード | 説明 |
---|---|
|
非同期要求が行われ、後で処理するためにワーカー スレッドにキューに入れられました。 要求の状態が保留中です。 |
注釈
RxFsdPostRequest は通常、非同期 I/O 要求パケット (IRP) を処理するために RDBSS によって呼び出されます。 通常、これらの IRP は、ファイルに対する操作を要求するユーザー モード アプリケーションに応答して RDBSS によって受信されます。 また、別のカーネル ドライバーがこのような IRP を発行することもできます。
RxContext パラメーターが指すRX_CONTEXT構造体の Flags メンバーにRX_CONTEXT_FLAG_NO_PREPOSTING_NEEDEDビットが設定されていない場合、RxFsdPostRequest は、特定の種類の要求に必要なユーザー アドレス空間をロックダウンしようとします。 この動作の結果となる要求は、RxContext によって指RX_CONTEXT構造体の MajorFunction メンバーに基づいており、次のものが含まれます。
- RxContext->MinorFunction がIRP_MN_QUERY_DIRECTORYされている場合は、CONTROL をIRP_MJ_DIRECTORYします。
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
IRP の FileObject メンバーが NULL ではなく、処理のために要求を直ちに投稿できる場合 (デバイス キューのしきい値が空です)、これが発生します。 それ以外の場合、要求はボリューム上のオーバーフロー キューにポストされます。
RxFsdPostRequest へのすべての呼び出しは、RxContext パラメーターを渡す RxFsdDispatch ルーチンを呼び出すためにワーカー スレッドにキューに入れられます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | rxprocs.h (Rxprocs.h、Rxcontx.h を含む) |
IRQL | <= APC_LEVEL |