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
STATUS_INVALID_DEVICE_REQUEST
指定裝置的作業無效。 例如, 參數->版本 = CONNECT_LINE_BASED,而且系統已將多個中斷訊息指派給裝置。
STATUS_INVALID_PARAMETER
呼叫端指定了無效的參數。 例如,當呼叫端為裝置的裝置物件指定 NULL 時,就會發生此錯誤。
STATUS_INVALID_PARAMETER_1
呼叫端為 Parameters 所指向之結構的 Version 成員指定了無效的值。 參數->版本 必須是CONNECT_LINE_BASED、CONNECT_MESSAGE_BASED或CONNECT_FULLY_SPECIFIED之一。
STATUS_INVALID_PARAMETER_10
呼叫端為 Parameters 指向之結構的第十個成員指定了無效的值。 例如,當 Parameters->FullySpecified.ProcessorEnableMask 未設定任何位時,就會發生此錯誤。
STATUS_NOT_FOUND
找不到其中一個自變數。 例如,指定的裝置沒有中斷,或指定的插斷向量未指派給任何裝置。

備註

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

另請參閱

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx