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 |
---|---|
|
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 |