Partager via


WdmlibIoGetAffinityInterrupt, fonction (iointex.h)

La fonction WdmlibIoGetAffinityInterrupt obtient l’affinité de groupe d’un objet d’interruption.

Syntaxe

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

Paramètres

[in] InterruptObject

Pointeur vers un objet d’interruption. Ce paramètre pointe vers une structure KINTERRUPT qui représente une inscription par un pilote pour recevoir des interruptions de périphérique. La structure est opaque. L’appelant a obtenu cette valeur de pointeur dans un appel précédent à la routine WdmlibIoConnectInterruptEx ou IoConnectInterrupt .

[out] GroupAffinity

Pointeur vers une mémoire tampon allouée à l’appelant dans laquelle la routine écrit une structure GROUP_AFFINITY qui spécifie l’affinité de groupe de l’objet d’interruption vers lequel pointe InterruptObject . Cette mémoire tampon doit être suffisamment grande pour contenir la structure.

Valeur retournée

WdmlibIoGetAffinityInterrupt retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour d’erreur possibles sont les suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Le paramètre InterruptObject ne pointe pas vers un objet d’interruption valide.

Remarques

Un pilote en mode noyau appelle cette routine pour obtenir l’ensemble des processeurs logiques sur lesquels la routine de service d’interruption (ISR) inscrite du pilote peut recevoir des interruptions de périphérique. Cet ensemble de processeurs est décrit par une structure GROUP_AFFINITY , qui spécifie un numéro de groupe et un masque d’affinité. Tous les processeurs affectés à une inscription ISR particulière doivent appartenir au même groupe.

Le pilote a inscrit l’ISR lors d’un appel précédent à la routine WdmlibIoConnectInterruptEx ou IoConnectInterrupt .

Dans Windows 7, WdmlibIoConnectInterruptEx et IoConnectInterrupt attribuent des interruptions d’appareil uniquement aux processeurs logiques du groupe 0. Il s’agit du comportement par défaut. Un pilote peut spécifier une affinité d’interruption différente pour son appareil dans un fichier INF ou dans sa réponse à une demande de IRP_MN_FILTER_RESOURCE_REQUIREMENTS . Pour plus d’informations sur la façon de modifier l’affinité d’interruption, consultez le livre blanc systèmes de prise en charge qui ont plus de 64 processeurs sur le site web WHDC.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 7 et versions ultérieures de Windows.
Plateforme cible Windows
En-tête iointex.h (inclure Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

GROUP_AFFINITY

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoConnectInterrupt

KINTERRUPT

WdmlibIoConnectInterruptEx