WdmlibIoConnectInterruptEx 函数 (iointex.h)

WdmlibIoConnectInterruptEx 函数为设备的中断注册中断处理例程。

语法

NTSTATUS WdmlibIoConnectInterruptEx(
  [in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);

参数

[in, out] Parameters

指向指定设备和中断处理例程 的IO_CONNECT_INTERRUPT_PARAMETERS 结构的指针。 返回时, WdmlibIoConnectInterruptEx 更新此结构,以保存有关设备中断的信息。

返回值

该函数在成功时返回STATUS_SUCCESS,或在失败时返回相应的 NTSTATUS 错误值。 可能的错误值包括:

返回代码 说明
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 指向的结构的第十个成员指定了无效值。 例如,当 参数->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 以使用例程。
目标平台 通用
标头 iointex.h (包括 Iointex.h、Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDIs

另请参阅

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx