Fungsi SetThreadAffinityMask (winbase.h)

Mengatur masker afinitas prosesor untuk utas yang ditentukan.

Sintaks

DWORD_PTR SetThreadAffinityMask(
  [in] HANDLE    hThread,
  [in] DWORD_PTR dwThreadAffinityMask
);

Parameter

[in] hThread

Handel ke utas yang masker afinitasnya akan diatur.

Handel ini harus memiliki hak akses THREAD_SET_INFORMATION atau THREAD_SET_LIMITED_INFORMATION dan hak akses THREAD_QUERY_INFORMATION atau THREAD_QUERY_LIMITED_INFORMATION . Untuk informasi selengkapnya, lihat Keamanan Utas dan Hak Akses.

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

[in] dwThreadAffinityMask

Masker afinitas untuk utas.

Pada sistem dengan lebih dari 64 prosesor, masker afinitas harus menentukan prosesor dalam grup prosesor utas saat ini.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah masker afinitas utas sebelumnya.

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

Jika masker afinitas utas meminta prosesor yang tidak dipilih untuk masker afinitas proses, kode kesalahan terakhir adalah ERROR_INVALID_PARAMETER.

Keterangan

Masker afinitas utas adalah vektor bit di mana setiap bit mewakili prosesor logis yang diizinkan untuk dijalankan oleh utas. Masker afinitas utas harus merupakan subset dari masker afinitas proses untuk proses yang berisi utas. Utas hanya dapat berjalan pada prosesor yang dapat dijalankan prosesnya. Oleh karena itu, masker afinitas utas tidak dapat menentukan 1 bit untuk prosesor ketika masker afinitas proses menentukan 0 bit untuk prosesor tersebut.

Mengatur masker afinitas untuk proses atau utas dapat mengakibatkan utas menerima lebih sedikit waktu prosesor, karena sistem dibatasi untuk menjalankan utas pada prosesor tertentu. Dalam kebanyakan kasus, lebih baik membiarkan sistem memilih prosesor yang tersedia.

Jika mask afinitas utas baru tidak menentukan prosesor yang saat ini menjalankan utas, utas dijadwalkan ulang pada salah satu prosesor yang diizinkan.

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. dwThreadAffinityMask harus menentukan prosesor dalam grup utama utas saat ini.

Persyaratan

Persyaratan Nilai
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

GetProcessAffinityMask

Beberapa Prosesor

OpenThread

Fungsi Proses dan Utas

Grup Prosesor

SetProcessAffinityMask

SetThreadIdealProcessor

Threads