struktur JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION (winnt.h)
Berisi informasi tentang batas pemberitahuan untuk objek pekerjaan. Struktur ini digunakan oleh fungsi SetInformationJobObject dan QueryInformationJobObject dengan kelas informasi JobObjectNotificationLimitInformation .
Sintaks
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;
Anggota
IoReadBytesLimit
Jika anggota LimitFlags menentukan JOB_OBJECT_LIMIT_JOB_READ_BYTES, anggota ini adalah batas pemberitahuan untuk total byte I/O yang dibaca oleh semua proses dalam pekerjaan. Jika tidak, anggota ini diabaikan.
IoWriteBytesLimit
Jika parameter LimitFlags menentukan JOB_OBJECT_LIMIT_JOB_WRITE_BYTES, anggota ini adalah batas pemberitahuan untuk total byte I/O yang ditulis oleh semua proses dalam pekerjaan. Jika tidak, anggota ini diabaikan.
PerJobUserTimeLimit
Jika parameter LimitFlags menentukan JOB_OBJECT_LIMIT_JOB_TIME, anggota ini adalah batas pemberitahuan untuk waktu eksekusi mode pengguna per pekerjaan, dalam 100 detik nanodetik. Jika tidak, anggota ini diabaikan.
Sistem menambahkan akumulasi waktu eksekusi proses yang terkait dengan pekerjaan ke batas ini ketika batas ditetapkan. Misalnya, jika proses yang terkait dengan pekerjaan telah mengumpulkan 5 menit waktu eksekusi mode pengguna dan batasnya diatur ke 1 menit, batas yang benar-benar diberlakukan adalah 6 menit.
Untuk menentukan PerJobUserTimeLimit sebagai batas yang dapat diberlakukan dan mengakhiri proses dalam pekerjaan yang melebihi batas, lihat struktur JOBOBJECT_BASIC_LIMIT_INFORMATION .
JobMemoryLimit
Jika parameter LimitFlags menentukan JOB_OBJECT_LIMIT_JOB_MEMORY, anggota ini adalah batas pemberitahuan untuk total memori virtual yang dapat dilakukan oleh semua proses dalam pekerjaan, dalam byte. Jika tidak, anggota ini diabaikan.
Untuk menentukan JobMemoryLimit sebagai batas yang dapat diberlakukan dan mencegah proses dalam pekerjaan yang melebihi batas untuk terus menerapkan memori, lihat struktur JOBOBJECT_EXTENDED_LIMIT_INFORMATION .
RateControlTolerance
Jika parameter LimitFlags menentukan JOB_OBJECT_LIMIT_RATE_CONTROL, anggota ini menentukan sejauh mana pekerjaan dapat melebihi batas kontrol tingkat CPU selama interval yang ditentukan oleh anggota RateControlToleranceInterval . Jika tidak, anggota ini diabaikan.
Anggota ini bisa menjadi salah satu nilai berikut. Jika tidak ada nilai yang ditentukan, ToleranceHigh digunakan.
RateControlToleranceInterval
Jika parameter LimitFlags menentukan JOB_OBJECT_LIMIT_RATE_CONTROL, anggota ini menentukan interval di mana penggunaan CPU pekerjaan dipantau untuk menentukan apakah pekerjaan telah melebihi batas kontrol tingkat CPU-nya. Jika tidak, anggota ini diabaikan.
Anggota ini bisa menjadi salah satu nilai berikut. Jika tidak ada nilai yang ditentukan, ToleranceIntervalShort digunakan.
Nilai | Makna |
---|---|
|
Interval toleransi adalah 10 detik. |
|
Interval toleransi adalah satu menit. |
|
Interval toleransi adalah 10 menit. |
LimitFlags
Bendera batas yang berlaku. Anggota ini adalah bitfield yang menentukan apakah anggota struktur lain digunakan. Kombinasi apa pun dari nilai berikut dapat ditentukan.
Nilai | Makna |
---|---|
|
Menetapkan batas memori yang diterapkan ke jumlah memori berkomitmen di seluruh pekerjaan untuk semua proses yang terkait dengan pekerjaan. Anggota JobMemoryLimit berisi informasi tambahan. |
|
Menetapkan batas byte baca I/O ke jumlah byte I/O di seluruh pekerjaan yang dibaca oleh semua proses yang terkait dengan pekerjaan. Anggota IoReadBytesLimit berisi informasi selengkapnya. |
|
Menetapkan batas byte tulis I/O untuk jumlah byte I/O di seluruh pekerjaan yang ditulis oleh semua proses yang terkait dengan pekerjaan. Anggota IoWriteBytesLimit berisi informasi selengkapnya. |
|
Menetapkan batas waktu eksekusi mode pengguna untuk pekerjaan tersebut. Anggota PerJobUserTimeLimit berisi informasi tambahan. |
|
Menetapkan ambang pemberitahuan untuk batas kontrol laju CPU yang ditetapkan untuk pekerjaan tersebut. Anggota RateControlTolerance dan RateControlToleranceInterval berisi informasi tambahan.
Batas kontrol laju CPU ditetapkan dengan memanggil SetInformationJobObject dengan kelas informasi JobObjectCpuRateInformationClass . |
Keterangan
Ketika batas pemberitahuan terlampaui, sistem mengirim pesan JOB_OBJECT_MSG_NOTIFICATION_LIMIT ke port penyelesaian I/O yang terkait dengan pekerjaan. Proses dalam pekerjaan terus berjalan dan dapat terus mengalokasikan memori atau mengirimkan byte baca atau tulis di luar batas yang ditentukan.
Ketika aplikasi yang memantau port penyelesaian I/O menerima pesan JOB_OBJECT_MSG_NOTIFICATION_LIMIT, aplikasi harus memanggil QueryInformationJobObject dengan kelas informasi JobObjectLimitViolationInformation . Informasi pelanggaran batas diterima dalam JOBOBJECT_LIMIT_VIOLATION_STRUCTURE yang berisi informasi tentang semua batas pemberitahuan yang terlampaui pada saat kueri. Sistem tidak akan mengirim pesan JOB_OBJECT_MSG_NOTIFICATION_LIMIT lain sampai setelah QueryInformationJobObject dipanggil.
Batas kontrol laju CPU untuk pekerjaan ditetapkan dalam struktur JOBOBJECT_CPU_RATE_CONTROL_INFORMATION . Nilai kontrol laju CPU dalam struktur JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION menentukan berapa banyak pekerjaan yang dapat melebihi batas kontrol tingkat CPU yang ditetapkan sebelum pemberitahuan dikirim.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Header | winnt.h |
Lihat juga
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION