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


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

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

Метод WdfIoQueuePurgeSynchronous приводит к остановке очереди запросов ввода-вывода в очередь ввода-вывода и отмене необработанных запросов и отмененных запросов драйвера.

Синтаксис

void WdfIoQueuePurgeSynchronously(
  [in] WDFQUEUE Queue
);

Параметры

[in] Queue

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

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

Нет

Замечания

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

После вызова драйвера WdfIoQueuePurgeSynchronousплатформа перестает добавлять запросы ввода-вывода в указанную очередь. Платформа отменяет все запросы, которые он не доставил драйверу. Если платформа получает дополнительные запросы для очереди, она завершает их со значением состояния завершения STATUS_INVALID_DEVICE_STATE.

WdfIoQueuePurgeSynchronous возвращается после завершения или отмены всех необработанных и управляемых драйверов запросов.

После очистки очереди ввода-вывода драйвер может перезапустить очередь, вызвав WdfIoQueueStart.

Не вызывайте WdfIoQueuePurgeSynchronous из следующих функций обратного вызова событий объекта очереди независимо от очереди, с которой связана функция обратного вызова события:

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

Примеры

В следующем примере кода очищается указанная очередь ввода-вывода.

WdfIoQueuePurgeSynchronously(ReadQueue);

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
Заголовок wdfio.h (include Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
правил соответствия DDI ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf), NoIoQueuePurgeSynchronously(kmdf)

См. также

WdfIoQueuePurge