Fungsi CreateJobObjectA (winbase.h)

Membuat atau membuka objek pekerjaan.

Sintaksis

HANDLE CreateJobObjectA(
  [in, optional] LPSECURITY_ATTRIBUTES lpJobAttributes,
  [in, optional] LPCSTR                lpName
);

Parameter

[in, optional] lpJobAttributes

Penunjuk ke struktur SECURITY_ATTRIBUTES yang menentukan deskriptor keamanan untuk objek pekerjaan dan menentukan apakah proses turunan dapat mewarisi handel yang dikembalikan. Jika lpJobAttributesNULL, objek pekerjaan mendapatkan deskriptor keamanan default dan handel tidak dapat diwariskan. ACL dalam deskriptor keamanan default untuk objek pekerjaan berasal dari token utama atau peniruan identitas pembuat.

[in, optional] lpName

Nama pekerjaan. Nama ini terbatas pada karakter MAX_PATH. Perbandingan nama peka huruf besar/kecil.

Jika lpName NULL, pekerjaan dibuat tanpa nama.

Jika lpName cocok dengan nama peristiwa, semaphore, mutex, timer yang dapat ditunda, atau objek pemetaan file yang ada, fungsi gagal dan fungsi GetLastError mengembalikan ERROR_INVALID_HANDLE. Ini terjadi karena objek ini memiliki namespace yang sama.

Objek dapat dibuat di namespace privat. Untuk informasi selengkapnya, lihat Object Namespaces.

Terminal Services: Nama dapat memiliki awalan "Global" atau "Lokal" untuk membuat objek secara eksplisit di namespace layanan global atau sesi. Sisa nama dapat berisi karakter apa pun kecuali karakter garis miring terbelakang (\). Untuk informasi selengkapnya, lihat Namespace Objek Kernel.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke objek pekerjaan. Handel memiliki akses JOB_OBJECT_ALL_ACCESS yang tepat. Jika objek ada sebelum panggilan fungsi, fungsi mengembalikan handel ke objek pekerjaan yang ada dan GetLastError mengembalikan ERROR_ALREADY_EXISTS.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

Ketika pekerjaan dibuat, informasi akuntansinya diinisialisasi menjadi nol, semua batas tidak aktif, dan tidak ada proses terkait. Untuk menetapkan proses ke objek pekerjaan, gunakan fungsi AssignProcessToJobObject. Untuk mengatur batas pekerjaan, gunakan fungsi SetInformationJobObject . Untuk mengkueri informasi akuntansi, gunakan fungsi QueryInformationJobObject.

Semua proses yang terkait dengan pekerjaan harus berjalan dalam sesi yang sama. Pekerjaan dikaitkan dengan sesi proses pertama yang akan ditetapkan ke pekerjaan.

Windows Server 2003 dan Windows XP: Pekerjaan dikaitkan dengan sesi proses yang membuatnya.

Untuk menutup handel objek pekerjaan, gunakan fungsi closeHandle . Pekerjaan dihancurkan ketika handel terakhirnya telah ditutup dan semua proses terkait telah keluar. Namun, jika pekerjaan memiliki bendera JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE yang ditentukan, menutup handel objek pekerjaan terakhir mengakhiri semua proses terkait dan kemudian menghancurkan objek pekerjaan itu sendiri.

Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0500 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Platform Target Windows
Header winbase.h (termasuk Windows.h, Jobapi2.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

AssignProcessToJobObject

closeHandle

Objek Pekerjaan

Fungsi Proses dan Utas

QueryInformationJobObject

SECURITY_ATTRIBUTES

SetInformationJobObject