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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
ドライバーが無効なハンドルを指定しました。 |
|
フレームワークが I/O キューの末尾に達しました。 |
|
指定された I/O キューは、並列ディスパッチ方式用に構成されます。 |
|
指定された 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) |