Share via


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

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema.