Fungsi GetProcessAffinityMask (winbase.h)

Mengambil masker afinitas proses untuk proses yang ditentukan dan masker afinitas sistem untuk sistem.

Sintaks

BOOL GetProcessAffinityMask(
  [in]  HANDLE     hProcess,
  [out] PDWORD_PTR lpProcessAffinityMask,
  [out] PDWORD_PTR lpSystemAffinityMask
);

Parameter

[in] hProcess

Handel untuk proses yang masker afinitasnya diinginkan.

Handel ini 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 .

[out] lpProcessAffinityMask

Penunjuk ke variabel yang menerima masker afinitas untuk proses yang ditentukan.

[out] lpSystemAffinityMask

Pointer ke variabel yang menerima masker afinitas untuk sistem.

Menampilkan nilai

Jika fungsi berhasil, nilai pengembalian bukan nol dan fungsi mengatur variabel yang diarahkan oleh lpProcessAffinityMask dan lpSystemAffinityMask ke masker afinitas yang sesuai.

Pada sistem dengan lebih dari 64 prosesor, jika utas proses panggilan berada dalam satu grup prosesor, fungsi mengatur variabel yang diarahkan oleh lpProcessAffinityMask dan lpSystemAffinityMask ke masker afinitas proses dan masker prosesor prosesor prosesor logis aktif untuk grup tersebut. Jika proses panggilan berisi utas dalam beberapa grup, fungsi mengembalikan nol untuk kedua masker afinitas.

Jika fungsi gagal, nilai yang dikembalikan adalah nol, dan nilai variabel yang diarahkan oleh lpProcessAffinityMask dan lpSystemAffinityMask tidak terdefinisi. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Masker afinitas proses adalah vektor bit di mana setiap bit mewakili prosesor tempat prosesor diizinkan untuk dijalankan. Masker afinitas sistem adalah vektor bit di mana setiap bit mewakili prosesor yang dikonfigurasi ke dalam sistem.

Masker afinitas proses adalah subset dari masker afinitas sistem. Proses hanya diizinkan untuk berjalan pada prosesor yang dikonfigurasi ke dalam sistem. Oleh karena itu, masker afinitas proses tidak dapat menentukan 1 bit untuk prosesor ketika masker afinitas sistem menentukan 0 bit untuk prosesor tersebut.

Dimulai dengan Windows 11 dan Windows Server 2022, pada sistem dengan lebih dari 64 prosesor, proses dan afinitas utas mencakup semua prosesor dalam sistem, di semua grup prosesor, secara default. Fungsi GetProcessAffinityMask mengatur lpProcessAffinityMask dan lpSystemAffinityMask ke proses dan prosesor sistem menutupi grup utama proses. Jika proses telah secara eksplisit mengatur afinitas satu atau beberapa utasnya di luar grup utama proses, fungsi mengembalikan nol untuk kedua masker afinitas. Namun, jika hHandle menentukan handel ke proses saat ini, fungsi selalu menggunakan grup utama utas panggilan (yang secara default sama dengan grup utama proses) untuk mengatur lpProcessAffinityMask dan lpSystemAffinityMask.

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 winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Beberapa Prosesor

Fungsi Proses dan Utas

Proses

Grup Prosesor

SetProcessAffinityMask

SetThreadAffinityMask