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
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 (1) | Sehr geringe Arbeitsspeicherpriorität. |
MEMORY_PRIORITY_LOW (2) | Geringe Arbeitsspeicherpriorität. |
MEMORY_PRIORITY_MEDIUM (3) | Mittlere Speicherpriorität. |
MEMORY_PRIORITY_BELOW_NORMAL (4) | Unter normaler 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 Byte.
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.
Bemerkungen
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 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 NtSetInformationThreadaufzurufen. 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 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.
Anmerkung
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 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 |
---|---|
mindestens unterstützte Client- | Windows 2000 |
Zielplattform- | Universal |
Header- | ntifs.h (enthalten Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs, PowerIrpDDis |
Siehe auch
Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen.