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。

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

注解

调用 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;
}

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 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