Fonction WdfInterruptSetPolicy (wdfinterrupt.h)
[S’applique à KMDF et UMDF]
La méthode WdfInterruptSetPolicy spécifie la priorité d’interruption, l’affinité processeur et la stratégie d’affinité pour une interruption spécifiée.
Syntaxe
void WdfInterruptSetPolicy(
[in] WDFINTERRUPT Interrupt,
[in] WDF_INTERRUPT_POLICY Policy,
[in] WDF_INTERRUPT_PRIORITY Priority,
[in] KAFFINITY TargetProcessorSet
);
Paramètres
[in] Interrupt
Handle d’un objet d’interruption de framework.
[in] Policy
Énumérateur de type WDF_INTERRUPT_POLICY qui spécifie une stratégie d’affinité processeur pour l’interruption.
[in] Priority
Énumérateur de type WDF_INTERRUPT_PRIORITY qui spécifie une priorité pour l’interruption.
[in] TargetProcessorSet
Valeur de type KAFFINITY qui spécifie une affinité processeur pour l’interruption, si le paramètre Policy est défini sur WdfIrqPolicySpecifiedProcessors.
Valeur de retour
None
Remarques
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Windows Vista et les versions ultérieures du système d’exploitation permettent aux pilotes de spécifier la priorité, l’affinité processeur et la stratégie d’affinité d’une interruption. Pour plus d’informations sur l’utilisation du Registre pour remplacer les valeurs définies par WdfInterruptSetPolicy , consultez Interrompre l’affinité et la priorité.
Si un pilote s’exécute sur une version de système d’exploitation antérieure à Windows Vista, l’infrastructure ignore les valeurs spécifiées par le pilote lorsqu’il appelle WdfInterruptSetPolicy.
Pour plus d’informations sur les valeurs de Registre et les sections INF qui spécifient la priorité, l’affinité processeur et la stratégie d’affinité d’une interruption, consultez Interrompre l’affinité et la priorité.
Si un pilote appelle WdfInterruptSetPolicy, il le fait généralement dans sa fonction de rappel EvtDriverDeviceAdd , après avoir appelé WdfInterruptCreate.
Si votre pilote crée des interruptions dans EvtDevicePrepareHardware, n’utilisez pas WdfInterruptSetPolicy ou WdfInterruptSetExtendedPolicy. Au lieu de cela, appliquez la stratégie dans EvtDeviceFilterAddResourceRequirements, en manipulant directement l’exigence de ressource d’interruption que cette fonction de rappel reçoit dans son paramètre IoResourceRequirementsList .
Pour plus d’informations sur la gestion des interruptions dans les pilotes basés sur l’infrastructure, consultez Gestion des interruptions matérielles.
Exemples
L’exemple de code suivant attribue une interruption d’appareil au processeur 0, avec une priorité normale.
#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))
WdfInterruptSetPolicy(
Interrupt,
WdfIrqPolicySpecifiedProcessors,
WdfIrqPriorityNormal,
AFFINITY_MASK(0)
);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfinterrupt.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf) |