Función KeInsertDeviceQueue (wdm.h)

La rutina KeInsertDeviceQueue adquiere el bloqueo de número del objeto de cola de dispositivo especificado y, si la cola del dispositivo está establecida en un estado ocupado, pone en cola la entrada especificada.

Sintaxis

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

Parámetros

[in, out] DeviceQueue

Puntero a un objeto de control de tipo cola de dispositivos para el que el autor de la llamada proporciona el almacenamiento.

[in, out] DeviceQueueEntry

Puntero a la entrada de cola de dispositivos que se va a insertar.

Valor devuelto

Si la cola del dispositivo está vacía, se devuelve FALSE y deviceQueueEntry no se inserta en la cola de dispositivos.

Comentarios

Si la cola de dispositivos está establecida en un estado ocupado, el deviceQueueEntry especificado se inserta al final de la cola del dispositivo y se libera el bloqueo de número de cola del dispositivo.

Si KeInsertDeviceQueue devuelve FALSE, la entrada no se puso en cola y el autor de la llamada debe comenzar a procesar el IRP. Una llamada a KeInsertDeviceQueue o KeInsertByKeyDeviceQueue cuando la cola está vacía hace que la cola cambie de un estado no ocupado a un estado ocupado.

Esta rutina es para el código que pone en cola una solicitud de E/S a un controlador de dispositivo.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm)

Consulte también

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue