Compartir a través de


estructura JOBOBJECT_CPU_RATE_CONTROL_INFORMATION (winnt.h)

Contiene información de control de velocidad de CPU para un objeto de trabajo. Esta estructura la usan las funciones SetInformationJobObject y QueryInformationJobObject con la clase de información JobObjectCpuRateControlInformation .

Sintaxis

typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
  DWORD ControlFlags;
  union {
    DWORD CpuRate;
    DWORD Weight;
    struct {
      WORD MinRate;
      WORD MaxRate;
    } DUMMYSTRUCTNAME;
  } DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;

Miembros

ControlFlags

Directiva de programación para el control de velocidad de CPU. Este miembro puede ser uno de los siguientes valores.

Valor Significado
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
Esta marca permite controlar la velocidad de CPU del trabajo en función del peso o el límite duro. Debe establecer este valor si también establece JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP o JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
La tasa de CPU del trabajo se calcula en función de su peso relativo al peso de otros trabajos. Si se establece esta marca, el miembro Weight contiene más información. Si esta marca está desactivada, el miembro CpuRate contiene más información.

Si establece JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, tampoco puede establecer JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
La tasa de CPU del trabajo es un límite estricto. Una vez que el trabajo alcance su límite de ciclo de CPU para el intervalo de programación actual, no se ejecutará ningún subproceso asociado al trabajo hasta el siguiente intervalo.

Si establece JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP, tampoco puede establecer JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
Envía mensajes cuando la velocidad de CPU del trabajo supera los límites de velocidad del trabajo durante el intervalo de tolerancia.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
La velocidad de CPU del trabajo está limitada por las tasas mínimas y máximas que especifique en los miembros MinRate y MaxRate .

Si establece JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, no puede establecer ni JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED ni JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

Especifica la parte de los ciclos de procesador que los subprocesos de un objeto de trabajo pueden usar durante cada intervalo de programación, como el número de ciclos por cada 10 000 ciclos. Si el miembro ControlFlags especifica JOB_OBJECT_CPU_RATE_WEIGHT_BASED o JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, este miembro no se usa.

Establezca CpuRate en un porcentaje veces 100. Por ejemplo, para permitir que el trabajo use el 20 % de la CPU, establezca CpuRate en 20 veces 100 o 2000.

No establezca CpuRate en 0. Si CpuRate es 0, SetInformationJobObject devuelve INVALID_ARGS.

DUMMYUNIONNAME.Weight

Si el miembro ControlFlags especifica JOB_OBJECT_CPU_RATE_WEIGHT_BASED, este miembro especifica el peso de programación del objeto de trabajo, que determina el recurso compartido del tiempo de procesador dado al trabajo en relación con otras cargas de trabajo del procesador.

Este miembro puede ser un valor comprendido entre 1 y 9, donde 1 es la acción más pequeña y 9 es la mayor. El valor predeterminado es 5, que se debe usar para la mayoría de las cargas de trabajo.

Si el miembro ControlFlags especifica JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, este miembro no se usa.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate

Especifica la parte mínima de los ciclos de procesador que los subprocesos de un objeto de trabajo pueden reservar durante cada intervalo de programación. Especifique esta tasa como porcentaje veces 100. Por ejemplo, para establecer una tasa mínima del 50 %, especifique 50 veces 100 o 5000.

Para que las tasas mínimas funcionen correctamente, la suma de las tasas mínimas para todos los objetos de trabajo del sistema no puede superar los 10 000, que es el equivalente del 100 %.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

Especifica la parte máxima de los ciclos de procesador que los subprocesos de un objeto de trabajo pueden usar durante cada intervalo de programación. Especifique esta tasa como porcentaje veces 100. Por ejemplo, para establecer una velocidad máxima del 50 %, especifique 50 veces 100 o 5000.

Una vez que el trabajo alcanza este límite para un intervalo de programación, no se puede ejecutar ningún subproceso asociado al trabajo hasta el siguiente intervalo de programación.

Comentarios

Puede establecer el control de velocidad de CPU para varios trabajos en una jerarquía de trabajos anidados. Al establecer el control de velocidad de CPU para un objeto de trabajo, la configuración se aplica al trabajo y a sus trabajos secundarios en la jerarquía. Al establecer el control de velocidad de CPU para un trabajo en una jerarquía anidada, el sistema calcula las cuotas correspondientes con respecto al control de velocidad de CPU del trabajo primario inmediato para el trabajo. En otras palabras, las tasas establecidas para el trabajo representan su parte de la tasa de CPU que se asigna a su trabajo primario. Si un objeto de trabajo no tiene un elemento primario con el control de velocidad de CPU activado en la cadena de sus trabajos primarios, el control de velocidad del trabajo representa la parte de la CPU para todo el sistema.

Los objetos de trabajo que se ejecutan en Servicios de Escritorio remoto (anteriormente Terminal Services) no pueden usar el control de velocidad de CPU si la programación dinámica de recursos compartidos justos (DFSS) está en vigor.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Encabezado winnt.h

Consulte también

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject