Condividi tramite


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

KeSetBasePriorityThread

KeSetPriorityThread

PsCreateSystemThread

uso di versioni Nt e Zw delle routine di Servizi di sistema nativi