Поделиться через


Функция WdfIoQueueGetState (wdfio.h)

[Применимо к KMDF и UMDF]

Метод WdfIoQueueGetState возвращает состояние указанной очереди ввода-вывода.

Синтаксис

WDF_IO_QUEUE_STATE WdfIoQueueGetState(
  [in]            WDFQUEUE Queue,
  [out, optional] PULONG   QueueRequests,
  [out, optional] PULONG   DriverRequests
);

Параметры

[in] Queue

Дескриптор объекта очереди платформы.

[out, optional] QueueRequests

Указатель на расположение, которое получает количество запросов ввода-вывода, которые в настоящее время находятся в очереди ввода-вывода и не были доставлены драйверу. Этот указатель необязателен и может быть null.

[out, optional] DriverRequests

Указатель на расположение, которое получает количество запросов ввода-вывода, которые были доставлены водителю, но драйвер не завершил или не отменил. Этот указатель необязателен и может быть null.

Возвращаемое значение

WdfIoQueueGetState возвращает WDF_IO_QUEUE_STATEтипизированное значение, которое может содержать битовое ЗНАЧЕНИЕ ИЛИ нескольких перечислителей WDF_IO_QUEUE_STATE.

Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Замечания

После вызова 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 получает сведения о состоянии из платформы и время возврата метода. В противном случае состояние очереди может измениться до возврата метода WdfIoQueueGetState.

Дополнительные сведения о методе WdfIoQueueGetState см. в получения свойств очереди ввода-вывода.

Примеры

Следующий пример кода — это подпрограмма, которая возвращает 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 (include 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