WdmlibIoConnectInterruptEx 函式 (iointex.h)
WdmlibIoConnectInterruptEx 函式會登錄裝置中斷的中斷處理程式。
語法
NTSTATUS WdmlibIoConnectInterruptEx(
[in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);
參數
[in, out] Parameters
指定裝置和中斷處理程式之 IO_CONNECT_INTERRUPT_PARAMETERS 結構的指標。 傳回時, WdmlibIoConnectInterruptEx 會更新此結構,以保存裝置中斷的相關信息。
傳回值
函式會在成功時傳回STATUS_SUCCESS,或在失敗時傳回適當的NTSTATUS錯誤值。 可能的錯誤值包括:
傳回碼 | Description |
---|---|
|
指定裝置的作業無效。 例如, 參數->版本 = CONNECT_LINE_BASED,而且系統已將多個中斷訊息指派給裝置。 |
|
呼叫端指定了無效的參數。 例如,當呼叫端為裝置的裝置物件指定 NULL 時,就會發生此錯誤。 |
|
呼叫端為 Parameters 所指向之結構的 Version 成員指定了無效的值。 參數->版本 必須是CONNECT_LINE_BASED、CONNECT_MESSAGE_BASED或CONNECT_FULLY_SPECIFIED之一。 |
|
呼叫端為 Parameters 指向之結構的第十個成員指定了無效的值。 例如,當 Parameters->FullySpecified.ProcessorEnableMask 未設定任何位時,就會發生此錯誤。 |
|
找不到其中一個自變數。 例如,指定的裝置沒有中斷,或指定的插斷向量未指派給任何裝置。 |
備註
WdmlibIoConnectInterruptEx 可用來註冊傳統線路型插斷例程 (,例如 PCI 總線) 所支援,而較新的訊息訊號中斷 (,例如 PCI 2.2 和 3.0 版所支援的中斷) 。
驅動程式會針對以行為基礎的中斷註冊 InterruptService 例程,以及消息訊號中斷的 InterruptMessageService 例程。 如需如何在每個案例中指定 Parameters 成員的詳細資訊,請參閱 IO_CONNECT_INTERRUPT_PARAMETERS。
WdmlibIoConnectInterruptEx 會更新 Parameters 的成員,以提供裝置中斷的相關信息。 如需 WdmlibIoConnectInterruptEx 所提供之資訊的詳細資訊,請參閱 IO_CONNECT_INTERRUPT_PARAMETERS。
使用 WdmlibIoDisconnectInterruptEx 來取消註冊向 WdmlibIoConnectInterruptEx 註冊的例程。
驅動程式在連接其ISR之前,不應該將其裝置程式設計為產生中斷。 因此,在 WdmlibIoConnectInterruptEx 傳回之前,無法引發 ISR。 不過,有些裝置例如按鈕無法程式化。 對於這些裝置,驅動程式應該準備好在呼叫 WdmlibIoConnectInterruptEx 時立即處理 ISR。 在 呼叫 WdmlibIoConnectInterruptEx 時,可能已經判斷斷行,而且可以在中斷控制器啟用行之後立即引發, 然後在 WdmlibIoConnectInterruptEx 呼叫回溯之前觸發。
如需註冊中斷處理程式的詳細資訊,請參閱 註冊 ISR。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統上使用。 也必須在 Windows 2000、Windows XP 或 Windows Server 2003 上運作的驅動程式可以改為連結至 Iointex.lib,以使用例程。 |
目標平台 | Universal |
標頭 | iointex.h (包括 Iointex.h、Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS |