Compartilhar via


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, enfileira 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 da fila do dispositivo de tipo para o qual o chamador fornece o armazenamento.

[in, out] DeviceQueueEntry

Ponteiro para a entrada da fila do dispositivo que deve ser inserida.

Valor de retorno

Se a fila do dispositivo estiver vazia, FALSE será retornado e a DeviceQueueEntry não será inserida na fila do dispositivo.

Observações

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 código que enfileira uma solicitação de E/S para um driver de dispositivo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm)

Consulte também

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue