Función NtSetInformationThread (ntifs.h)
La rutina NtSetInformationTh read establece la prioridad de un subproceso.
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength
);
[in] ThreadHandle
Identificador del objeto de subproceso. Para crear un nuevo 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, ThreadPagePriorityo 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 del 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 de miembro pagePriority debe ser uno de estos valores.
Si ThreadInformationClass es ThreadPowerThrottlingState, este valor es un puntero a una estructura de POWER_THROTTLING_THREAD_STATE, vea ntddk.h. El valor de 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.
NtSetInformationThread devuelve STATUS_SUCCESS correcto o el código de error NTSTATUS adecuado en caso de error. Los códigos de error posibles incluyen STATUS_INFO_LENGTH_MISMATCH o STATUS_INVALID_PARAMETER.
ntSetInformationThread se puede llamar mediante controladores de nivel superior 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 determinado con el fin de 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 controladores, 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 acceden 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 NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows 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 de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines..
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 |
de la plataforma de destino de | Universal |
encabezado de | ntifs.h (include Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo.