Condividi tramite


Funzione WdfInterruptSetPolicy (wdfinterrupt.h)

[Si applica a KMDF e UMDF]

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

Sintassi

void WdfInterruptSetPolicy(
  [in] WDFINTERRUPT           Interrupt,
  [in] WDF_INTERRUPT_POLICY   Policy,
  [in] WDF_INTERRUPT_PRIORITY Priority,
  [in] KAFFINITY              TargetProcessorSet
);

Parametri

[in] Interrupt

Handle per un oggetto di interruzione del framework.

[in] Policy

Enumeratore WDF_INTERRUPT_POLICY tipizzato che specifica un criterio di affinità del processore per l'interruzione.

[in] Priority

Enumeratore WDF_INTERRUPT_PRIORITY tipizzato che specifica una priorità per l'interruzione.

[in] TargetProcessorSet

Valore tipizzato KAFFINITY che specifica un'affinità del processore per l'interruzione, se il parametro Policy è impostato su WdfIrqPolicySpecifiedProcessors.

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

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

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 WdfInterruptSetPolicy, 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. Applicare invece criteri in EvtDeviceFilterAddResourceRequirements, modificando direttamente il requisito di risorsa di interruzione che questa funzione di callback riceve nel relativo parametro IoResourceRequirementsList .

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

Esempio

Nell'esempio di codice seguente viene assegnato un interruzione del dispositivo al processore 0, con priorità normale.

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

WdfInterruptSetPolicy(
                      Interrupt,
                      WdfIrqPolicySpecifiedProcessors,
                      WdfIrqPriorityNormal,
                      AFFINITY_MASK(0)
                      );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
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

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy