Função KeInsertDeviceQueue (wdm.h)
A rotina KeInsertDeviceQueue adquire o bloqueio de rotação do objeto de fila do dispositivo especificado e, se a fila do dispositivo estiver definida como um estado ocupado, enfileirará a entrada especificada.
Sintaxe
BOOLEAN KeInsertDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
Parâmetros
[in, out] DeviceQueue
Ponteiro para um objeto de controle do tipo fila de dispositivos para o qual o chamador fornece o armazenamento.
[in, out] DeviceQueueEntry
Ponteiro para a entrada da fila do dispositivo que deve ser inserida.
Retornar valor
Se a fila do dispositivo estiver vazia, FALSE será retornado e DeviceQueueEntry não será inserido na fila do dispositivo.
Comentários
Se a fila do dispositivo estiver definida como um estado ocupado, o DeviceQueueEntry especificado será inserido na parte final da fila do dispositivo e o bloqueio de rotação da fila do dispositivo será liberado.
Se KeInsertDeviceQueue retornar FALSE, a entrada não foi enfileirada e o chamador deverá começar a processar o IRP. Uma chamada para KeInsertDeviceQueue ou KeInsertByKeyDeviceQueue quando a fila está vazia faz com que a fila do dispositivo mude de um estado não ocupado para um estado ocupado.
Essa rotina é para o código que enfileira uma solicitação de E/S para um driver de dispositivo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
Regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm) |