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 de estrutura para execução.
Sintaxe
BOOLEAN WdfInterruptQueueWorkItemForIsr(
[in] WDFINTERRUPT Interrupt
);
Parâmetros
[in] Interrupt
Um identificador para um objeto de interrupção de estrutura.
Retornar valor
Se o ISR do driver estiver em execução em IRQL = PASSIVE_LEVEL, WdfInterruptQueueWorkItemForIsr retornaráTRUE 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 enfileirada anteriormente 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áTRUE se a estrutura enfileirar com êxito o DPC interno. O método retornará FALSE se o DPC interno tiver sido enfileirado anteriormente.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
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 Tratamento de interrupções de hardware.
Um bug marcar ocorrerá se os drivers chamarem WdfInterruptQueueWorkItemForIsr com um objeto de interrupção que não especifica uma função de retorno de chamada EvtInterruptWorkItem.
Requisitos
Requisito | Valor |
---|---|
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 da DDI | DriverCreate(kmdf) |