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) |