JOBOBJECT_LIMIT_VIOLATION_INFORMATION-Struktur (winnt.h)

Enthält Informationen zu Ressourcenbenachrichtigungsgrenzwerten, die für ein Auftragsobjekt überschritten wurden. Diese Struktur wird mit der QueryInformationJobObject-Funktion mit der Informationsklasse JobObjectLimitViolationInformation verwendet.

Syntax

typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
  DWORD                            LimitFlags;
  DWORD                            ViolationLimitFlags;
  DWORD64                          IoReadBytes;
  DWORD64                          IoReadBytesLimit;
  DWORD64                          IoWriteBytes;
  DWORD64                          IoWriteBytesLimit;
  LARGE_INTEGER                    PerJobUserTime;
  LARGE_INTEGER                    PerJobUserTimeLimit;
  DWORD64                          JobMemory;
  DWORD64                          JobMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION;

Member

LimitFlags

Flags, die die für den Auftrag geltenden Benachrichtigungsgrenzwerte identifizieren. Dieses Element ist ein Bitfeld, das bestimmt, ob andere Strukturmember verwendet werden. Dieser Member kann eine beliebige Kombination der folgenden Werte sein.

Wert Bedeutung
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
Für den Auftrag gilt ein Grenzwert für Benachrichtigungen für committeten Arbeitsspeicher. Das Element JobMemoryLimit enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
Der Auftrag verfügt über ein E/A-Lesebyte-Benachrichtigungslimit. Das Element IoReadBytesLimit enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Der Auftrag verfügt über ein Benachrichtigungslimit für die Ausführung im Benutzermodus. Das PerJobUserTimeLimit-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
Der Auftrag verfügt über ein E/A-Benachrichtigungslimit für Schreibbytes. Das IoWriteBytesLimit-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Der Umfang, in dem ein Auftrag seinen Grenzwert für die CPU-Ratensteuerung überschreiten kann. Das RateControlToleranceLimit-Element enthält weitere Informationen.

ViolationLimitFlags

Flags, die die Benachrichtigungsgrenzwerte identifizieren, die überschritten wurden. Dieses Element ist ein Bitfeld, das bestimmt, ob andere Strukturmember verwendet werden. Dieser Member kann eine beliebige Kombination der folgenden Werte sein.

Wert Bedeutung
JOB_OBJECT_LIMIT_READ_BYTES
0x00010000
Der Grenzwert für E/A-Lesebyte-Benachrichtigungen des Auftrags wurde überschritten. Das IoReadBytes-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_WRITE_BYTES
0x00020000
Der Grenzwert für E/A-Schreibbyte-Benachrichtigungen des Auftrags wurde überschritten. Das IoWriteBytes-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Das Benachrichtigungslimit für die Ausführungszeit des Auftrags im Benutzermodus wurde überschritten. Das PerJobUserTime-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
Der Benachrichtigungsgrenzwert für den committeten Arbeitsspeicher des Auftrags wurde überschritten. Das JobMemory-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Der Grenzwert für die CPU-Ratensteuerung des Auftrags wurde überschritten. Das RateControlTolerance-Element enthält weitere Informationen.

IoReadBytes

Wenn der Member ViolationLimitFlags JOB_OBJECT_LIMIT_READ_BYTES angibt, enthält dieses Element die Gesamtanzahl der E/A-Lesebytes für alle Prozesse im Auftrag zum Zeitpunkt des Sendens der Benachrichtigung.

IoReadBytesLimit

Wenn der LimitFlags-Member JOB_OBJECT_LIMIT_READ_BYTES angibt, enthält dieses Element den E/A-Benachrichtigungsgrenzwert für Lesebytes, der für den Auftrag gilt.

IoWriteBytes

Wenn das Member ViolationLimitFlags JOB_OBJECT_LIMIT_WRITE_BYTES angibt, enthält dieses Element die Gesamtanzahl von E/A-Schreibbytes für alle Prozesse im Auftrag zum Zeitpunkt des Sendens der Benachrichtigung.

IoWriteBytesLimit

Wenn der LimitFlags-Member JOB_OBJECT_LIMIT_WRITE_BYTES angibt, enthält dieses Element den E/A-Benachrichtigungsgrenzwert für Schreibbytes, der für den Auftrag gilt.

PerJobUserTime

Wenn das Member ViolationLimitFlags JOB_OBJECT_LIMIT_JOB_TIME angibt, enthält dieses Element die Gesamtlaufzeit für die Ausführung des Benutzermodus für alle Prozesse im Auftrag zum Zeitpunkt des Sendens der Benachrichtigung.

PerJobUserTimeLimit

Wenn der LimitFlags-Member JOB_OBJECT_LIMIT_JOB_TIME angibt, enthält dieses Element das für den Auftrag geltenden Grenzwert für Ausführungsbenachrichtigungen im Benutzermodus.

JobMemory

Wenn das Member ViolationLimitFlags JOB_OBJECT_LIMIT_JOB_MEMORY angibt, enthält dieses Element den committeten Arbeitsspeicher für alle Prozesse im Auftrag zum Zeitpunkt des Sendens der Benachrichtigung.

JobMemoryLimit

Wenn der LimitFlags-Member JOB_OBJECT_LIMIT_JOB_MEMORY angibt, enthält dieses Element die für den Auftrag festgelegte Arbeitsspeichergrenze.

RateControlTolerance

Wenn der Parameter LimitFlags JOB_OBJECT_LIMIT_RATE_CONTROL angibt, gibt dieser Member den Umfang an, in dem der Auftrag seine CPU-Ratensteuerungsgrenzwerte zum Zeitpunkt des Sendens der Benachrichtigung überschritten hat. Dieser Member kann einer der folgenden Werte sein.

Wert Bedeutung
ToleranceLow
1
Der Auftrag hat seine GRENZWERTE für die CPU-Ratensteuerung für 20 % des Toleranzintervalls überschritten.
ToleranceMedium
2
Der Auftrag hat seine Grenzwerte für die CPU-Ratensteuerung für 40 % des Toleranzintervalls überschritten.
ToleranceHigh
3
Der Auftrag hat seine GRENZWERTE für die CPU-Ratensteuerung für 60 % des Toleranzintervalls überschritten.

RateControlToleranceLimit

Wenn der Parameter LimitFlags JOB_OBJECT_LIMIT_RATE_CONTROL angibt, enthält dieser Member die grenzwerte für die CPU-Ratensteuerung, die für den Auftrag angegeben sind.

Wert Bedeutung
ToleranceIntervalShort
1
Das Toleranzintervall beträgt 10 Sekunden.
ToleranceIntervalMedium
2
Das Toleranzintervall beträgt eine Minute.
ToleranceIntervalLong
3
Das Toleranzintervall beträgt 10 Minuten.

Hinweise

Wenn ein in einer JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION-Struktur angegebenes Benachrichtigungslimit überschritten wird, sendet das System eine JOB_OBJECT_MSG_NOTIFICATION_LIMIT Nachricht an den E/A-Abschlussport, der dem Auftrag zugeordnet ist.

Um Informationen zu den überschrittenen Grenzwerten abzurufen, muss die Anwendung, die den E/A-Vervollständigungsport überwacht, die QueryInformationJobObject-Funktion mit der Informationsklasse JobObjectLimitViolationInformation und einem Zeiger auf eine JOBOBJECT_LIMIT_VIOLATION_INFORMATION-Struktur aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Kopfzeile winnt.h

Weitere Informationen

QueryInformationJobObject

SetInformationJobObject