WdfIoQueueRetrieveRequestByFileObject 関数 (wdfio.h)

[KMDF と UMDF に適用]

WdfIoQueueRetrieveRequestByFileObject メソッドは、指定したファイル オブジェクトに関連付けられている、指定された I/O キューから、次に使用可能な I/O 要求を取得します。

構文

NTSTATUS WdfIoQueueRetrieveRequestByFileObject(
  [in]  WDFQUEUE      Queue,
  [in]  WDFFILEOBJECT FileObject,
  [out] WDFREQUEST    *OutRequest
);

パラメーター

[in] Queue

フレームワーク キュー オブジェクトへのハンドル。

[in] FileObject

フレームワーク ファイル オブジェクトへのハンドル。

[out] OutRequest

フレームワーク要求オブジェクトへのハンドルを受け取る場所へのポインター。 WdfIoQueueRetrieveRequestByFileObject がSTATUS_SUCCESSを返さない場合、場所の値は設定されません。

戻り値

WdfIoQueueRetrieveRequestByFileObject は、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER
ドライバーが無効なハンドルを指定しました。
STATUS_NO_MORE_ENTRIES
フレームワークが I/O キューの末尾に達しました。
STATUS_INVALID_DEVICE_STATE
指定された I/O キューは、並列ディスパッチ方式用に構成されます。
STATUS_WDF_PAUSED
指定された I/O キューは 電源管理 され、そのデバイスは低電力状態です。
 

このメソッドは、他の NTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

手動または順次ディスパッチ用に I/O キューを構成したドライバーは 、WdfIoQueueRetrieveRequestByFileObject を呼び出す可能性があります。 WdfIoQueueRetrieveRequestByFileObject を手動ディスパッチ メソッドまたはシーケンシャル ディスパッチ メソッドと共に使用する方法の詳細については、「Dispatching Methods for I/O Requests」を参照してください。

WdfIoQueueRetrieveRequestByFileObject を呼び出して I/O 要求を取得した後、ドライバーは要求を所有し、何らかの方法で I/O 要求を処理する必要があります。

WdfIoQueueRetrieveRequestByFileObject メソッドの詳細については、「I/O キューの管理」を参照してください。

次のコード例では、指定した I/O キューから、指定したフレームワーク ファイル オブジェクトに関連付けられている次のフレームワーク要求オブジェクトへのハンドルを取得します。

WDFREQUEST  request;

status = WdfIoQueueRetrieveRequestByFileObject(
                                               queue,
                                               fileObject,
                                               &request
                                               );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfio.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveNextRequest