JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION struttura (winnt.h)
Contiene informazioni sui limiti di notifica per un oggetto processo. Questa struttura viene usata dalle funzioni SetInformationJobObject e QueryInformationJobObject con la classe di informazioni JobObjectNotificationLimitInformation .
Sintassi
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;
Members
IoReadBytesLimit
Se il membro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_READ_BYTES, questo membro è 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 è 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 è il limite di notifica per il tempo di esecuzione in modalità utente per processo, in 100-nanosecondi tick. 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 è di 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 .
JobMemoryLimit
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_JOB_MEMORY, questo membro è il limite di notifica per la memoria virtuale totale che può essere eseguito il commit da tutti i processi nel processo, in byte. In caso contrario, questo membro viene ignorato.
Per specificare JobMemoryLimit come limite applicato e impedire processi nei processi che superano il limite di continuare a eseguire il commit della memoria, vedere la struttura JOBOBJECT_EXTENDED_LIMIT_INFORMATION .
RateControlTolerance
Se il parametro LimitFlags specifica JOB_OBJECT_LIMIT_RATE_CONTROL, questo membro specifica l'entità 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 usato ToleranceHigh .
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 usato ToleranceIntervalShort .
LimitFlags
Flag di limite effettivi. Questo membro è un campo bit che determina se vengono usati altri membri della struttura. È possibile specificare qualsiasi combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Stabilisce il limite di memoria commit alla somma a livello di processo della memoria di commit per tutti i processi associati al processo. Il membro JobMemoryLimit contiene informazioni aggiuntive. |
|
Stabilisce il limite di byte di lettura di I/O alla somma a livello di processo di byte di I/O 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 a livello di processo di byte di I/O 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 RateControlTolerance e RateControlToleranceInterval contengono informazioni aggiuntive.
I limiti di controllo della frequenza della CPU vengono stabiliti chiamando SetInformationJobObject con la classe di informazioni JobObjectCpuRateInformationClass . |
Commenti
Quando viene superato un limite di notifica, il sistema invia un messaggio di 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 a allocare memoria o trasmettere byte di lettura o scrittura oltre i limiti specificati.
Quando l'applicazione che monitora la porta di completamento di I/O riceve un messaggio di JOB_OBJECT_MSG_NOTIFICATION_LIMIT, deve chiamare QueryInformationJobObject con la classe di informazioni JobObjectLimitViolationInformation . Le informazioni di violazione limite vengono ricevute in un JOBOBJECT_LIMIT_VIOLATION_STRUCTURE che contiene informazioni su tutti i limiti di notifica superati al momento della query. Il sistema non invia 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 di controllo della frequenza della CPU nella struttura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION specificano il numero di limiti di controllo della frequenza della CPU stabiliti prima dell'invio della notifica.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Intestazione | winnt.h |
Vedi anche
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION