Función KeInsertByKeyDeviceQueue (wdm.h)

La rutina KeInsertByKeyDeviceQueue adquiere el bloqueo de número para el DeviceQueue especificado y pone en cola una entrada según el valor de clave de ordenación especificado si la cola del dispositivo está establecida en un estado ocupado.

Sintaxis

BOOLEAN KeInsertByKeyDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
  [in]      ULONG                SortKey
);

Parámetros

[in, out] DeviceQueue

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

[in, out] DeviceQueueEntry

Puntero a la entrada de la cola de dispositivos que se va a insertar en la cola de dispositivos según el valor de clave específico.

[in] SortKey

Especifica el valor de clave de ordenación que determina la posición de la cola de dispositivos en la que se va a insertar la entrada.

Valor devuelto

Si la cola del dispositivo está vacía, se devuelve FALSE , lo que significa que DeviceQueueEntry no se inserta en la cola del dispositivo.

Comentarios

Se adquiere el bloqueo de número de cola de dispositivos especificado y se comprueba el estado de la cola de dispositivos. Si la cola de dispositivos se establece en un estado ocupado, el IRP especificado por DeviceQueueEntry se inserta en la cola de dispositivos según su valor de clave de ordenación y se libera el bloqueo de número de cola del dispositivo.

La nueva entrada se coloca en la cola de dispositivos después de las entradas de la cola con valores de clave de ordenación menores o iguales que su valor de clave de ordenación y anteriores a las entradas con valores de clave de ordenación mayores.

Si KeInsertByKeyDeviceQueue devuelve FALSE, 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 pase 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

KeInsertDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue