Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das System stellt eine DPC-Warteschlange für jeden Prozessor bereit. Treiber können steuern, welcher Warteschlange das System einen DPC zuweist, wo sich der DPC innerhalb der Warteschlange befindet und wann die Warteschlange verarbeitet wird.
DPCs, die der Warteschlange eines bestimmten Prozessors zugewiesen sind, werden auf diesem Prozessor ausgeführt. Wenn der Treiber KeInsertQueueDpc oder IoRequestDpc aufruft, wird der DPC standardmäßig auf dem derzeit aktiven Prozessor in die Warteschlange gestellt. Treiber können die Prozessorwarteschlange durch Aufrufen von KeSetTargetProcessorDpc vor dem Aufrufen von KeInsertQueueDpc oder IoRequestDpc angeben.
Unter Windows Vista und späteren Versionen von Windows verfügt das System auch über eine Threaded DPC-Warteschlange für jeden Prozessor. Treiber können KeSetTargetProcessorDpc verwenden, um die Prozessorwarteschlange für Thread-DPCs anzugeben.
Die KeSetImportanceDpc-Routine steuert, wo ein DPC in der Warteschlange platziert wird. In der Regel wird der DPC am Ende der Warteschlange platziert; wenn der Treiber zuerst KeSetImportanceDpc mit dem Parameter "Importance " aufruft, der dem Wert "HighImportance" entspricht, wird der DPC am Anfang der Warteschlange platziert.
Bei normalen (nichtthreadierten) DPCs bestimmt KeSetImportanceDpc auch, ob KeInsertQueueDpc oder IoRequestDpc sofort mit der Verarbeitung der DPC-Warteschlange beginnen. In der folgenden Liste werden die Regeln für die Verarbeitung der Warteschlange beschrieben:
Die Verarbeitung der DPC-Warteschlange beginnt sofort, wenn der DPC dem aktuellen Prozessor zugewiesen ist und Wichtigkeit nicht LowImportance entspricht, oder wenn Importance gleich LowImportance ist und die DPC-Warteschlangentiefe des aktuellen Prozessors einen vom System definierten Grenzwert überschreitet oder die DPC-Anforderungsrate unter ein vom System definiertes Minimum gefallen ist. Andernfalls wird die Verarbeitung des DPC zurückgestellt, bis die entsprechenden Anforderungen an die Warteschlangentiefe und -rate erfüllt sind.
Die Verarbeitung der DPC-Warteschlange beginnt sofort auf dem Zielprozessor, wenn der DPC einem Prozessor zugewiesen ist, der sich von dem aktuellen Prozessor unterscheidet und die Wichtigkeit"MediumHighImportance" oder "HighImportance" entspricht, oder wenn die DPC-Warteschlangentiefe des Zielprozessors einen vom System definierten Grenzwert überschreitet. Andernfalls wird die Verarbeitung des DPC zurückgestellt, bis die entsprechenden Anforderungen an die Warteschlangentiefe und -rate erfüllt sind.