Registering an ISR

Drivers use the IoConnectInterruptEx routine to register an ISR for an interrupt. IoConnectInterruptEx is part of Windows Vista and later operating systems. IoConnectInterruptEx takes a single Parameters parameter, which is a pointer to an IO_CONNECT_INTERRUPT_PARAMETERS structure. For Windows Server 2003, Windows XP, and Windows 2000, drivers can use the Iointex.lib library that is included in the Windows Driver Kit (WDK).

On Windows Vista and later, IoConnectInterruptEx provides several different methods for registering an ISR. The value specified for Parameters->Version determines the method, as follows:

On operating systems prior to Windows Vista, you can only use CONNECT_FULLY_SPECIFIED. If you specify CONNECT_LINE_BASED or CONNECT_MESSAGE_BASED, IoConnectInterruptEx returns an error. You can use this behavior to determine if you are running on Windows Vista or an earlier system. For more information, see Using IoConnectInterruptEx Prior to Windows Vista.