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.
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.
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.
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.
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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
Legt das Limit für die Ausführungszeit im Benutzermodus für den Auftrag fest. Das PerJobUserTimeLimit-Element enthält zusätzliche Informationen. |
|
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. |
|
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. |
|
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. |
|
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.
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.
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.
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.
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