Freigeben über


WdfInterruptSetPolicy-Funktion (wdfinterrupt.h)

[Gilt für KMDF und UMDF]

Die WdfInterruptSetPolicy-Methode gibt die Interruptpriorität, Prozessoraffinität und Affinitätsrichtlinie für einen angegebenen Interrupt an.

Syntax

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

Parameter

[in] Interrupt

Ein Handle für ein Framework-Interruptobjekt.

[in] Policy

Ein WDF_INTERRUPT_POLICY typisierter Enumerator, der eine Prozessoraffinitätsrichtlinie für den Interrupt angibt.

[in] Priority

Ein WDF_INTERRUPT_PRIORITY typisierter Enumerator, der eine Priorität für den Interrupt angibt.

[in] TargetProcessorSet

Ein KAFFINITY-typisierter Wert, der eine Prozessoraffinität für den Interrupt angibt, wenn der Policy-Parameter auf WdfIrqPolicySpecifiedProcessors festgelegt ist.

Rückgabewert

Keine

Bemerkungen

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Windows Vista und höhere Versionen des Betriebssystems ermöglichen es Treibern, die Priorität, die Prozessoraffinität und die Affinitätsrichtlinie eines Interrupts anzugeben. Informationen zur Verwendung der Registrierung zum Überschreiben der von WdfInterruptSetPolicy festgelegten Werte finden Sie unter Interrupt Affinity and Priority.

Wenn ein Treiber unter einer Betriebssystemversion ausgeführt wird, die früher als Windows Vista ist, ignoriert das Framework die Werte, die der Treiber beim Aufrufen von WdfInterruptSetPolicy angibt.

Weitere Informationen zu Registrierungswerten und INF-Abschnitten, in denen die Priorität eines Interrupts, die Prozessoraffinität und die Affinitätsrichtlinie angegeben werden, finden Sie unter Interruptaffinität und Priorität.

Wenn ein Treiber WdfInterruptSetPolicy aufruft, geschieht dies in der Regel in seiner Rückruffunktion EvtDriverDeviceAdd , nachdem er WdfInterruptCreate aufgerufen hat.

Wenn Ihr Treiber Interrupts in EvtDevicePrepareHardware erstellt, verwenden Sie WdfInterruptSetPolicy oder WdfInterruptSetExtendedPolicy nicht. Wenden Sie stattdessen die Richtlinie in EvtDeviceFilterAddResourceRequirements an, indem Sie die Interruptressourcenanforderung direkt bearbeiten, die diese Rückruffunktion im IoResourceRequirementsList-Parameter empfängt .

Weitere Informationen zum Behandeln von Interrupts in frameworkbasierten Treibern finden Sie unter Behandeln von Hardwareunterbrechungen.

Beispiele

Im folgenden Codebeispiel wird dem Prozessor 0 ein Geräteunterbrechung mit normaler Priorität zugewiesen.

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

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

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfinterrupt.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy