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