Функция KeInsertDeviceQueue (wdm.h)
Подпрограмма KeInsertDeviceQueue получает спин-блокировку для указанного объекта очереди устройств и, если очередь устройства находится в состоянии занятости, помещает указанную запись в очередь.
Синтаксис
BOOLEAN KeInsertDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
Параметры
[in, out] DeviceQueue
Указатель на управляющий объект типа device queue, для которого вызывающий объект предоставляет хранилище.
[in, out] DeviceQueueEntry
Указатель на запись очереди устройства, которую необходимо вставить.
Возвращаемое значение
Если очередь устройств пуста, возвращается значение FALSE , а deviceQueueEntry не вставляется в очередь устройств.
Комментарии
Если очередь устройств находится в состоянии занятости, указанная строка DeviceQueueEntry вставляется в конце очереди устройств и освобождается блокировка спина очереди устройства.
Если KeInsertDeviceQueue возвращает значение FALSE, запись не была поставлена в очередь и вызывающий объект должен начать обработку IRP. Вызов KeInsertDeviceQueue или KeInsertByKeyDeviceQueue , когда очередь пуста, приводит к переходу очереди устройства с состояния "Не занято" на занято.
Эта подпрограмма используется для кода, который помещает в очередь запрос ввода-вывода к драйверу устройства.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с 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), MarkingQueuedIrps(wdm) |