Функция KeRemoveDeviceQueue (wdm.h)

Подпрограмма KeRemoveDeviceQueue удаляет запись из головы указанной очереди устройств.

Синтаксис

PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(
  [in, out] PKDEVICE_QUEUE DeviceQueue
);

Параметры

[in, out] DeviceQueue

Указатель на инициализированный объект очереди устройства, для которого вызывающий объект предоставляет хранилище.

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

Если очередь устройств пуста, но для нее задано состояние занятости, KeRemoveDeviceQueue возвращает значение NULL.

Комментарии

Получена указанная блокировка очереди устройств и проверяется состояние очереди устройств. Если очередь устройств находится в состоянии занятости, а IRP находится в очереди, эта подпрограмма извлекает запись из очереди и возвращает указатель на IRP. Вызов KeRemoveDeviceQueue , когда объект очереди устройства находится в состоянии занятости, но не помещается в очередь, приводит к изменению состояния на "не занят". Отпущена блокировка спина указанной очереди устройств.

Вызов KeRemoveDeviceQueue является ошибкой , если объект очереди устройства находится в состоянии "Не занят".

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm)

См. также раздел

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeRemoveByKeyDeviceQueue

KeRemoveEntryDeviceQueue