Функция 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) |