Fungsi GetLogicalProcessorInformationEx (sysinfoapi.h)

Mengambil informasi tentang hubungan prosesor logis dan perangkat keras terkait.

Sintaks

BOOL GetLogicalProcessorInformationEx(
  [in]            LOGICAL_PROCESSOR_RELATIONSHIP           RelationshipType,
  [out, optional] PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
  [in, out]       PDWORD                                   ReturnedLength
);

Parameter

[in] RelationshipType

Jenis hubungan yang akan diambil. Parameter ini bisa menjadi salah satu nilai LOGICAL_PROCESSOR_RELATIONSHIP berikut.

Nilai Makna
RelationProcessorCore
0
Mengambil informasi tentang prosesor logis yang berbagi satu inti prosesor.
RelationNumaNode
1
Mengambil informasi tentang prosesor logis yang merupakan bagian dari simpul NUMA yang sama.
RelationCache
2
Mengambil informasi tentang prosesor logis yang berbagi cache.
RelationProcessorPackage
3
Mengambil informasi tentang prosesor logis yang berbagi paket fisik.
Grup Hubungan
4
Mengambil informasi tentang prosesor logis yang berbagi grup prosesor.
RelationProcessorDie
5
Mengambil informasi tentang prosesor logis yang berbagi prosesor mati.
RelationNumaNodeEx
6
Mengambil informasi tentang prosesor logis yang merupakan bagian dari simpul NUMA yang sama (dengan afinitas penuh).
RelationProcessorModule
7
Mengambil informasi tentang prosesor logis yang berbagi modul prosesor.
RelationAll
0xffff
Mengambil informasi tentang prosesor logis untuk semua jenis hubungan (cache, simpul NUMA, inti prosesor, paket fisik, grup prosesor, mati prosesor, dan modul prosesor).

[out, optional] Buffer

Penunjuk ke buffer yang menerima urutan struktur SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX berukuran variabel. Jika fungsi gagal, konten buffer ini tidak terdefinisi.

[in, out] ReturnedLength

Pada input, menentukan panjang buffer yang diacu oleh Buffer, dalam byte. Jika buffer cukup besar untuk berisi semua data, fungsi ini berhasil dan ReturnedLength diatur ke jumlah byte yang dikembalikan. Jika buffer tidak cukup besar untuk berisi semua data, fungsi gagal, GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER, dan ReturnedLength diatur ke panjang buffer yang diperlukan untuk berisi semua data. Jika fungsi gagal dengan kesalahan selain ERROR_INSUFFICIENT_BUFFER, nilai ReturnedLength tidak terdefinisi.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE dan setidaknya satu struktur SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX ditulis ke buffer output.

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

Keterangan

Jika proses 32-bit yang berjalan di bawah WOW64 memanggil fungsi ini pada sistem dengan lebih dari 64 prosesor, beberapa masker afinitas prosesor yang dikembalikan oleh fungsi mungkin salah. Ini karena DWORD urutan tinggi dari struktur KAFFINITY 64-bit yang mewakili semua prosesor 64 "dilipat" ke dalam struktur KAFFINITY 32-bit dalam buffer pemanggil. Akibatnya, masker afinitas untuk prosesor 32 hingga 63 salah direpresentasikan sebagai duplikat masker untuk prosesor 0 hingga 31. Selain itu, masker afinitas untuk prosesor 32 hingga 63 salah diwakili sebagai duplikat masker untuk prosesor 0 hingga 31. Selain itu, jumlah semua nilai ActiveProcessorCount dan MaximumProcessorCount per grup yang dilaporkan dalam struktur PROCESSOR_GROUP_INFO dapat mengecualikan beberapa prosesor logis aktif.

Ketika fungsi ini dipanggil dengan jenis hubungan RelationProcessorCore, fungsi ini mengembalikan struktur PROCESSOR_RELATIONSHIP untuk setiap inti prosesor aktif di setiap grup prosesor dalam sistem. Ini dirancang, karena utas 32-bit yang tidak ditentukan dapat berjalan pada prosesor logis apa pun dalam grup tertentu, termasuk prosesor 32 hingga 63. Penelepon 32-bit dapat menggunakan jumlah total struktur PROCESSOR_RELATIONSHIP untuk menentukan jumlah aktual inti prosesor aktif pada sistem. Namun, afinitas utas 32-bit tidak dapat diatur secara eksplisit ke prosesor logis 32 hingga 63 grup prosesor apa pun.

Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, atur _WIN32_WINNT >= 0x0601. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.

Perilaku dimulai dengan Windows Server 2022 (21H2, build 20348)

Perilaku fungsi NUMA ini dan lainnya telah dimodifikasi untuk mendukung sistem dengan lebih baik dengan simpul yang berisi lebih dari 64 prosesor. Untuk informasi selengkapnya tentang perubahan ini, termasuk informasi tentang mengaktifkan perilaku lama API ini, lihat Dukungan NUMA.

Permintaan untuk RelationNumaNode akan mengembalikan struktur NUMA_NODE_RELATIONSHIP yang hanya berisi afinitas simpul dalam grup utamanya. Nilai GroupCount akan menjadi 1 dan ukuran struktur tetap.

Permintaan untuk RelationNumaNodeEx atau RelationAll akan mengembalikan struktur NUMA_NODE_RELATIONSHIP yang berisi array afinitas untuk simpul di semua grup. GroupCount melaporkan jumlah afinitas dan ukuran strukturnya bervariasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header sysinfoapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX