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)
图书馆 Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另请参阅

EvtIoQueueState

WDF_IO_QUEUE_STATE