structure JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION (winnt.h)
Contient des informations sur les limites de notification pour un objet de travail. Cette structure est utilisée par les fonctions SetInformationJobObject et QueryInformationJobObject avec la classe d’informations JobObjectNotificationLimitInformation .
Syntaxe
typedef struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
DWORD LimitFlags;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, *PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
Membres
IoReadBytesLimit
Si le membre LimitFlags spécifie JOB_OBJECT_LIMIT_JOB_READ_BYTES, ce membre est la limite de notification pour le nombre total d’octets d’E/S lus par tous les processus du travail. Sinon, ce membre est ignoré.
IoWriteBytesLimit
Si le paramètre LimitFlags spécifie JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, ce membre est la limite de notification pour le nombre total d’octets d’E/S écrits par tous les processus du travail. Sinon, ce membre est ignoré.
PerJobUserTimeLimit
Si le paramètre LimitFlags spécifie JOB_OBJECT_LIMIT_JOB_TIME, ce membre est la limite de notification pour le temps d’exécution en mode utilisateur par travail, en 100 nanosecondes. Sinon, ce membre est ignoré.
Le système ajoute le temps d’exécution cumulé des processus associés au travail à cette limite lorsque la limite est définie. Par exemple, si un processus associé au travail a déjà accumulé 5 minutes de temps d’exécution en mode utilisateur et que la limite est définie sur 1 minute, la limite effectivement appliquée est de 6 minutes.
Pour spécifier PerJobUserTimeLimit comme limite applicable et arrêter les processus dans les travaux qui dépassent la limite, consultez la structure JOBOBJECT_BASIC_LIMIT_INFORMATION .
JobMemoryLimit
Si le paramètre LimitFlags spécifie JOB_OBJECT_LIMIT_JOB_MEMORY, ce membre est la limite de notification pour la mémoire virtuelle totale qui peut être validée par tous les processus du travail, en octets. Sinon, ce membre est ignoré.
Pour spécifier JobMemoryLimit comme limite applicable et empêcher les processus dans les travaux qui dépassent la limite de continuer à valider la mémoire, consultez la structure JOBOBJECT_EXTENDED_LIMIT_INFORMATION .
RateControlTolerance
Si le paramètre LimitFlags spécifie JOB_OBJECT_LIMIT_RATE_CONTROL, ce membre spécifie la mesure dans laquelle un travail peut dépasser ses limites de contrôle de débit processeur pendant l’intervalle spécifié par le membre RateControlToleranceInterval . Sinon, ce membre est ignoré.
Ce membre peut être l’une des valeurs suivantes. Si aucune valeur n’est spécifiée, ToleranceHigh est utilisé.
RateControlToleranceInterval
Si le paramètre LimitFlags spécifie JOB_OBJECT_LIMIT_RATE_CONTROL, ce membre spécifie l’intervalle pendant lequel l’utilisation du processeur d’une tâche est surveillée pour déterminer si la tâche a dépassé ses limites de contrôle du débit processeur. Sinon, ce membre est ignoré.
Ce membre peut être l’une des valeurs suivantes. Si aucune valeur n’est spécifiée, ToleranceIntervalShort est utilisé.
LimitFlags
Indicateurs de limite qui sont en vigueur. Ce membre est un champ de bits qui détermine si d’autres membres de la structure sont utilisés. Vous pouvez spécifier n’importe quelle combinaison des valeurs suivantes.
Valeur | Signification |
---|---|
|
Établit la limite de mémoire validée à la somme de mémoire validée à l’échelle du travail pour tous les processus associés au travail. Le membre JobMemoryLimit contient des informations supplémentaires. |
|
Établit la limite d’octets de lecture d’E/S à la somme à l’échelle du travail d’octets d’E/S lus par tous les processus associés au travail. Le membre IoReadBytesLimit contient plus d’informations. |
|
Établit la limite d’octets d’écriture d’E/S à la somme à l’échelle du travail d’octets d’E/S écrits par tous les processus associés au travail. Le membre IoWriteBytesLimit contient plus d’informations. |
|
Établit la limite du temps d’exécution en mode utilisateur pour le travail. Le membre PerJobUserTimeLimit contient des informations supplémentaires. |
|
Établit le seuil de notification pour les limites de contrôle de débit processeur établies pour le travail. Les membres RateControlTolerance et RateControlToleranceInterval contiennent des informations supplémentaires.
Les limites de contrôle du débit processeur sont établies en appelant SetInformationJobObject avec la classe d’informations JobObjectCpuRateInformationClass . |
Remarques
Lorsqu’une limite de notification est dépassée, le système envoie un message JOB_OBJECT_MSG_NOTIFICATION_LIMIT au port d’achèvement des E/S associé au travail. Les processus du travail continuent de s’exécuter et peuvent continuer à allouer de la mémoire ou à transmettre des octets de lecture ou d’écriture au-delà des limites spécifiées.
Lorsque l’application qui surveille le port d’achèvement des E/S reçoit un message JOB_OBJECT_MSG_NOTIFICATION_LIMIT, elle doit appeler QueryInformationJobObject avec la classe d’informations JobObjectLimitViolationInformation . Les informations de violation de limite sont reçues dans un JOBOBJECT_LIMIT_VIOLATION_STRUCTURE qui contient des informations sur toutes les limites de notification qui ont été dépassées au moment de la requête. Le système n’envoie pas d’autre message JOB_OBJECT_MSG_NOTIFICATION_LIMIT tant que QueryInformationJobObject n’est pas appelé.
Les limites de contrôle du débit processeur pour un travail sont établies dans une structure JOBOBJECT_CPU_RATE_CONTROL_INFORMATION . Les valeurs de contrôle de débit processeur dans la structure de JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION spécifient combien le travail peut dépasser ses limites de contrôle de débit d’UC établies avant l’envoi de la notification.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
En-tête | winnt.h |
Voir aussi
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION