Fungsi GetPriorityClass (processthreadsapi.h)

Mengambil kelas prioritas untuk proses yang ditentukan. Nilai ini, bersama dengan nilai prioritas setiap utas proses, menentukan tingkat prioritas dasar setiap utas.

Sintaks

DWORD GetPriorityClass(
  [in] HANDLE hProcess
);

Parameter

[in] hProcess

Handel untuk proses.

Handel harus memiliki hak akses PROCESS_QUERY_INFORMATION atau PROCESS_QUERY_LIMITED_INFORMATION . Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses.

Windows Server 2003 dan Windows XP: Handel harus memiliki hak akses PROCESS_QUERY_INFORMATION .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah kelas prioritas dari proses yang ditentukan.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Kelas prioritas proses adalah salah satu nilai berikut.

Mengembalikan kode/nilai Deskripsi
ABOVE_NORMAL_PRIORITY_CLASS
0x00008000
Proses yang memiliki prioritas di atas NORMAL_PRIORITY_CLASS tetapi di bawah HIGH_PRIORITY_CLASS.
BELOW_NORMAL_PRIORITY_CLASS
0x00004000
Proses yang memiliki prioritas di atas IDLE_PRIORITY_CLASS tetapi di bawah NORMAL_PRIORITY_CLASS.
HIGH_PRIORITY_CLASS
0x00000080
Proses yang melakukan tugas penting waktu yang harus segera dijalankan agar berjalan dengan benar. Utas proses kelas prioritas tinggi mendahului utas proses kelas prioritas normal atau menganggur. Contohnya adalah Daftar Tugas, yang harus merespons dengan cepat ketika dipanggil oleh pengguna, terlepas dari beban pada sistem operasi. Gunakan perawatan ekstrem saat menggunakan kelas prioritas tinggi, karena aplikasi terikat CPU kelas prioritas tinggi dapat menggunakan hampir semua siklus yang tersedia.
IDLE_PRIORITY_CLASS
0x00000040
Proses yang utasnya hanya berjalan ketika sistem diam dan didahulukan oleh utas proses apa pun yang berjalan di kelas prioritas yang lebih tinggi. Contohnya adalah pengaman layar. Kelas prioritas menganggur diwariskan oleh proses anak.
NORMAL_PRIORITY_CLASS
0x00000020
Proses tanpa kebutuhan penjadwalan khusus.
REALTIME_PRIORITY_CLASS
0x00000100
Proses yang memiliki prioritas tertinggi. Utas proses kelas prioritas real-time mendahului utas semua proses lainnya, termasuk proses sistem operasi yang melakukan tugas penting. Misalnya, proses real-time yang dijalankan selama lebih dari interval yang sangat singkat dapat menyebabkan cache disk tidak menyiram atau menyebabkan mouse tidak responsif.

Keterangan

Setiap utas memiliki tingkat prioritas dasar yang ditentukan oleh nilai prioritas utas dan kelas prioritas prosesnya. Sistem operasi menggunakan tingkat prioritas dasar dari semua utas yang dapat dieksekusi untuk menentukan utas mana yang mendapatkan iringan waktu CPU berikutnya. Utas dijadwalkan dengan cara round-robin pada setiap tingkat prioritas, dan hanya ketika tidak ada utas yang dapat dieksekusi pada tingkat yang lebih tinggi akan menjadwalkan utas pada tingkat yang lebih rendah yang berlangsung.

Untuk tabel yang memperlihatkan tingkat prioritas dasar untuk setiap kombinasi kelas prioritas dan nilai prioritas utas, lihat Prioritas Penjadwalan.

Kelas prioritas dipertahankan oleh eksekutif, sehingga semua proses memiliki kelas prioritas yang dapat dikueri.

Contoh

Misalnya, lihat Mengambil Rekam Jepret dan Menampilkan Proses.

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header processthreadsapi.h (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

GetThreadPriority

Fungsi Proses dan Utas

Proses

Prioritas Penjadwalan

SetPriorityClass

SetThreadPriority