Функция 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 (включая 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