次の方法で共有


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
ヘッダー wdfio.h (Wdf.h を含む)
図書館 Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

EvtIoQueueState する

WDF_IO_QUEUE_STATE