Freigeben über


KeSetImportanceDpc-Funktion (wdm.h)

Die KeSetImportanceDpc Routine gibt an, wie bald 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.

[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 Importance.

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

Nichts

Bemerkungen

Die KeSetImportanceDpc Routine beeinflusst, wie bald ein DPC ausgeführt wird, nachdem es in die Warteschlange eingereiht wurde, indem bestimmt wird:

  • Die Position des DPC in der DPC-Warteschlange. In der Regel platzieren die KeInsertQueueDpc und IoRequestDpc Routinen einen DPC am Ende der Warteschlange. Wenn ein Treiber zuerst KeSetImportanceDpc mit Importance = HighImportanceaufruft, KeInsertQueueDpc und IoRequestDpc- platziert den DPC am Anfang der Warteschlange.
  • Wenn das System mit der Verarbeitung der DPC-Warteschlange beginnt. In der Regel KeInsertQueueDpc und IoRequestDpc sofort mit der Verarbeitung der DPC-Warteschlange für den aktuellen Prozessor beginnen. Treiber können unterschiedliche Werte für Wichtigkeits- angeben, um dieses Verhalten zu ändern.
Standardmäßig werden DPCs der DPC-Warteschlange für den aktuellen Prozessor zugewiesen, sodass die Angabe 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 Thread-DPCs 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 bei IRQL = PASSIVE_LEVEL verarbeitet. Weitere Informationen zu Thread-DPCs finden Sie unter Einführung in Threaded DPCs.

Beachten Sie, dass ein Treiber KeSetImportanceDpc- aufrufen muss, bevor er KeInsertQueueDpc aufruft, und IoRequestDpc, um irgendeine Wirkung zu haben.

Weitere Informationen dazu, wie das System die DPC-Warteschlange verarbeitet, finden Sie unter Organisation von DPC-Warteschlangen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene

Siehe auch

IoRequestDpc

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution