KeSetImportanceDpc-Funktion (wdm.h)

Die KeSetImportanceDpc-Routine gibt an, wie schnell die DPC-Routine ausgeführt wird.

Syntax

void KeSetImportanceDpc(
  [in, out] PRKDPC          Dpc,
  [in]      KDPC_IMPORTANCE Importance
);

Parameter

[in, out] Dpc

Zeiger auf das DPC-Objekt des Aufrufers, das keInitializeDpc bereits initialisiert hat.

[in] Importance

Gibt einen der folgenden systemdefinierten Werte an, um das Verhalten von KeInsertQueueDpc und IoRequestDpc zu bestimmen, wenn eine der routinen verwendet wird, um den DPC in die Warteschlange zu stellen.

LowImportance

Platzieren Sie den DPC am Ende der DPC-Warteschlange, und beginnen Sie nicht mit der Verarbeitung der Warteschlange.

MediumImportance

Platzieren Sie den DPC am Ende der DPC-Warteschlange. Wenn der DPC der DPC-Warteschlange des aktuellen Prozessors zugewiesen ist, beginnen Sie sofort mit der Verarbeitung der Warteschlange. MediumImportance ist der Standardwert für Wichtigkeit.

MediumHighImportance

Platzieren Sie den DPC am Ende der DPC-Warteschlange, und beginnen Sie sofort mit der Verarbeitung der Warteschlange. MediumHighImportance ist nur unter Windows Vista und höheren Versionen von Windows verfügbar.

HighImportance

Platzieren Sie den DPC am Anfang der DPC-Warteschlange, und beginnen Sie sofort mit der Verarbeitung der Warteschlange.

Rückgabewert

Keine

Bemerkungen

Die KeSetImportanceDpc-Routine beeinflusst, wie schnell ein DPC ausgeführt wird, nachdem er in die Warteschlange eingereiht wurde, indem folgendes bestimmt wird:

  • Der Speicherort des DPC in der DPC-Warteschlange. In der Regel platzieren die Routinen KeInsertQueueDpc und IoRequestDpc einen DPC am Ende der Warteschlange. Wenn ein Treiber zuerst KeSetImportanceDpc mit Wichtigkeit = HighImportance aufruft, platzieren KeInsertQueueDpc und IoRequestDpc den DPC am Anfang der Warteschlange.
  • Wenn das System mit der Verarbeitung der DPC-Warteschlange beginnt. In der Regel beginnen KeInsertQueueDpc und IoRequestDpc sofort mit der Verarbeitung der DPC-Warteschlange für den aktuellen Prozessor. Treiber können unterschiedliche Werte für Wichtigkeit angeben, um dieses Verhalten zu ändern.
Standardmäßig werden DPCs der DPC-Warteschlange für den aktuellen Prozessor zugewiesen, sodass die Angabe von MediumImportance oder MediumHighImportance für Wichtigkeit die gleiche Auswirkung hat. Treiber können jedoch keSetTargetProcessorDpc verwenden, um den Prozessor zu ändern, dem der DPC zugewiesen wird.

Für Windows Vista und höhere Versionen des Windows-Betriebssystems können Sie KeSetImportanceDpc für DpCs mit Threading verwenden. Wenn der Aufrufer Wichtigkeit auf HighImportance festlegt, wird der DPC am Anfang der Warteschlange platziert. Andernfalls wird sie am Ende platziert. Die Routine wirkt sich nicht auf die Verarbeitung der DPC-Threadwarteschlange aus. Thread-DPCs werden immer von einem dedizierten Thread unter IRQL = PASSIVE_LEVEL verarbeitet. Weitere Informationen zu Thread-DPCs finden Sie unter Einführung in Thread-DPCs.

Beachten Sie, dass ein Treiber KeSetImportanceDpc aufrufen muss, bevor er KeInsertQueueDpc und IoRequestDpc aufruft , um auswirkungen zu können.

Weitere Informationen zur Verarbeitung der DPC-Warteschlange durch das System finden Sie unter Organisation von DPC-Warteschlangen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene

Weitere Informationen

IoRequestDpc

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution