WdmlibIoConnectInterruptEx 函数 (iointex.h)
WdmlibIoConnectInterruptEx 函数为设备的中断注册中断处理例程。
语法
NTSTATUS WdmlibIoConnectInterruptEx(
[in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);
参数
[in, out] Parameters
指向指定设备和中断处理例程 的IO_CONNECT_INTERRUPT_PARAMETERS 结构的指针。 返回时, WdmlibIoConnectInterruptEx 更新此结构,以保存有关设备中断的信息。
返回值
该函数在成功时返回STATUS_SUCCESS,或在失败时返回相应的 NTSTATUS 错误值。 可能的错误值包括:
返回代码 | 说明 |
---|---|
|
该操作对指定的设备无效。 例如, 参数->版本 = CONNECT_LINE_BASED,并且系统已将多个中断消息分配给设备。 |
|
调用方指定的参数无效。 例如,当调用方为设备的设备对象指定 NULL 时,会发生此错误。 |
|
调用方为 Parameters 指向的结构的 Version 成员指定了无效值。 参数->版本 必须是CONNECT_LINE_BASED、CONNECT_MESSAGE_BASED或CONNECT_FULLY_SPECIFIED之一。 |
|
调用方为 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 以使用例程。 |
目标平台 | 通用 |
标头 | iointex.h (包括 Iointex.h、Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDIs |