Partager via


Inscription d’un ISR

Les pilotes utilisent la routine IoConnectInterruptEx pour inscrire un ISR pour une interruption. IoConnectInterruptEx fait partie de Windows Vista et des systèmes d’exploitation ultérieurs. IoConnectInterruptEx prend un seul paramètre Parameters , qui est un pointeur vers une structure IO_CONNECT_INTERRUPT_PARAMETERS . Pour Windows Server 2003, Windows XP et Windows 2000, les pilotes peuvent utiliser la bibliothèque Iointex.lib incluse dans le Kit de pilotes Windows (WDK).

Sur Windows Vista et versions ultérieures, IoConnectInterruptEx fournit plusieurs méthodes différentes pour inscrire un ISR. La valeur spécifiée pour Parameters-Version> détermine la méthode, comme suit :

  • Utilisez CONNECT_LINE_BASED pour inscrire une routine InterruptService pour toutes les interruptions de ligne d’un appareil. (Les appareils ont généralement au plus une interruption basée sur une ligne.) Le système détecte automatiquement toutes les interruptions basées sur les lignes affectées à l’appareil. Pour plus d’informations, consultez Utilisation de la version CONNECT_LINE_BASED d’IoConnectInterruptEx.

  • Utilisez CONNECT_MESSAGE_BASED pour inscrire une routine InterruptMessageService pour toutes les interruptions signalées par un message d’un appareil. Vous pouvez également spécifier une routine InterruptService de secours: si l’appareil a uniquement des interruptions basées sur des lignes, IoConnectInterruptEx inscrit la routine InterruptService à la place. Le système détecte automatiquement toutes les interruptions signalées par un message attribuées à l’appareil. Pour plus d’informations, consultez Utilisation de la version CONNECT_MESSAGE_BASED d’IoConnectInterruptEx.

  • Utilisez CONNECT_FULLY_SPECIFIED pour inscrire une routine InterruptService pour chaque interruption séparément. Vous pouvez l’utiliser pour spécifier une routine InterruptService pour une interruption basée sur une ligne ou un message signalé, mais vous devez spécifier manuellement l’interruption à l’aide des informations transmises par le gestionnaire PnP. Pour plus d’informations, consultez Utilisation de la version CONNECT_FULLY_SPECIFIED d’IoConnectInterruptEx.

Sur les systèmes d’exploitation antérieurs à Windows Vista, vous ne pouvez utiliser que CONNECT_FULLY_SPECIFIED. Si vous spécifiez CONNECT_LINE_BASED ou CONNECT_MESSAGE_BASED, IoConnectInterruptEx retourne une erreur. Vous pouvez utiliser ce comportement pour déterminer si vous exécutez sur Windows Vista ou un système antérieur. Pour plus d’informations, consultez Utilisation d’IoConnectInterruptEx avant Windows Vista.