[KMDF と UMDF に適用]
WdfIoQueueRetrieveNextRequest メソッドは、指定された I/O キューから次に使用可能な I/O 要求を取得します。
構文
NTSTATUS WdfIoQueueRetrieveNextRequest(
[in] WDFQUEUE Queue,
[out] WDFREQUEST *OutRequest
);
パラメーター
[in] Queue
フレームワーク キュー オブジェクトへのハンドル。
[out] OutRequest
フレームワーク要求オブジェクトへのハンドルを受け取る場所へのポインター。 キューが空であるか、最後の要求が取得された場合、このパラメーターは null 受け取ります。
戻り値
WdfIoQueueRetrieveNextRequest 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
このメソッドは、他のNTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーが I/O 要求を手動でディスパッチするために I/O キューを構成する場合、ドライバーは通常、WdfIoQueueRetrieveNextRequest を呼び出してキューから要求を取得します。 順次ディスパッチ用に I/O キューを構成したドライバーは、WdfIoQueueRetrieveNextRequest 呼び出すこともできます。 手動または順次ディスパッチ メソッド WdfIoQueueRetrieveNextRequest の使用の詳細については、「I/O 要求のディスパッチ メソッド」を参照してください。
WdfIoQueueRetrieveNextRequest を呼び出して I/O 要求を取得した後、ドライバー は要求 所有し、何らかの方法で I/O 要求 を処理 必要があります。
WdfIoQueueRetrieveNextRequest メソッドの詳細については、「I/O キューの管理」を参照してください。
例示
次のコード例では、デバイスの I/O キューに格納されている次の要求オブジェクトへのハンドルを取得します。
NTSTATUS status;
WDFREQUEST request;
status = WdfIoQueueRetrieveNextRequest(
pDeviceContext->ReadQueue,
&request
);
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | 普遍 |
| 最小 KMDF バージョン | 1.0 |
| UMDF の最小バージョン を する | 2.0 |
| ヘッダー | wdfio.h (Wdf.h を含む) |
| 図書館 | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
| IRQL | <= DISPATCH_LEVEL |
| DDI コンプライアンス規則 を する | DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf) |