Condividi tramite


Funzione WdfInterruptSetExtendedPolicy (wdfinterrupt.h)

[Si applica a KMDF e UMDF]

Il metodo WdfInterruptSetExtendedPolicy specifica la priorità di interrupt, l'affinità del processore, i criteri di affinità e il gruppo di processori per un interrupt specificato.

Sintassi

void WdfInterruptSetExtendedPolicy(
  [in] WDFINTERRUPT                   Interrupt,
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

Parametri

[in] Interrupt

Handle per un oggetto interrupt del framework.

[in] PolicyAndGroup

Puntatore a una struttura WDF_INTERRUPT_EXTENDED_POLICY allocata e inizializzata dal chiamante.

Valore restituito

Nessuno

Osservazioni:

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Windows Vista e versioni successive del sistema operativo consentono ai driver di usare il metodo WdfInterruptSetPolicy per specificare la priorità di un interrupt, l'affinità del processore e i criteri di affinità. Inoltre, le versioni 1.9 e successive di KMDF consentono ai driver di usare il metodo WdfInterruptSetExtendedPolicy per specificare la priorità di un interrupt, l'affinità del processore, i criteri di affinità e il gruppo di processori.

Per informazioni su come utilizzare il Registro di sistema per eseguire l'override dei valori set di WdfInterruptSetExtendedPolicy, vedere l'affinità di interruzione e la priorità.

Se un driver è in esecuzione in una versione del sistema operativo precedente a Windows 7, il framework ignora il valore specificato dal driver per il numero del gruppo di processori quando chiama WdfInterruptSetExtendedPolicy.

Se un driver è in esecuzione in una versione del sistema operativo precedente a Windows Vista, il framework ignora tutti i valori specificati dal driver quando chiama WdfInterruptSetPolicy o WdfInterruptSetExtendedPolicy.

Per altre informazioni sui valori del Registro di sistema e le sezioni INF che specificano la priorità di un interrupt, l'affinità del processore e i criteri di affinità, vedere l'affinità di interruzione e la priorità.

Se un driver chiama WdfInterruptSetExtendedPolicy, in genere lo fa nel relativo EvtDriverDeviceAdd funzione di callback, dopo aver chiamato WdfInterruptCreate.

Se il driver crea interrupt in EvtDevicePrepareHardware, non usare WdfInterruptSetPolicy o WdfInterruptSetExtendedPolicy. È invece possibile applicare i criteri in EvtDeviceFilterAddResourceRequirements, modificando direttamente il requisito di risorsa interrupt ricevuto da questa funzione di callback nel relativo parametro IoResourceRequirementsList.

Per altre informazioni sulla gestione degli interrupt nei driver basati su framework, vedere Gestione degli interrupt hardware.

Esempi

Nell'esempio di codice seguente viene chiamato WDF_INTERRUPT_EXTENDED_POLICY_INIT per inizializzare una struttura WDF_INTERRUPT_EXTENDED_POLICY; imposta i valori per i criteri, la priorità e il set di processori di destinazione; e chiama WdfInterruptSetExtendedPolicy. Nell'esempio viene impostata la priorità normale per l'interrupt e viene assegnato l'interrupt al processore 0 nel gruppo di processori 2.

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

WdfInterruptSetExtendedPolicy(
                              Interrupt,
                              &myExtendedPolicy
 );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
versione minima di KMDF 1.9
versione minima di UMDF 2.0
intestazione wdfinterrupt.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
regole di conformità DDI DriverCreate(kmdf)

Vedere anche

WdfInterruptSetPolicy