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

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

Синтаксис

BOOLEAN KeRemoveEntryDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

Параметры

[in, out] DeviceQueue

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

[in, out] DeviceQueueEntry

Указатель на запись, удаляемую из указанного DeviceQueue.

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

Если DeviceQueueEntry находится в очереди, он удаляется, а KeRemoveEntryDeviceQueue возвращает значение TRUE.

Комментарии

Для параметра IRQL задано значение DISPATCH_LEVEL и получена блокировка спина DeviceQueue .

Если указанный DeviceQueueEntry отсутствует в очереди, то IRP либо уже обрабатывается, либо IRP был отменен. В этом случае KeRemoveEntryDeviceQueue просто возвращает значение FALSE.

Указанная блокировка спина DeviceQueue освобождается, а irQL восстанавливается до предыдущего значения.

Требования

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

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

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeRemoveByKeyDeviceQueue

KeRemoveDeviceQueue