JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION-Struktur (winnt.h)
Enthält Informationen zu Benachrichtigungsgrenzwerten für ein Auftragsobjekt. Diese Struktur wird von den Funktionen SetInformationJobObject und QueryInformationJobObject mit der Informationsklasse JobObjectNotificationLimitInformation verwendet.
Syntax
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;
Member
IoReadBytesLimit
Wenn der LimitFlags-Member JOB_OBJECT_LIMIT_JOB_READ_BYTES angibt, ist dieser Member der Benachrichtigungsgrenzwert für die Gesamtanzahl von E/A-Bytes, die von allen Prozessen im Auftrag gelesen werden. Andernfalls wird dieser Member ignoriert.
IoWriteBytesLimit
Wenn der Parameter LimitFlags JOB_OBJECT_LIMIT_JOB_WRITE_BYTES angibt, ist dieser Member der Benachrichtigungsgrenzwert für die Gesamtanzahl von E/A-Bytes, die von allen Prozessen im Auftrag geschrieben werden. Andernfalls wird dieser Member ignoriert.
PerJobUserTimeLimit
Wenn der Parameter LimitFlags JOB_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 .
JobMemoryLimit
Wenn der Parameter LimitFlags JOB_OBJECT_LIMIT_JOB_MEMORY angibt, ist dieser Member der Benachrichtigungsgrenzwert für den gesamten virtuellen Arbeitsspeicher, der von allen Prozessen im Auftrag in Bytes committet werden kann. Andernfalls wird dieser Member ignoriert.
Informationen zum Angeben von JobMemoryLimit als durchsetzbarem Grenzwert und zum Verhindern, dass Prozesse in Aufträgen, die den Grenzwert überschreiten, weiterhin Arbeitsspeicher committen, finden Sie in der JOBOBJECT_EXTENDED_LIMIT_INFORMATION-Struktur .
RateControlTolerance
Wenn der Parameter LimitFlags JOB_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.
RateControlToleranceInterval
Wenn der Parameter LimitFlags JOB_OBJECT_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 Grenzwert für committeten Arbeitsspeicher auf die auftragsweite Summe des committeten Arbeitsspeichers für alle dem Auftrag zugeordneten Prozesse fest. Das JobMemoryLimit-Element 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 den Grenzwert 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 grenzwerte für die CPU-Ratensteuerung 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. |
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-Abschlussport überwacht, eine JOB_OBJECT_MSG_NOTIFICATION_LIMIT Meldung empfängt, muss sie QueryInformationJobObject mit der Informationsklasse JobObjectLimitViolationInformation aufrufen. Informationen zur Einschränkungsverletzung werden in einer JOBOBJECT_LIMIT_VIOLATION_STRUCTURE 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-Struktur geben an, wie weit der Auftrag die festgelegten Grenzwerte für die CPU-Ratensteuerung überschreiten kann, bevor die Benachrichtigung gesendet wird.
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
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION