Funzione WdfInterruptSetExtendedPolicy (wdfinterrupt.h)

[Si applica a KMDF e UMDF]

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

Sintassi

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

Parametri

[in] Interrupt

Handle per un oggetto di interruzione del framework.

[in] PolicyAndGroup

Puntatore a una struttura WDF_INTERRUPT_EXTENDED_POLICY allocata e inizializzata dal chiamante.

Valore restituito

nessuno

Osservazioni

Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.

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

Per informazioni su come usare il Registro di sistema per eseguire l'override dei valori impostati da WdfInterruptSetExtendedPolicy , vedere Interruzione di affinità e 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 di gruppo del processore 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 sulle sezioni INF che specificano la priorità, l'affinità del processore e i criteri di affinità, vedere Interruzione affinità e priorità.

Se un driver chiama WdfInterruptSetExtendedPolicy, in genere lo fa nella sua funzione EvtDriverDeviceAdd callback, dopo aver chiamato WdfInterruptCreate.

Se il driver crea interruzioni in EvtDevicePrepareHardware, non usare WdfInterruptSetPolicy o WdfInterruptSetExtendedPolicy. È invece possibile applicare criteri in EvtDeviceFilterAddResourceRequirements, modificando direttamente il requisito della risorsa di interruzione che questa funzione di callback riceve nel parametro IoResourceRequirementsList .

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

Esempio

L'esempio di codice seguente chiama WDF_INTERRUPT_EXTENDED_POLICY_INIT per inizializzare una struttura WDF_INTERRUPT_EXTENDED_POLICY ; imposta i valori per il set di processori criteri, priorità e destinazione; e chiama WdfInterruptSetExtendedPolicy. L'esempio imposta la priorità normale per l'interruzione e assegna l'interruzione al processore 0 nel gruppo di processore 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 KMDF minima 1,9
Versione UMDF minima 2,0
Intestazione wdfinterrupt.h (include Wdf.h)
Libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf)

Vedi anche

WdfInterruptSetPolicy