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.

Nilai Makna
ToleranceLow
1
Pekerjaan dapat melebihi batas kontrol tingkat CPU-nya untuk 20% dari interval toleransi.
ToleransiMedium
2
Pekerjaan dapat melebihi batas kontrol laju CPU-nya untuk 40% dari interval toleransi.
Toleransi Paha
3
Pekerjaan dapat melebihi batas kontrol laju CPU-nya untuk 60% dari interval toleransi.

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
ToleranceIntervalShort
1
Interval toleransi adalah 10 detik.
ToleranceIntervalMedium
2
Interval toleransi adalah satu menit.
ToleranceIntervalLong
3
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
JOB_OBJECT_LIMIT_JOB_MEMORY
0x00000200
Menetapkan batas memori yang diterapkan ke jumlah memori berkomitmen di seluruh pekerjaan untuk semua proses yang terkait dengan pekerjaan. Anggota JobMemoryLimit berisi informasi tambahan.
JOB_OBJECT_LIMIT_JOB_READ_BYTES
0x00010000
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.
JOB_OBJECT_LIMIT_JOB_WRITE_BYTES
0x00020000
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.
JOB_OBJECT_LIMIT_JOB_TIME
0x00000004
Menetapkan batas waktu eksekusi mode pengguna untuk pekerjaan tersebut. Anggota PerJobUserTimeLimit berisi informasi tambahan.
JOB_OBJECT_LIMIT_RATE_CONTROL
0x00040000
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

JOBOBJECT_LIMIT_VIOLATION_INFORMATION

QueryInformationJobObject

SetInformationJobObject