Partager via


Méthode IWDFInterrupt ::SetExtendedPolicy (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode SetExtendedPolicy spécifie la priorité d’interruption, l’affinité processeur, la stratégie d’affinité et le groupe de processeurs pour une interruption spécifiée.

Syntaxe

void SetExtendedPolicy(
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

Paramètres

[in] PolicyAndGroup

Pointeur vers une structure de WDF_INTERRUPT_EXTENDED_POLICY allouée par l’appelant que le pilote a précédemment initialisée en appelant WDF_INTERRUPT_EXTENDED_POLICY_INIT.

Valeur de retour

None

Remarques

Cette méthode équivaut à WdfInterruptSetExtendedPolicy de KMDF. Pour plus d’informations sur cette méthode, consultez la section Notes de WdfInterruptSetExtendedPolicy .

Si un pilote s’exécute sur une version de système d’exploitation antérieure à Windows 7, l’infrastructure ignore la valeur spécifiée par le pilote pour le numéro de groupe de processeurs lorsqu’il appelle SetExtendedPolicy.

Pour plus d’informations sur la gestion des interruptions dans les pilotes UMDF, consultez Accès au matériel et Gestion des interruptions.

Exemples

L’exemple de code suivant appelle WDF_INTERRUPT_EXTENDED_POLICY_INIT pour initialiser une structure WDF_INTERRUPT_EXTENDED_POLICY ; définit des valeurs pour la stratégie, la priorité et l’ensemble de processeurs cibles ; et appelle SetExtendedPolicy. L’exemple définit la priorité normale pour l’interruption et affecte l’interruption au processeur 0 dans le groupe de processeurs 2.


IWDFInterrupt* pInterrupt;

#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))

WDF_INTERRUPT_EXTENDED_POLICY myExtendedPolicy;

WDF_INTERRUPT_EXTENDED_POLICY_INIT(&myExtendedPolicy);
myExtendedPolicy.Policy = WdfIrqPolicySpecifiedProcessors;
myExtendedPolicy.Priority = WdfIrqPriorityNormal;
myExtendedPolicy.TargetProcessorSetAndGroup.Mask = AFFINITY_MASK(0);
myExtendedPolicy.TargetProcessorSetAndGroup.Group = 2;

pInterrupt->SetExtendedPolicy(
                              &myExtendedPolicy
 );

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.11
En-tête wudfddi.h
DLL WUDFx.dll

Voir aussi

IWDFInterrupt

WDF_INTERRUPT_EXTENDED_POLICY

WDF_INTERRUPT_EXTENDED_POLICY_INIT