Fungsi KeGetProcessorNumberFromIndex (ntifs.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 Windows 7
Target Platform Universal
Header ntifs.h (termasuk Ntddk.h, Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun

Lihat juga

KeGetProcessorIndexFromNumber

KeQueryActiveProcessorCountEx

PROCESSOR_NUMBER