Поделиться через


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

См. также

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue