Freigeben über


NtSetInformationThread-Funktion (ntifs.h)

Die NtSetInformationThread-Routine legt die Priorität eines Threads fest.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread(
  [in] HANDLE          ThreadHandle,
  [in] THREADINFOCLASS ThreadInformationClass,
  [in] PVOID           ThreadInformation,
  [in] ULONG           ThreadInformationLength
);

Parameter

[in] ThreadHandle

Handle für das Threadobjekt. Um einen neuen Thread zu erstellen und ein Handle dafür zu erhalten, rufen Sie PsCreateSystemThread auf. Verwenden Sie das Makro ZwCurrentThread , um den aktuellen Thread anzugeben.

[in] ThreadInformationClass

Einer der systemdefinierten Werte in der THREADINFOCLASS-Enumeration (siehe ntddk.h), ThreadPriority, ThreadBasePriority, ThreadPagePriority oder ThreadPowerThrottlingState.

[in] ThreadInformation

Zeiger auf eine Variable, die die festzulegenden Informationen angibt.

Wenn ThreadInformationClassden Wert ThreadPriority aufweist, muss dieser Wert LOW_PRIORITY und <= HIGH_PRIORITY sein>.

Wenn ThreadInformationClassthreadBasePriority ist, muss dieser Wert innerhalb des gültigen Basisprioritätsbereichs des Systems und der ursprünglichen Prioritätsklasse für den angegebenen Thread liegen. Das heißt, wenn die Prioritätsklasse eines Threads variabel ist, kann die Basispriorität dieses Threads nicht auf einen Echtzeitprioritätswert zurückgesetzt werden und umgekehrt.

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

Wenn ThreadInformationClassthreadPowerThrottlingState ist, 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 (1) Sehr niedrige Arbeitsspeicherpriorität.
MEMORY_PRIORITY_LOW (2) Niedrige Arbeitsspeicherpriorität.
MEMORY_PRIORITY_MEDIUM (3) Mittlere Arbeitsspeicherpriorität.
MEMORY_PRIORITY_BELOW_NORMAL (4) Unterhalb der normalen Speicherpriorität.
MEMORY_PRIORITY_NORMAL (5) Normale Speicherpriorität. Dies ist die Standardpriorität für alle Threads und Prozesse im System.

[in] ThreadInformationLength

Die Größe von ThreadInformation in Bytes.

Rückgabewert

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

Hinweise

NtSetInformationThread 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 aufrufen zu können.

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 NtSetInformationThread aufzurufen. Ein Treiber kann jedoch NtSetInformationThread aufrufen, um die Priorität eines vom Treiber erstellten Threads zu erhöhen, bevor dieser Thread ausgeführt wird.

Kernelmodustreiber können die NtSetInformationThread-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 nicht bald wieder zugegriffen werden soll. Beispielsweise kann eine Antischadsoftwareanwendung die Priorität von Threads verringern, die an der Überprüfung von Dateien beteiligt sind.

Hinweis

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

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Zielplattform Universell
Header ntifs.h (include Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Weitere Informationen

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.