struttura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 (winnt.h)
Contiene informazioni estese sui limiti di notifica per un oggetto processo. Questa struttura viene utilizzata dalle funzioni SetInformationJobObject e QueryInformationJobObject con la classe informativa JobObjectNotificationLimitInformation2 .
Sintassi
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;
Members
IoReadBytesLimit
Se il membro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_READ_BYTES, questo membro rappresenta il limite di notifica per i byte di I/O totali letti da tutti i processi nel processo. In caso contrario, questo membro viene ignorato.
IoWriteBytesLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, questo membro rappresenta il limite di notifica per i byte di I/O totali scritti da tutti i processi nel processo. In caso contrario, questo membro viene ignorato.
PerJobUserTimeLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_TIME, questo membro rappresenta il limite di notifica per il tempo di esecuzione in modalità utente per processo, in tick da 100 nanosecondi. In caso contrario, questo membro viene ignorato.
Il sistema aggiunge il tempo di esecuzione accumulato dei processi associati al processo a questo limite quando viene impostato il limite. Ad esempio, se un processo associato al processo ha già accumulato 5 minuti di tempo di esecuzione in modalità utente e il limite è impostato su 1 minuto, il limite effettivamente applicato è 6 minuti.
Per specificare PerJobUserTimeLimit come limite applicato e terminare i processi nei processi che superano il limite, vedere la struttura JOBOBJECT_BASIC_LIMIT_INFORMATION .
DUMMYUNIONNAME
DUMMYUNIONNAME.JobHighMemoryLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH, questo membro rappresenta il limite massimo di notifica per la memoria virtuale totale di cui è possibile eseguire il commit da tutti i processi del processo, in byte. In caso contrario, questo membro viene ignorato.
DUMMYUNIONNAME.JobMemoryLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_MEMORY, questo membro rappresenta il limite massimo di notifica per la memoria virtuale totale di cui è possibile eseguire il commit da tutti i processi del processo, in byte. In caso contrario, questo membro viene ignorato.
DUMMYUNIONNAME2
DUMMYUNIONNAME2.RateControlTolerance
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_RATE_CONTROL, questo membro specifica la misura in cui un processo può superare i limiti di controllo della frequenza della CPU durante l'intervallo specificato dal membro RateControlToleranceInterval . In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceHigh .
DUMMYUNIONNAME2.CpuRateControlTolerance
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_CPU_RATE_CONTROL, questo membro specifica la misura in cui un processo può superare i limiti di controllo della frequenza della CPU durante l'intervallo specificato dal membro CpuRateControlToleranceInterval . In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceHigh .
DUMMYUNIONNAME3
DUMMYUNIONNAME3.RateControlToleranceInterval
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_RATE_CONTROL, questo membro specifica l'intervallo durante il quale viene monitorato l'utilizzo della CPU di un processo per determinare se il processo ha superato i limiti di controllo della frequenza della CPU. In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceIntervalShort .
DUMMYUNIONNAME3.CpuRateControlToleranceInterval
Se il parametro LimitFlags specifica JOB_OBJECT_CPU_LIMIT_RATE_CONTROL, questo membro specifica l'intervallo durante il quale viene monitorato l'utilizzo della CPU di un processo per determinare se il processo ha superato i limiti di controllo della frequenza della CPU. In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceIntervalShort .
LimitFlags
Flag di limite applicati. Questo membro è un campo di bit che determina se vengono utilizzati altri membri della struttura. È possibile specificare qualsiasi combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Stabilisce la soglia di notifica per la somma a livello di processo della memoria di cui è stato eseguito il commit privato per tutti i processi associati al processo. Il membro JobHighMemoryLimit contiene informazioni aggiuntive. |
|
Stabilisce il valore minimo di notifica per la somma a livello di processo della memoria di cui è stato eseguito il commit privato per tutti i processi associati al processo. Se questo valore è impostato, viene inviata una notifica quando la quantità di memoria di cui è stato eseguito il commit privato scende al di sotto di questa soglia. Il membro JobLowMemoryLimit contiene informazioni aggiuntive. |
|
Stabilisce il limite di byte di lettura di I/O alla somma dei byte di I/O a livello di processo letti da tutti i processi associati al processo. Il membro IoReadBytesLimit contiene altre informazioni. |
|
Stabilisce il limite di byte di scrittura di I/O alla somma dei byte di I/O a livello di processo scritti da tutti i processi associati al processo. Il membro IoWriteBytesLimit contiene altre informazioni. |
|
Stabilisce il limite per il tempo di esecuzione in modalità utente per il processo. Il membro PerJobUserTimeLimit contiene informazioni aggiuntive. |
|
Stabilisce la soglia di notifica per i limiti di controllo della frequenza della CPU stabiliti per il processo. I membri CpuRateControlTolerance e CpuRateControlToleranceInterval contengono informazioni aggiuntive.
I limiti di controllo della frequenza della CPU vengono stabiliti chiamando SetInformationJobObject con la classe di informazioni JobObjectCpuRateInformationClass . |
|
Stabilisce la soglia di notifica per i limiti di controllo della frequenza della CPU stabiliti per il processo. I membri RateControlTolerance e RateControlToleranceInterval contengono informazioni aggiuntive.
I limiti di controllo della frequenza della CPU vengono stabiliti chiamando SetInformationJobObject con la classe di informazioni JobObjectCpuRateInformationClass . |
|
Stabilisce la soglia di notifica per i limiti di controllo della velocità di I/O stabiliti per il processo. I membri IoRateControlTolerance e IoRateControlToleranceInterval contengono informazioni aggiuntive.
I limiti di controllo della velocità di I/O vengono stabiliti chiamando SetIoRateControlInformationJobObject. |
|
Stabilisce la soglia di notifica per i limiti di controllo della frequenza di rete stabiliti per il processo. I membri NetRateControlTolerance e NetRateControlToleranceInterval contengono informazioni aggiuntive.
I limiti di controllo della frequenza di rete vengono stabiliti chiamando SetInformationJobObject con la classe di informazioni JobObjectNetRateInformationClass . |
IoRateControlTolerance
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, questo membro specifica la misura in cui un processo può superare i limiti di controllo della velocità di I/O durante l'intervallo specificato dal membro IoRateControlToleranceInterval . In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceHigh .
JobLowMemoryLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_MEMORY_LOW, questo membro è il limite di notifica minimo per la memoria virtuale totale di cui è possibile eseguire il commit da tutti i processi nel processo, in byte. In caso contrario, questo membro viene ignorato.
IoRateControlToleranceInterval
Se il parametro LimitFlags specifica JOB_OBJECT_IO_LIMIT_RATE_CONTROL, questo membro specifica l'intervallo durante il quale viene monitorato l'utilizzo di I/O di un processo per determinare se il processo ha superato i limiti di controllo della velocità di I/O. In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceIntervalShort .
NetRateControlTolerance
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_IO_RATE_CONTROL, questo membro specifica la misura in cui un processo può superare i limiti di controllo della frequenza di rete durante l'intervallo specificato dal membro NetRateControlToleranceInterval . In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceHigh .
NetRateControlToleranceInterval
Se il parametro LimitFlags specifica JOB_OBJECT_NET_LIMIT_RATE_CONTROL, questo membro specifica l'intervallo durante il quale viene monitorato l'utilizzo della rete di un processo per determinare se il processo ha superato i limiti di controllo della frequenza di rete. In caso contrario, questo membro viene ignorato.
Questo membro può essere uno dei valori seguenti. Se non viene specificato alcun valore, viene utilizzato ToleranceIntervalShort .
Commenti
Quando viene superato un limite di notifica, il sistema invia un messaggio JOB_OBJECT_MSG_NOTIFICATION_LIMIT alla porta di completamento di I/O associata al processo. I processi nel processo continuano a essere eseguiti e possono continuare ad allocare memoria o trasmettere byte di lettura o scrittura oltre i limiti specificati.
Quando l'applicazione che monitora la porta di completamento I/O riceve un messaggio di JOB_OBJECT_MSG_NOTIFICATION_LIMIT , deve chiamare QueryInformationJobObject con la classe di informazioni JobObjectLimitViolationInformation2 . Le informazioni sulla violazione del limite vengono ricevute in una struttura di JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 che contiene informazioni su tutti i limiti di notifica superati al momento della query. Il sistema non invierà un altro messaggio JOB_OBJECT_MSG_NOTIFICATION_LIMIT finché non viene chiamato QueryInformationJobObject .
I limiti di controllo della frequenza della CPU per un processo vengono stabiliti in una struttura JOBOBJECT_CPU_RATE_CONTROL_INFORMATION . I valori del controllo della frequenza della CPU nella struttura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 specificano la quantità che il processo può superare i limiti di controllo della frequenza della CPU stabiliti prima dell'invio della notifica.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 [solo app desktop] |
Server minimo supportato | Windows Server 2016 [solo app desktop] |
Intestazione | winnt.h |
Vedi anche
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION
JOBOBJECT_IO_RATE_CONTROL_INFORMATION
JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2