Fungsi KeGetProcessorNumberFromIndex (wdm.h)
Rutinitas KeGetProcessorNumberFromIndex mengonversi indeks prosesor di seluruh sistem menjadi nomor grup dan nomor prosesor relatif grup.
Sintaks
NTSTATUS KeGetProcessorNumberFromIndex(
[in] ULONG ProcIndex,
[out] PPROCESSOR_NUMBER ProcNumber
);
Parameter
[in] ProcIndex
Indeks prosesor di seluruh sistem. Jika sistem multiprosesor berisi total n prosesor logis, indeks prosesor yang valid berkisar dari 0 hingga n-1.
[out] ProcNumber
Penunjuk ke struktur PROCESSOR_NUMBER yang dialokasikan penelepon tempat rutin menulis nomor grup dan nomor prosesor relatif grup dari prosesor yang diidentifikasi oleh ProcIndex.
Nilai kembali
KeGetProcessorNumberFromIndex mengembalikan STATUS_SUCCESS jika panggilan berhasil. Kemungkinan nilai pengembalian kesalahan meliputi yang berikut ini:
Menampilkan kode | Deskripsi |
---|---|
STATUS_INVALID_PARAMETER | Nilai parameter ProcIndex bukan indeks prosesor yang valid. |
Keterangan
Rutinitas ini diterima sebagai input indeks prosesor yang mengidentifikasi prosesor di seluruh sistem multiprosesor. Nilai output adalah struktur PROCESSOR_NUMBER yang mengidentifikasi prosesor berdasarkan nomor grupnya dan nomor prosesornya dalam grup.
Misalnya, jika sistem multiprosesor berisi dua grup, dan setiap grup berisi 64 prosesor logis, nomor prosesor di setiap grup berkisar dari 0 hingga 63, tetapi indeks prosesor di seluruh sistem berkisar dari 0 hingga 127.
Untuk mendapatkan jumlah total prosesor logis aktif dalam sistem, panggil rutinitas KeQueryActiveProcessorCountEx .
Rutinitas KeGetProcessorIndexFromNumber mengonversi nomor grup dan nomor prosesor relatif grup menjadi indeks prosesor di seluruh sistem.
Contoh
Contoh kode berikut menggunakan rutinitas KeQueryActiveProcessorCountEx dan KeGetProcessorNumberFromIndex untuk menghitung semua prosesor logis aktif dalam sistem:
ULONG Count;
ULONG ProcIndex;
PROCESSOR_NUMBER ProcNumber;
Count = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS);
for (ProcIndex = 0; ProcIndex < Count; ProcIndex += 1)
{
KeGetProcessorNumberFromIndex(ProcIndex, &ProcNumber);
// Do something with the contents of ProcNumber.
...
}
Nilai konstanta ALL_PROCESSOR_GROUPS didefinisikan dalam Winnt.h dan Ntdef.h.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows 7 dan versi Windows yang lebih baru. |
Target Platform | Universal |
Header | wdm.h (termasuk Ntddk.h, Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Tingkat apa pun |