Partilhar via


Função WdfInterruptQueueWorkItemForIsr (wdfinterrupt.h)

[Aplica-se a KMDF e UMDF]

O método WdfInterruptQueueWorkItemForIsr enfileira a função de retorno de chamada EvtInterruptWorkItem de um objeto de interrupção da estrutura para execução.

Sintaxe

BOOLEAN WdfInterruptQueueWorkItemForIsr(
  [in] WDFINTERRUPT Interrupt
);

Parâmetros

[in] Interrupt

Um identificador para um objeto de interrupção de estrutura.

Valor de retorno

Se o ISR do driver estiver em execução em IRQL = PASSIVE_LEVEL, WdfInterruptQueueWorkItemForIsr retornará VERDADEIRO se ele enfileirar com êxito a função de retorno de chamada EvtInterruptWorkItem do objeto de interrupção. O método retornará FALSE se a função de retorno de chamada tiver sido previamente enfileirada e não tiver sido executada.

Se o ISR do driver estiver em execução em IRQL = DIRQL, a estrutura primeiro enfileira um DPC interno e, em seguida, enfileira um item de trabalho desse DPC. Nesse caso, WdfInterruptQueueWorkItemForIsr retornará VERDADEIRO se a estrutura enfileirar com êxito o DPC interno. O método retornará FALSE se o DPC interno tiver sido enfileirado anteriormente.

Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.

Observações

Os drivers normalmente chamam WdfInterruptQueueWorkItemForIsr de dentro de uma função de retorno de chamada EvtInterruptIsr.

A função de retorno de chamada EvtInterruptWorkItem de um objeto de interrupção pode ser enfileirada apenas uma vez antes de ser executada. Portanto, se uma chamada para WdfInterruptQueueWorkItemForIsr for bem-sucedida, as chamadas subsequentes não enfileirarão retornos de chamada adicionais.

Para obter mais informações sobre como lidar com interrupções em drivers baseados em estrutura, consulte Tratando interrupções de hardware.

Uma verificação de bug ocorre se os drivers chamam WdfInterruptQueueWorkItemForIsr com um objeto de interrupção que não especifica uma função de retorno de chamada EvtInterruptWorkItem.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.11
versão mínima do UMDF 2.0
cabeçalho wdfinterrupt.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DIRQL
regras de conformidade de DDI DriverCreate(kmdf)

Consulte também

EvtInterruptDpc

EvtInterruptIsr

WdfInterruptCreate

WdfInterruptQueueDpcForIsr