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) |