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