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
Uso di nt e zw versioni delle routine di Servizi di sistema nativo