WdmlibIoGetAffinityInterrupt function (iointex.h)

The WdmlibIoGetAffinityInterrupt function gets the group affinity of an interrupt object.

Syntax

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

Parameters

[in] InterruptObject

A pointer to an interrupt object. This parameter points to a KINTERRUPT structure that represents a registration by a driver to receive device interrupts. The structure is opaque. The caller obtained this pointer value in a previous call to the WdmlibIoConnectInterruptEx or IoConnectInterrupt routine.

[out] GroupAffinity

A pointer to a caller-allocated buffer into which the routine writes a GROUP_AFFINITY structure that specifies the group affinity of the interrupt object that InterruptObject points to. This buffer must be large enough to contain the structure.

Return value

WdmlibIoGetAffinityInterrupt returns STATUS_SUCCESS if the call is successful. Possible error return values include the following:

Return code Description
STATUS_INVALID_PARAMETER
The InterruptObject parameter does not point to a valid interrupt object.

Remarks

A kernel-mode driver calls this routine to get the set of logical processors on which the driver's registered interrupt service routine (ISR) can receive device interrupts. This set of processors is described by a GROUP_AFFINITY structure, which specifies a group number and an affinity mask. All the processors that are assigned to a particular ISR registration must belong to the same group.

The driver registered the ISR in a previous call to the WdmlibIoConnectInterruptEx or IoConnectInterrupt routine.

In Windows 7, WdmlibIoConnectInterruptEx and IoConnectInterrupt assign device interrupts only to logical processors in group 0. This is by default. A driver can specify a different interrupt affinity for its device in an INF file or in its response to an IRP_MN_FILTER_RESOURCE_REQUIREMENTS request. For more information about how to change the interrupt affinity, see the Supporting Systems That Have More Than 64 Processors white paper on the WHDC website.

Requirements

Requirement Value
Minimum supported client Available in Windows 7 and later versions of Windows.
Target Platform Windows
Header iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Any level

See also

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx