Freigeben über


ZwSetInformationThread-Funktion (ntddk.h)

Die ZwSetInformationThread Routine legt die Priorität eines Threads fest.

Syntax

NTSYSAPI NTSTATUS ZwSetInformationThread(
  [in] HANDLE          ThreadHandle,
  [in] THREADINFOCLASS ThreadInformationClass,
  [in] PVOID           ThreadInformation,
  [in] ULONG           ThreadInformationLength
);

Parameter

[in] ThreadHandle

Behandeln sie das Threadobjekt. Rufen Sie PsCreateSystemThreadauf, um einen neuen Thread zu erstellen und einen Handle zu erhalten. Um den aktuellen Thread anzugeben, verwenden Sie das ZwCurrentThread Makro.

[in] ThreadInformationClass

Einer der systemdefinierten Werte in der THREADINFOCLASS-Aufzählung (siehe ntddk.h), ThreadPriority, ThreadBasePriority, ThreadPagePriorityoder ThreadPowerThrottlingState.

[in] ThreadInformation

Zeigen Sie auf eine Variable, die die festzulegenden Informationen angibt.

Wenn ThreadInformationClass-ThreadPriority-ist, muss dieser Wert > LOW_PRIORITY und <= HIGH_PRIORITY sein.

Wenn ThreadInformationClass-ThreadBasePriority-ist, muss dieser Wert in den gültigen Basisprioritätsbereich des Systems und die ursprüngliche Prioritätsklasse für den angegebenen Thread fallen. Das heißt, wenn die Prioritätsklasse eines Threads variable ist, kann die Basispriorität dieses Threads nicht auf einen Echtzeitprioritätswert zurückgesetzt werden und umgekehrt.

Wenn ThreadInformationClass-ThreadPagePriority-ist, ist dieser Wert ein Zeiger auf eine PAGE_PRIORITY_INFORMATION-Struktur, siehe ntddk.h. Der PagePriority- Memberwert muss einer dieser Werte sein.

Wenn ThreadInformationClass-ThreadPowerThrottlingStateist, ist dieser Wert ein Zeiger auf eine POWER_THROTTLING_THREAD_STATE-Struktur, siehe ntddk.h. Der PagePriority- Memberwert muss einer dieser Werte sein.

Wert Bedeutung
MEMORY_PRIORITY_VERY_LOW Sehr geringe Arbeitsspeicherpriorität.
MEMORY_PRIORITY_LOW Geringe Arbeitsspeicherpriorität.
MEMORY_PRIORITY_MEDIUM Mittlere Speicherpriorität.
MEMORY_PRIORITY_BELOW_NORMAL Unter normaler Speicherpriorität.
MEMORY_PRIORITY_NORMAL Normale Speicherpriorität. Dies ist die Standardpriorität für alle Threads und Prozesse im System.

[in] ThreadInformationLength

Die Größe von ThreadInformation-in Byte.

Rückgabewert

ZwSetInformationThread- gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden NTSTATUS-Fehlercode beim Fehler zurück. Mögliche Fehlercodes sind STATUS_INFO_LENGTH_MISMATCH oder STATUS_INVALID_PARAMETER.

Bemerkungen

ZwSetInformationThread- kann von Treibern höherer Ebene aufgerufen werden, um die Priorität eines Threads festzulegen, für den sie über ein Handle verfügen.

Der Aufrufer muss über THREAD_SET_INFORMATION Zugriffsrechte für den angegebenen Thread verfügen, um diese Routine aufzurufen.

In der Regel rufen Geräte- und Zwischentreiber, die vom Treiber erstellte Threads einrichten, KeSetBasePriorityThread- oder KeSetPriorityThread- aus ihren vom Treiber erstellten Threads auf, anstatt ZwSetInformationThreadaufzurufen. Ein Treiber kann jedoch ZwSetInformationThread- aufrufen, um die Priorität eines vom Treiber erstellten Threads zu erhöhen, bevor dieser Thread ausgeführt wird.

Kernelmodustreiber können die ZwSetInformationThread--Funktion mit ThreadPagePriority- aufrufen, um die Seitenpriorität eines Threads anzugeben.

Um die Systemleistung zu verbessern, sollten Treiber die Funktion mit ThreadPagePriority- verwenden, um die Seitenpriorität von Threads zu senken, die Hintergrundvorgänge ausführen oder auf Dateien und Daten zugreifen, auf die in Kürze nicht mehr zugegriffen werden soll. Beispielsweise kann eine Antischadsoftwareanwendung die Priorität von Threads verringern, die an der Überprüfung von Dateien beteiligt sind.

Um die Seitenpriorität für einen Thread zu bestimmen, rufen Sie ZwQueryInformationThreadauf.

Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen NtSetInformationThread anstelle von ZwSetInformationThread-verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ntddk.h (enthalten Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Siehe auch

KeSetBasePriorityThread-

KeSetPriorityThread-

PsCreateSystemThread-

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen