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 all'oggetto thread. Per creare un nuovo thread e ottenere un handle, chiamare PsCreateSystemThread. Per specificare il thread corrente, usare 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 la classe di priorità originale per il thread specificato. Ovvero, se la classe priorità di un thread è variabile, la priorità di base del thread non può essere reimpostata in 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 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 membro PagePriority deve essere uno di questi valori.

Valore Significato
MEMORY_PRIORITY_VERY_LOW Priorità di memoria molto bassa.
MEMORY_PRIORITY_LOW Priorità di memoria ridotta.
MEMORY_PRIORITY_MEDIUM Priorità di memoria media.
MEMORY_PRIORITY_BELOW_NORMAL Sotto la 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 sull'esito positivo o sul codice di errore NTSTATUS appropriato in caso di errore. I codici di errore possibili includono STATUS_INFO_LENGTH_MISMATCH o STATUS_INVALID_PARAMETER.

Commenti

ZwSetInformationThread può essere chiamato dai driver di livello superiore per impostare la priorità di un thread per il quale 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à della 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 ai file e ai dati che non devono essere nuovamente accessibili presto. Ad esempio, un'applicazione antimalware potrebbe ridurre la priorità dei thread coinvolti nell'analisi dei file.

Per determinare la priorità della pagina per un thread, chiamare ZwQueryInformationThread.

Se la chiamata a questa funzione si verifica in modalità utente, è necessario usare il nome NtSetInformationThread anziché ZwSetInformationThread.

Per le chiamate dai driver in modalità kernel, le versioni NtXxx e ZwXxx 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 Uso di nt e zw versioni delle routine di Servizi di sistema nativo.

Requisiti

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)

Vedi anche

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

Uso di nt e zw versioni delle routine di Servizi di sistema nativo