Habilitando e desabilitando interrupções (UMDF 1)
Aviso
O UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2.
Os exemplos de UMDF 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de exemplos de driver de maio de 2022.
Para obter mais informações, consulte Introdução com UMDF.
Se o driver lidar com interrupções de dispositivo, ele deverá fornecer funções de retorno de chamada OnInterruptEnable e OnInterruptDisable que habilitam e desabilitam as interrupções. Essas funções de retorno de chamada devem fazer o que for necessário para habilitar e desabilitar o mecanismo de interrupção de um dispositivo.
Se o driver precisar executar operações adicionais relacionadas à habilitação ou desabilitação de interrupções, o driver também poderá fornecer funções de retorno de chamada IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled e IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled .
A estrutura chama as funções de retorno de chamada OnInterruptEnable e IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled do driver sempre que o dispositivo entra em seu estado de trabalho (D0), depois que a estrutura chamar a função de retorno de chamada OnD0Entry do driver. A estrutura chama as funções de retorno de chamada IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled e OnInterruptDisable do driver sempre que o dispositivo deixa seu estado de trabalho, antes que a estrutura chame a função de retorno de chamada OnD0Exit do driver. Para obter mais informações sobre quando a estrutura chama as funções de retorno de chamada de um driver, consulte PnP e Power Management em Drivers baseados em UMDF.
Você não deve assumir que um dispositivo usará os mesmos recursos de interrupção sempre que a estrutura chamar a função de retorno de chamada OnInterruptEnable do driver. Às vezes, o gerenciador PnP redistribui recursos do sistema e pode atribuir novos recursos de interrupção ao seu dispositivo.
O driver pode chamar IWDFInterrupt::GetInfo para determinar os recursos de interrupção de um dispositivo. O driver pode chamar IWDFInterrupt::GetDevice para determinar o dispositivo ao qual pertence um objeto de interrupção.
Para habilitar e desabilitar interrupções diretamente, o driver pode chamar os métodos IWDFInterrupt::Enable e IWDFInterrupt::D isable do objeto de interrupção, que chamam as funções de retorno de chamada de evento OnInterruptEnable e OnInterruptDisable do driver. No entanto, a maioria dos drivers deve apenas permitir que a estrutura chame as funções de retorno de chamada OnInterruptEnable e OnInterruptDisable nos horários apropriados.