Activation et désactivation des interruptions (UMDF 1)
Avertissement
UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2.
Les exemples UMDF 1 archivés sont disponibles dans la mise à jour des exemples de pilotes Windows 11, version 22H2 - Mai 2022.
Pour plus d’informations, consultez Prise en main avec UMDF.
Si votre pilote gère les interruptions de périphérique, il doit fournir des fonctions de rappel OnInterruptEnable et OnInterruptDisable qui activent et désactivent les interruptions. Ces fonctions de rappel doivent faire tout ce qui est nécessaire pour activer et désactiver le mécanisme d’interruption d’un appareil.
Si votre pilote doit effectuer des opérations supplémentaires liées à l’activation ou à la désactivation des interruptions, il peut également fournir des fonctions de rappel IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled et IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled .
L’infrastructure appelle les fonctions de rappel OnInterruptEnable et IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled du pilote chaque fois que l’appareil passe à son état de fonctionnement (D0), une fois que l’infrastructure a appelé la fonction de rappel OnD0Entry du pilote. Le framework appelle les fonctions de rappel IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled et OnInterruptDisable du pilote chaque fois que l’appareil quitte son état de fonctionnement, avant que le framework appelle la fonction de rappel OnD0Exit du pilote. Pour plus d’informations sur le moment où l’infrastructure appelle les fonctions de rappel d’un pilote, consultez PnP et gestion de l’alimentation dans les pilotes basés sur UMDF.
Vous ne devez pas supposer qu’un appareil utilisera les mêmes ressources d’interruption chaque fois que l’infrastructure appelle la fonction de rappel OnInterruptEnable de votre pilote. Parfois, le gestionnaire PnP redistribue les ressources système et peut affecter de nouvelles ressources d’interruption à votre appareil.
Le pilote peut appeler IWDFInterrupt::GetInfo pour déterminer les ressources d’interruption d’un appareil. Le pilote peut appeler IWDFInterrupt::GetDevice pour déterminer le périphérique auquel appartient un objet d’interruption.
Pour activer et désactiver directement les interruptions, le pilote peut appeler les méthodes IWDFInterrupt::Enable et IWDFInterrupt::D isable de l’objet d’interruption, qui appellent les fonctions de rappel d’événements OnInterruptEnable et OnInterruptDisable du pilote. Toutefois, la plupart des pilotes doivent simplement autoriser le framework à appeler les fonctions de rappel OnInterruptEnable et OnInterruptDisable aux moments appropriés.