Freigeben über


PsQueryProcessAvailableCpus-Funktion (wdm.h)

Die PsQueryProcessAvailableCpus-Funktion fragt den Satz von CPUs ab, die für einen bestimmten Prozess zur Ausführung verfügbar sind.

Syntax

NTSTATUS PsQueryProcessAvailableCpus(
  [in]           PEPROCESS     Process,
  [in, out]      PKAFFINITY_EX Affinity,
  [in, optional] PULONG64      ObservedSequenceNumber,
  [out]          PULONG64      SequenceNumber
);

Die Parameter

[in] Process

Zeiger auf einen Prozess (PEPROCESS).

[in, out] Affinity

Zeiger auf ein erweitertes Affinitätsobjekt (PKAFFINITY_EX), das den Satz verfügbarer CPUs für den Prozess empfängt.

[in, optional] ObservedSequenceNumber

Stellt optional einen Zeiger auf die zuletzt vom Aufrufer beobachtete Sequenznummer über einen vorherigen Aufruf dieser Routine bereit. Wenn diese Sequenznummer der aktuellen Sequenznummer entspricht, gibt die Routine STATUS_NO_WORK_DONE zurück und schreibt nicht in den Affinitätspuffer.

[out] SequenceNumber

Zeigen Sie auf einen Puffer, der die aktuelle Sequenznummer für die verfügbaren CPUs für den angegebenen Prozess empfängt.

Rückgabewert

PsQueryProcessAvailableCpus gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode BESCHREIBUNG
STATUS_SUCCESS Die Abfrage wurde erfolgreich abgeschlossen.
STATUS_INVALID_PARAMETER Jeder der erforderlichen Puffer ist NULL.
STATUS_NO_WORK_DONE Die angegebene Sequenznummer entspricht der aktuellen Sequenznummer, und es wurde keine Abfrage ausgeführt.
STATUS_BUFFER_TOO_SMALL Der angegebene Affinitätspuffer ist zu klein.

Bemerkungen

Diese Routine kann von PASSIVE_LEVEL zu DISPATCH_LEVEL bei IRQL aufgerufen werden.

Der Affinitätspuffer muss groß genug sein, um die Anzahl der aktiven Prozessorgruppen aufzunehmen. Verwenden Sie KeQueryActiveGroupCount , um die erforderliche Größe zu bestimmen.

Mit der Sequenznummer können Anrufer wiederholte Abfragen optimieren, indem überprüft wird, ob sich die CPU-Verfügbarkeit seit dem letzten Aufruf geändert hat.

Anforderungen

Anforderung Wert
Überschrift wdm.h
IRQL PASSIVE_LEVEL zum DISPATCH_LEVEL

Siehe auch

PsQueryProcessAvailableCpusCount

PsQuerySystemAvailableCpus

KeQueryActiveGroupCount