Funzione NtSetInformationThread (ntifs.h)
La routine NtSetInformationThread imposta la priorità di un thread.
Sintassi
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread(
[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, ThreadPagePriority o 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 del membro PagePriority 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 del membro PagePriority deve essere uno di questi valori.
Valore | Significato |
---|---|
MEMORY_PRIORITY_VERY_LOW (1) | Priorità di memoria molto bassa. |
MEMORY_PRIORITY_LOW (2) | Priorità di memoria bassa. |
MEMORY_PRIORITY_MEDIUM (3) | Priorità di memoria media. |
MEMORY_PRIORITY_BELOW_NORMAL (4) | Al di sotto della normale priorità di memoria. |
MEMORY_PRIORITY_NORMAL (5) | 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
NtSetInformationThread 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.
Commenti
NtSetInformationThread 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 NtSetInformationThread. Tuttavia, un driver può chiamare NtSetInformationThread per aumentare la priorità di un thread creato dal driver prima dell'esecuzione del thread.
I driver in modalità kernel possono chiamare la funzione NtSetInformationThread 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 ridurre la priorità di pagina dei thread che eseguono operazioni in background o accedere a file e dati a cui non si prevede di accedere di nuovo presto. Ad esempio, un'applicazione antimalware potrebbe ridurre la priorità dei thread coinvolti nell'analisi dei file.
Nota
Se la chiamata a questa funzione si verifica in modalità kernel, devi usare il nome ZwSetInformationThread anziché NtSetInformationThread.
Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows 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..
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
Vedi anche
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema.