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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk