WdmlibIoGetAffinityInterrupt 函数 (iointex.h)

WdmlibIoGetAffinityInterrupt 函数获取中断对象的组相关性。

语法

NTSTATUS WdmlibIoGetAffinityInterrupt(
  [in]  PKINTERRUPT     InterruptObject,
  [out] PGROUP_AFFINITY GroupAffinity
);

参数

[in] InterruptObject

指向中断对象的指针。 此参数指向一个 KINTERRUPT 结构,该结构表示驱动程序注册以接收设备中断。 结构不透明。 调用方在对 WdmlibIoConnectInterruptExIoConnectInterrupt 例程的先前调用中获取了此指针值。

[out] GroupAffinity

指向调用方分配的缓冲区的指针,例程在其中写入 GROUP_AFFINITY 结构,该结构指定 InterruptObject 指向的中断对象的组相关性。 此缓冲区必须足够大才能包含 结构。

返回值

如果调用成功,WdmlibIoGetAffinityInterrupt 将返回STATUS_SUCCESS。 可能的错误返回值包括以下内容:

返回代码 说明
STATUS_INVALID_PARAMETER
InterruptObject 参数不指向有效的中断对象。

注解

内核模式驱动程序调用此例程以获取驱动程序的注册中断服务例程 (ISR) 可以接收设备中断的逻辑处理器集。 此处理器集由 GROUP_AFFINITY 结构描述,该结构指定组号和关联掩码。 分配给特定 ISR 注册的所有处理器必须属于同一组。

驱动程序在先前调用 WdmlibIoConnectInterruptExIoConnectInterrupt 例程中注册了 ISR。

在 Windows 7 中, WdmlibIoConnectInterruptExIoConnectInterrupt 仅将设备中断分配给组 0 中的逻辑处理器。 这是默认设置。 驱动程序可以在 INF 文件或响应 IRP_MN_FILTER_RESOURCE_REQUIREMENTS 请求时为其设备指定不同的中断相关性。 有关如何更改中断相关性的详细信息,请参阅 WHDC 网站上的 支持具有 64 个以上处理器的系统 白皮书。

要求

要求
最低受支持的客户端 在 Windows 7 和更高版本的 Windows 中可用。
目标平台 Windows
标头 iointex.h (包括 Iointex.h、Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx