Freigeben über


JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2-Struktur (winnt.h)

Enthält erweiterte Informationen zu Benachrichtigungsgrenzwerten für ein Auftragsobjekt. Diese Struktur wird von den Funktionen SetInformationJobObject und QueryInformationJobObject mit der Informationsklasse JobObjectNotificationLimitInformation2 verwendet.

Syntax

typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
  DWORD64                                   IoReadBytesLimit;
  DWORD64                                   IoWriteBytesLimit;
  LARGE_INTEGER                             PerJobUserTimeLimit;
  union {
    DWORD64 JobHighMemoryLimit;
    DWORD64 JobMemoryLimit;
  } DUMMYUNIONNAME;
  union {
    JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
    JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
  } DUMMYUNIONNAME2;
  union {
    JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
    JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL CpuRateControlToleranceInterval;
  } DUMMYUNIONNAME3;
  DWORD                                     LimitFlags;
  JOBOBJECT_RATE_CONTROL_TOLERANCE          IoRateControlTolerance;
  DWORD64                                   JobLowMemoryLimit;
  JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval;
  JOBOBJECT_RATE_CONTROL_TOLERANCE          NetRateControlTolerance;
  JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2;

Member

IoReadBytesLimit

Wenn der LimitFlags-MemberJOB_OBJECT_LIMIT_JOB_READ_BYTES angibt, ist dieser Member der Benachrichtigungsgrenzwert für die gesamt gelesenen E/A-Bytes, die von allen Prozessen im Auftrag gelesen werden. Andernfalls wird dieser Member ignoriert.

IoWriteBytesLimit

Wenn der Parameter LimitFlagsJOB_OBJECT_LIMIT_JOB_WRITE_BYTES angibt, ist dieser Member der Benachrichtigungsgrenzwert für die gesamten E/A-Bytes, die von allen Prozessen im Auftrag geschrieben werden. Andernfalls wird dieser Member ignoriert.

PerJobUserTimeLimit

Wenn der Parameter LimitFlagsJOB_OBJECT_LIMIT_JOB_TIME angibt, ist dieser Member das Benachrichtigungslimit für die Ausführungszeit des Benutzermodus pro Auftrag in 100-Nanosekunden-Ticks. Andernfalls wird dieser Member ignoriert.

Das System fügt die akkumulierte Ausführungszeit von Prozessen, die dem Auftrag zugeordnet sind, zu diesem Grenzwert hinzu, wenn der Grenzwert festgelegt ist. Wenn beispielsweise ein Prozess, der dem Auftrag zugeordnet ist, bereits 5 Minuten Ausführungszeit im Benutzermodus gesammelt hat und das Limit auf 1 Minute festgelegt ist, beträgt die tatsächlich erzwungene Grenze 6 Minuten.

Informationen zum Angeben von PerJobUserTimeLimit als durchsetzbarem Grenzwert und zum Beenden von Prozessen in Aufträgen, die den Grenzwert überschreiten, finden Sie unter JOBOBJECT_BASIC_LIMIT_INFORMATION-Struktur .

DUMMYUNIONNAME

DUMMYUNIONNAME.JobHighMemoryLimit

Wenn der Parameter LimitFlagsJOB_OBJECT_LIMIT_JOB_MEMORY_HIGH angibt, ist dieser Member der maximale Benachrichtigungsgrenzwert für den gesamten virtuellen Arbeitsspeicher, der von allen Prozessen im Auftrag in Bytes committet werden kann. Andernfalls wird dieser Member ignoriert.

DUMMYUNIONNAME.JobMemoryLimit

Wenn der Parameter LimitFlagsJOB_OBJECT_LIMIT_JOB_MEMORY angibt, ist dieser Member das maximale Benachrichtigungslimit für den gesamten virtuellen Arbeitsspeicher, der von allen Prozessen im Auftrag in Bytes committet werden kann. Andernfalls wird dieser Member ignoriert.

DUMMYUNIONNAME2

DUMMYUNIONNAME2.RateControlTolerance

Wenn der LimitFlags-ParameterJOB_OBJECT_LIMIT_RATE_CONTROL angibt, gibt dieser Member den Umfang an, in dem ein Auftrag seine CPU-Ratensteuerungsgrenzwerte während des vom RateControlToleranceInterval-Member angegebenen Intervalls überschreiten kann. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceHigh verwendet.

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

DUMMYUNIONNAME2.CpuRateControlTolerance

Wenn der LimitFlags-ParameterJOB_OBJECT_LIMIT_CPU_RATE_CONTROL angibt, gibt dieser Member den Umfang an, in dem ein Auftrag seine CPU-Ratensteuerungsgrenzwerte während des vom CpuRateControlToleranceInterval-Member angegebenen Intervalls überschreiten kann. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceHigh verwendet.

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

DUMMYUNIONNAME3

DUMMYUNIONNAME3.RateControlToleranceInterval

Wenn der Parameter LimitFlagsJOB_OBJECT_LIMIT_RATE_CONTROL angibt, gibt dieser Member das Intervall an, in dem die CPU-Auslastung eines Auftrags überwacht wird, um festzustellen, ob der Auftrag seine Grenzwerte für die CPU-Ratensteuerung überschritten hat. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceIntervalShort verwendet.

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.

DUMMYUNIONNAME3.CpuRateControlToleranceInterval

Wenn der Parameter LimitFlagsJOB_OBJECT_CPU_LIMIT_RATE_CONTROL angibt, gibt dieser Member das Intervall an, in dem die CPU-Auslastung eines Auftrags überwacht wird, um zu bestimmen, ob der Auftrag seine Grenzwerte für die CPU-Ratensteuerung überschritten hat. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceIntervalShort verwendet.

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.

LimitFlags

Die geltenden Grenzwertflags. Dieses Element ist ein Bitfeld, das bestimmt, ob andere Strukturmember verwendet werden. Eine beliebige Kombination der folgenden Werte kann angegeben werden.

Wert Bedeutung
JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH
0x00000200
Legt den Benachrichtigungsschwellenwert für die auftragsweite Summe des privaten Commitspeichers für alle dem Auftrag zugeordneten Prozesse fest. Das JobHighMemoryLimit-Element enthält zusätzliche Informationen.
JOB_OBJECT_LIMIT_JOB_MEMORY_LOW
0x00008000
Legt das Benachrichtigungsmindest für die auftragsweite Summe des privaten Commitspeichers für alle dem Auftrag zugeordneten Prozesse fest. Wenn dieser Wert festgelegt ist, wird eine Benachrichtigung gesendet, wenn die Menge des privaten Commitspeichers unter diesen Schwellenwert fällt. Das Element JobLowMemoryLimit enthält zusätzliche Informationen.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
Legt den Grenzwert für E/A-Lesebytes auf die auftragsweite Summe der E/A-Bytes fest, die von allen dem Auftrag zugeordneten Prozessen gelesen werden. Das Element IoReadBytesLimit enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
Legt den Grenzwert für E/A-Schreibbytes auf die auftragsweite Summe der E/A-Bytes fest, die von allen dem Auftrag zugeordneten Prozessen geschrieben werden. Das IoWriteBytesLimit-Element enthält weitere Informationen.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Legt das Limit für die Ausführungszeit im Benutzermodus für den Auftrag fest. Das PerJobUserTimeLimit-Element enthält zusätzliche Informationen.
JOB_OBJECT_LIMIT_CPU_RATE_CONTROL
0x00040000
Legt den Benachrichtigungsschwellenwert für die CPU-Ratensteuerungsgrenzwerte fest, die für den Auftrag festgelegt wurden. Die Member CpuRateControlTolerance und CpuRateControlToleranceInterval enthalten zusätzliche Informationen.

Cpu-Ratensteuerungsgrenzwerte werden durch Aufrufen von SetInformationJobObject mit der Informationsklasse JobObjectCpuRateInformationClass festgelegt.

JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
Legt den Benachrichtigungsschwellenwert für die CPU-Ratensteuerungsgrenzwerte fest, die für den Auftrag festgelegt wurden. Die Member RateControlTolerance und RateControlToleranceInterval enthalten zusätzliche Informationen.

Cpu-Ratensteuerungsgrenzwerte werden durch Aufrufen von SetInformationJobObject mit der Informationsklasse JobObjectCpuRateInformationClass festgelegt.

JOB_OBJECT_LIMIT_IO_RATE_CONTROL
0x00080000
Legt den Benachrichtigungsschwellenwert für die E/A-Ratensteuerungsgrenzwerte fest, die für den Auftrag festgelegt wurden. Die Member IoRateControlTolerance und IoRateControlToleranceInterval enthalten zusätzliche Informationen.

E/A-Ratensteuerungsgrenzwerte werden durch Aufrufen von SetIoRateControlInformationJobObject festgelegt.

JOB_OBJECT_LIMIT_NET_RATE_CONTROL
0x00100000
Legt den Benachrichtigungsschwellenwert für die Grenzwerte für die Netzwerkratensteuerung fest, die für den Auftrag festgelegt wurden. Die Member NetRateControlTolerance und NetRateControlToleranceInterval enthalten zusätzliche Informationen.

Grenzwerte für die Netzwerkratensteuerung werden durch Aufrufen von SetInformationJobObject mit der Informationsklasse JobObjectNetRateInformationClass festgelegt.

IoRateControlTolerance

Wenn der LimitFlags-ParameterJOB_OBJECT_LIMIT_IO_RATE_CONTROL angibt, gibt dieser Member den Umfang an, in dem ein Auftrag seine E/A-Ratensteuerungsgrenzwerte während des vom IoRateControlToleranceInterval-Member angegebenen Intervalls überschreiten kann. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceHigh verwendet.

Wert Bedeutung
ToleranceLow
1
Der Auftrag kann seine E/A-Ratensteuerungsgrenzwerte für 20 % des Toleranzintervalls überschreiten.
ToleranzMedium
2
Der Auftrag kann seine E/A-Ratensteuerungsgrenzwerte für 40 % des Toleranzintervalls überschreiten.
ToleranzHigh
3
Der Auftrag kann seine E/A-Ratensteuerungsgrenzwerte für 60 % des Toleranzintervalls überschreiten.

JobLowMemoryLimit

Wenn der LimitFlags-ParameterJOB_OBJECT_LIMIT_JOB_MEMORY_LOW angibt, ist dieser Member das mindeste Benachrichtigungslimit für den gesamten virtuellen Arbeitsspeicher, der von allen Prozessen im Auftrag in Bytes committet werden kann. Andernfalls wird dieser Member ignoriert.

IoRateControlToleranceInterval

Wenn der LimitFlags-ParameterJOB_OBJECT_IO_LIMIT_RATE_CONTROL angibt, gibt dieser Member das Intervall an, in dem die E/A-Nutzung eines Auftrags überwacht wird, um zu bestimmen, ob der Auftrag seine E/A-Ratensteuerungsgrenzwerte überschritten hat. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceIntervalShort verwendet.

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

NetRateControlTolerance

Wenn der LimitFlags-ParameterJOB_OBJECT_LIMIT_IO_RATE_CONTROL angibt, gibt dieser Member das Ausmaß an, in dem ein Auftrag seine Grenzwerte für die Netzwerkratensteuerung während des vom NetRateControlToleranceInterval-Member angegebenen Intervalls überschreiten kann. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceHigh verwendet.

Wert Bedeutung
ToleranceLow
1
Der Auftrag kann seine Grenzwerte für die Netzwerkratensteuerung für 20 % des Toleranzintervalls überschreiten.
ToleranzMedium
2
Der Auftrag kann seine Grenzwerte für die Netzwerkratensteuerung für 40 % des Toleranzintervalls überschreiten.
ToleranzHigh
3
Der Auftrag kann seine Grenzwerte für die Netzwerkratensteuerung für 60 % des Toleranzintervalls überschreiten.

NetRateControlToleranceInterval

Wenn der LimitFlags-ParameterJOB_OBJECT_NET_LIMIT_RATE_CONTROL angibt, gibt dieser Member das Intervall an, in dem die Netzwerknutzung eines Auftrags überwacht wird, um festzustellen, ob der Auftrag seine Grenzwerte für die Netzwerkratensteuerung überschritten hat. Andernfalls wird dieser Member ignoriert.

Dieser Member kann einer der folgenden Werte sein. Wenn kein Wert angegeben wird, wird ToleranceIntervalShort verwendet.

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

Hinweise

Wenn ein Benachrichtigungslimit überschritten wird, sendet das System eine JOB_OBJECT_MSG_NOTIFICATION_LIMIT Nachricht an den E/A-Abschlussport, der dem Auftrag zugeordnet ist. Prozesse im Auftrag werden weiterhin ausgeführt und können weiterhin Arbeitsspeicher zuweisen oder Lese- oder Schreibbytes über die angegebenen Grenzwerte hinaus übertragen.

Wenn die Anwendung, die den E/A-Vervollständigungsport überwacht, eine JOB_OBJECT_MSG_NOTIFICATION_LIMIT Nachricht empfängt, muss sie QueryInformationJobObject mit der Informationsklasse JobObjectLimitViolationInformation2 aufrufen. Informationen zu Grenzwertverletzungen werden in einer JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2-Struktur empfangen, die Informationen zu allen Benachrichtigungsgrenzwerten enthält, die zum Zeitpunkt der Abfrage überschritten wurden. Das System sendet erst nach dem Aufruf von QueryInformationJobObject eine weitere JOB_OBJECT_MSG_NOTIFICATION_LIMIT Nachricht.

Cpu-Ratensteuerungsgrenzwerte für einen Auftrag werden in einer JOBOBJECT_CPU_RATE_CONTROL_INFORMATION-Struktur festgelegt. Die CPU-Ratensteuerungswerte in der JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2-Struktur geben an, wie stark der Auftrag die festgelegten CPU-Ratensteuerungsgrenzwerte überschreiten kann, bevor die Benachrichtigung gesendet wird.

Anforderungen

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

Weitere Informationen

JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

JOBOBJECT_IO_RATE_CONTROL_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2

JOBOBJECT_NET_RATE_CONTROL_INFORMATION

QueryInformationJobObject

SetInformationJobObject

SetIoRateControlInformationJobObject