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 中:
-
WDF_IO_QUEUE_DRAINED,如果佇列已清空,則會傳回 TRUE 。
-
WDF_IO_QUEUE_IDLE,如果佇列閑置,則會傳回 TRUE 。
-
WDF_IO_QUEUE_PURGED,如果清除佇列,則會傳回 TRUE 。
-
WDF_IO_QUEUE_READY,如果佇列已就緒,則會傳回 TRUE 。
-
WDF_IO_QUEUE_STOPPED,如果佇列停止,則會傳回 TRUE 。
如需 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) |