Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Afinitas interupsi adalah kumpulan prosesor yang dapat menangani interupsi. Setiap perangkat memiliki kebijakan afinitas. Sistem operasi menggunakan kebijakan afinitas untuk menghitung afinitas untuk interupsi perangkat tersebut. Kebijakan afinitas dapat ditentukan dalam file INF perangkat atau pengaturan registri. Administrator dapat menggunakan registri untuk mengatur kebijakan afinitas untuk interupsi.
Administrator dapat mengatur entri berikut di bawah kunci registri \Interuppt Management\Affinity Policy :
DevicePolicy adalah nilai REG_DWORD yang menentukan kebijakan afinitas. Untuk kemungkinan nilai dan maknanya, lihat IRQ_DEVICE_POLICY. Microsoft merekomendasikan penggunaan kebijakan default jika berlaku.
AssignmentSetOverride dapat berupa nilai REG_BINARY, REG_DWORD, atau REG_QWORD yang menentukan masker KAFFINITY . Untuk REG_BINARY, ukuran harus kurang dari atau sama dengan ukuran KAFFINITY untuk platform tersebut, dan urutan byte untuk input adalah "little endian". Jika DevicePolicy adalah 0x04 (IrqPolicySpecifiedProcessors), maka masker ini menentukan serangkaian prosesor untuk menetapkan interupsi pada perangkat.
File INF driver dapat menyediakan pengaturan default untuk nilai registri. Berikut adalah contoh cara mengatur nilai DevicePolicy ke IrqPolicyOneCloseProcessor dalam file INF. Untuk informasi selengkapnya, lihat Direktif AddReg INF.
[install-section-name.HW]
AddReg=add-registry-section
[add-registry-section]
HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 2
Sistem membuat pengaturan registri tersedia untuk driver perangkat ketika mengirimkan IRP IRP_MN_FILTER_RESOURCE_REQUIREMENTS ke driver. Sistem operasi menyediakan struktur IO_RESOURCE_DESCRIPTOR untuk setiap interupsi dengan anggota Type diatur untuk CmResourceTypeInterrupt. Untuk interupsi yang disinyalir pesan, bit CM_RESOURCE_INTERRUPT_MESSAGE anggota Bendera diatur; jika tidak, itu jelas. Anggota u.Interrupt menjelaskan pengaturan untuk interupsi.
Tabel berikut memberikan korespondensi antara pengaturan registri dan anggota u.Interrupt.
Nilai Registri | Anggota dari u.Interrupt |
---|---|
DevicePolicy | AffinityPolicy |
AssignmentSetOverride | TargetedProcessors |
Tentang KAFFINITY
Jenis KAFFINITY adalah masker afinitas yang mewakili sekumpulan prosesor logis dalam grup.
typedef ULONG_PTR KAFFINITY;
Jenis KAFFINITY adalah 32 bit pada Windows versi 32-bit dan 64 bit pada Windows versi 64-bit.
Jika grup berisi n prosesor logis, prosesor diberi nomor dari 0 hingga n-1. Nomor prosesor i dalam grup diwakili oleh bit i dalam masker afinitas, di mana i berada dalam rentang 0 hingga n-1. Bit masker afinitas yang tidak sesuai dengan prosesor logis selalu nol.
Misalnya, jika nilai KAFFINITY mengidentifikasi prosesor aktif dalam grup, bit mask untuk prosesor adalah satu jika prosesor aktif, dan nol jika prosesor tidak aktif.
Jumlah bit dalam masker afinitas menentukan jumlah maksimum prosesor logis dalam grup. Untuk Windows versi 64-bit, jumlah maksimum prosesor per grup adalah 64. Untuk Windows versi 32-bit, jumlah maksimum prosesor per grup adalah 32. Panggil rutinitas KeQueryMaximumProcessorCountEx untuk mendapatkan jumlah maksimum prosesor per grup. Jumlah ini tergantung pada konfigurasi perangkat keras sistem multiprosesor, tetapi tidak pernah dapat melebihi batas prosesor 64 tetap dan prosesor 32 yang ditetapkan oleh Windows versi 64-bit dan 32-bit, masing-masing.
Struktur GROUP_AFFINITY berisi masker afinitas dan nomor grup. Nomor grup mengidentifikasi grup tempat masker afinitas diterapkan.
Rutinitas kernel yang menggunakan jenis KAFFINITY termasuk IoConnectInterrupt, KeQueryActiveProcessorCount, dan KeQueryActiveProcessors.