註冊 ISR
驅動程式會使用 IoConnectInterruptEx 常式來註冊 ISR 以進行中斷。 IoConnectInterruptEx 是 Windows Vista 和更新版本的作業系統的一部分。 IoConnectInterruptEx 會採用單一 Parameters 參數,這是 IO_CONNECT_INTERRUPT_PARAMETERS 結構的指標。 針對 Windows Server 2003、Windows XP 和 Windows 2000,驅動程式可以使用 Windows Driver Kit (WDK) 中包含的 Iointex.lib 程式庫。
在 Windows Vista 和更新版本上, IoConnectInterruptEx 提供數種不同的方法來註冊 ISR。 針對Parameters-Version> 指定的值會決定 方法,如下所示:
使用CONNECT_LINE_BASED為所有裝置的線路型中斷註冊 InterruptService 常式。 (裝置通常最多會有一個以線條為基礎的中斷。) 系統會自動偵測指派給裝置的任何行型中斷。 如需詳細資訊,請參閱 使用 ioConnectInterruptEx CONNECT_LINE_BASED版本。
使用 CONNECT_MESSAGE_BASED註冊所有裝置訊息訊號中斷的 InterruptMessageService 常式。 您也可以指定 後援 InterruptService 常式,如果裝置只有行型中斷, IoConnectInterruptEx 會改為註冊 InterruptService 常式。 系統會自動偵測指派給裝置的任何訊息訊號中斷。 如需詳細資訊,請參閱 使用 ioConnectInterruptEx CONNECT_MESSAGE_BASED 版本。
使用 CONNECT_FULLY_SPECIFIED個別註冊每個中斷的 InterruptService 常式。 您可以使用此選項來指定 Line 型或訊息訊號中斷的 InterruptService 常式,但您必須使用 PnP 管理員所傳遞的資訊手動指定中斷。 如需詳細資訊,請參閱 使用 ioConnectInterruptEx CONNECT_FULLY_SPECIFIED 版本。
在 Windows Vista 之前的作業系統上,您只能使用 CONNECT_FULLY_SPECIFIED。 如果您指定CONNECT_LINE_BASED或CONNECT_MESSAGE_BASED, IoConnectInterruptEx 會傳回錯誤。 您可以使用此行為來判斷您是否在 Windows Vista 或舊版系統上執行。 如需詳細資訊,請參閱 在 Windows Vista 之前使用 IoConnectInterruptEx。