Funzione ZwSetInformationThread (ntddk.h)
La routine ZwSetInformationThread imposta la priorità di un thread.
Sintassi
NTSYSAPI NTSTATUS ZwSetInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength
);
Parametri
[in] ThreadHandle
Handle per l'oggetto thread. Per creare un nuovo thread e ottenere un handle, chiamare PsCreateSystemThread. Per specificare il thread corrente, utilizzare la macro ZwCurrentThread.
[in] ThreadInformationClass
Uno dei valori definiti dal sistema nell'enumerazione THREADINFOCLASS (vedere ntddk.h), ThreadPriority, ThreadBasePriority, ThreadPagePriorityo ThreadPowerThrottlingState.
[in] ThreadInformation
Puntatore a una variabile che specifica le informazioni da impostare.
Se ThreadInformationClass è ThreadPriority, questo valore deve essere > LOW_PRIORITY e <= HIGH_PRIORITY.
Se ThreadInformationClass è ThreadBasePriority, questo valore deve rientrare nell'intervallo di priorità base valido del sistema e nella classe di priorità originale per il thread specificato. Ovvero, se la classe di priorità di un thread è variabile, la priorità di base del thread non può essere reimpostata su un valore di priorità in tempo reale e viceversa.
Se ThreadInformationClass è ThreadPagePriority, questo valore è un puntatore a una struttura PAGE_PRIORITY_INFORMATION, vedere ntddk.h. Il valore PagePriority membro deve essere uno di questi valori.
Se ThreadInformationClass è ThreadPowerThrottlingState, questo valore è un puntatore a una struttura POWER_THROTTLING_THREAD_STATE, vedere ntddk.h. Il valore PagePriority membro deve essere uno di questi valori.
Valore | Significato |
---|---|
MEMORY_PRIORITY_VERY_LOW | Priorità di memoria molto bassa. |
MEMORY_PRIORITY_LOW | Priorità di memoria bassa. |
MEMORY_PRIORITY_MEDIUM | Priorità di memoria media. |
MEMORY_PRIORITY_BELOW_NORMAL | Al di sotto della priorità di memoria normale. |
MEMORY_PRIORITY_NORMAL | Priorità di memoria normale. Questa è la priorità predefinita per tutti i thread e i processi nel sistema. |
[in] ThreadInformationLength
Dimensioni, in byte, di ThreadInformation.
Valore restituito
ZwSetInformationThread restituisce STATUS_SUCCESS in caso di esito positivo o il codice di errore NTSTATUS appropriato in caso di errore. I codici di errore possibili includono STATUS_INFO_LENGTH_MISMATCH o STATUS_INVALID_PARAMETER.
Osservazioni
ZwSetInformationThread può essere chiamato da driver di livello superiore per impostare la priorità di un thread per cui hanno un handle.
Il chiamante deve avere THREAD_SET_INFORMATION diritti di accesso per il thread specificato per chiamare questa routine.
In genere, i driver di dispositivo e intermedi che configurano thread creati dal driver chiamano KeSetBasePriorityThread o KeSetPriorityThread dai thread creati dal driver, anziché chiamare ZwSetInformationThread. Tuttavia, un driver può chiamare ZwSetInformationThread per aumentare la priorità di un thread creato dal driver prima dell'esecuzione del thread.
I driver in modalità kernel possono chiamare la funzione ZwSetInformationThread con ThreadPagePriority per specificare la priorità di pagina di un thread.
Per migliorare le prestazioni del sistema, i driver devono usare la funzione con ThreadPagePriority per abbassare la priorità di pagina dei thread che eseguono operazioni in background o accedono a file e dati che non devono essere nuovamente accessibili a breve. Ad esempio, un'applicazione antimalware potrebbe ridurre la priorità dei thread coinvolti nell'analisi dei file.
Per determinare la priorità di pagina per un thread, chiamare ZwQueryInformationThread.
Se la chiamata a questa funzione si verifica in modalità utente, devi usare il nome NtSetInformationThread anziché ZwSetInformationThread.
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | ntddk.h (include Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regole di conformità DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Vedere anche
uso di versioni Nt e Zw delle routine di Servizi di sistema nativi