Función NtSetInformationThread (ntifs.h)
La rutina NtSetInformationThread establece la prioridad de un subproceso.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength
);
Parámetros
[in] ThreadHandle
Identificador del objeto de subproceso. Para crear un subproceso y obtener un identificador, llame a PsCreateSystemThread. Para especificar el subproceso actual, use la macro ZwCurrentThread .
[in] ThreadInformationClass
Uno de los valores definidos por el sistema en la enumeración THREADINFOCLASS (vea ntddk.h), ThreadPriority, ThreadBasePriority, ThreadPagePriority o ThreadPowerThrottlingState.
[in] ThreadInformation
Puntero a una variable que especifica la información que se va a establecer.
Si ThreadInformationClass es ThreadPriority, este valor debe ser > LOW_PRIORITY y <= HIGH_PRIORITY.
Si ThreadInformationClass es ThreadBasePriority, este valor debe estar dentro del intervalo de prioridad base válido del sistema y la clase de prioridad original para el subproceso especificado. Es decir, si la clase de prioridad de un subproceso es variable, la prioridad base de ese subproceso no se puede restablecer a un valor de prioridad en tiempo real y viceversa.
Si ThreadInformationClass es ThreadPagePriority, este valor es un puntero a una estructura de PAGE_PRIORITY_INFORMATION , vea ntddk.h. El valor del miembro PagePriority debe ser uno de estos valores.
Si ThreadInformationClass es ThreadPowerThrottlingState, este valor es un puntero a una estructura POWER_THROTTLING_THREAD_STATE , vea ntddk.h. El valor del miembro PagePriority debe ser uno de estos valores.
Valor | Significado |
---|---|
MEMORY_PRIORITY_VERY_LOW (1) | Prioridad de memoria muy baja. |
MEMORY_PRIORITY_LOW (2) | Prioridad de memoria baja. |
MEMORY_PRIORITY_MEDIUM (3) | Prioridad de memoria media. |
MEMORY_PRIORITY_BELOW_NORMAL (4) | Por debajo de la prioridad de memoria normal. |
MEMORY_PRIORITY_NORMAL (5) | Prioridad de memoria normal. Esta es la prioridad predeterminada para todos los subprocesos y procesos del sistema. |
[in] ThreadInformationLength
Tamaño, en bytes, de ThreadInformation.
Valor devuelto
NtSetInformationThread devuelve STATUS_SUCCESS si se ejecuta correctamente o el código de error NTSTATUS adecuado en caso de error. Entre los códigos de error posibles se incluyen STATUS_INFO_LENGTH_MISMATCH o STATUS_INVALID_PARAMETER.
Comentarios
Los controladores de nivel superior pueden llamar a NtSetInformationThread para establecer la prioridad de un subproceso para el que tienen un identificador.
El autor de la llamada debe tener THREAD_SET_INFORMATION derechos de acceso para el subproceso especificado para llamar a esta rutina.
Normalmente, los controladores intermedios y de dispositivo que configuran subprocesos creados por controladores llaman a KeSetBasePriorityThread o KeSetPriorityThread desde sus subprocesos creados por el controlador, en lugar de llamar a NtSetInformationThread. Sin embargo, un controlador puede llamar a NtSetInformationThread para aumentar la prioridad de un subproceso creado por el controlador antes de que se ejecute ese subproceso.
Los controladores de modo kernel pueden llamar a la función NtSetInformationThread con ThreadPagePriority para especificar la prioridad de página de un subproceso.
Para ayudar a mejorar el rendimiento del sistema, los controladores deben usar la función con ThreadPagePriority para reducir la prioridad de página de los subprocesos que realizan operaciones en segundo plano o acceder a archivos y datos a los que no se espera que se vuelva a acceder pronto. Por ejemplo, una aplicación antimalware podría reducir la prioridad de los subprocesos implicados en el examen de archivos.
Nota
Si la llamada a esta función se produce en modo kernel, debe usar el nombre ZwSetInformationThread en lugar de NtSetInformationThread.
En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines..
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
Usar las versiones Nt y Zw de las rutinas nativas de Servicios del sistema.