次の方法で共有


WdfIoQueueGetState 関数 (wdfio.h)

[KMDF と UMDF に適用]

WdfIoQueueGetState メソッドは、指定された I/O キューの状態を返します。

構文

WDF_IO_QUEUE_STATE WdfIoQueueGetState(
  [in]            WDFQUEUE Queue,
  [out, optional] PULONG   QueueRequests,
  [out, optional] PULONG   DriverRequests
);

パラメーター

[in] Queue

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

[out, optional] QueueRequests

現在 I/O キューにあり、ドライバーに配信されていない I/O 要求の数を受け取る場所へのポインター。 このポインターは省略可能であり、 NULL にすることができます

[out, optional] DriverRequests

ドライバーに配信されたが、ドライバーが完了または取り消されていない I/O 要求の数を受け取る場所へのポインター。 このポインターは省略可能であり、 NULL にすることができます

戻り値

WdfIoQueueGetState、複数のWDF_IO_QUEUE_STATE列挙子のビットごとの OR を含むことができるWDF_IO_QUEUE_STATE型指定された値 返します。

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

注釈

WdfIoQueueGetState を呼び出した後、ドライバーは、Wdfio.h で定義されている次の関数に受信状態の値を渡すことができます。

ドライバーがフレームワークの 自動同期を使用している場合、 WdfIoQueueGetState メソッドがフレームワークから状態情報を取得してからメソッドが返す時刻の間に、I/O キューの状態は変更されません。 そうしないと、 WdfIoQueueGetState メソッドが戻る前にキューの状態が変わる可能性があります。

WdfIoQueueGetState メソッドの詳細については、「I/O キューのプロパティの取得」を参照してください。

次のコード例は、指定した I/O キューがアイドル状態の場合に TRUE を 返すルーチンです。

BOOLEAN
IsQueueIdle(
    IN WDFQUEUE Queue
    )
{
    WDF_IO_QUEUE_STATE queueStatus;
    queueStatus = WdfIoQueueGetState(
                                     Queue,
                                     NULL,
                                     NULL
                                     );
    return (WDF_IO_QUEUE_IDLE(queueStatus)) ? TRUE : FALSE;
}

要件

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

こちらもご覧ください

EvtIoQueueState

WDF_IO_QUEUE_STATE