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類型值,其中包含數個 WDF_IO_QUEUE_STATE 列舉值的位 OR。

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

備註

呼叫 WdfIoQueueGetState 之後,您的驅動程式可以將收到的狀態值傳遞至下列函式,這些函式定義於 Wdfio.h 中:

如果您的驅動程式使用架構 的自動同步處理,I/O 佇列的狀態將不會在 WdfIoQueueGetState 方法從架構取得狀態資訊與方法傳回的時間之間變更。 否則,佇列的狀態可能會在 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;
}

規格需求

需求
目標平台 Universal
最小 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