Fungsi CreateJobObjectA (winbase.h)

Membuat atau membuka objek pekerjaan.

Sintaks

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 anak dapat mewarisi handel yang dikembalikan. Jika lpJobAttributesadalah NULL, objek pekerjaan mendapatkan pendeskripsi keamanan default dan handel tidak dapat diwariskan. ACL dalam deskriptor keamanan default untuk objek pekerjaan berasal dari token utama atau peniruan dari pembuat.

[in, optional] lpName

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

Jika lpNameNULL, pekerjaan dibuat tanpa nama.

Jika lpName cocok dengan nama peristiwa, semaphore, mutex, timer yang dapat di tunggu, 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 Namespace Objek.

Layanan Terminal: Nama dapat memiliki awalan "Global" atau "Lokal" untuk secara eksplisit membuat objek 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.

Nilai kembali

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, hubungi GetLastError.

Keterangan

Ketika pekerjaan dibuat, informasi akuntansinya diinisialisasi ke 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

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform 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