Kesme ilişkilendirmesi

Kesmenin affinitesi, kesmeye hizmet edebilecek işlemci kümesidir. Her cihazın bir benşim ilkesi vardır. İşletim sistemi, bu cihazın kesintileri için yakınlığı hesaplamak amacıyla yakınlık politikasını kullanır. Benzite ilkesi, cihazın INF dosyasında veya kayıt defteri ayarlarında belirtilebilir. Yöneticiler, kayıt defterini kullanarak kesme için bir benşim ilkesi ayarlayabilir.

Yöneticiler \Kesme Yönetimi\Benşim İlkesi kayıt defteri anahtarı altında aşağıdaki girdileri ayarlayabilir:

  • DevicePolicy , benşim ilkesi belirten REG_DWORD bir değerdir. Olası değerler ve anlamları için bkz. IRQ_DEVICE_POLICY. Microsoft, varsa varsayılan ilkeyi kullanmanızı önerir.

  • AssignmentSetOverride , KAFFINITY maskesi belirten bir REG_BINARY, REG_DWORD veya REG_QWORD değeri olabilir. REG_BINARY için boyut, platformun KAFFINITY boyutundan küçük veya ona eşit olmalıdır ve giriş bayt sıralaması küçük endian şeklindedir. DevicePolicy 0x04 (IrqPolicySpecifiedProcessors) ise, bu maske cihazın kesmelerini belirli bir işlemci kümesine atamak için kullanılır.

Bir sürücünün INF dosyası, kayıt defteri değerleri için varsayılan ayarları sağlayabilir. İşte, INF dosyasında DevicePolicy değerini IrqPolicyOneCloseProcessor olarak ayarlama örneği. Daha fazla bilgi için bkz. INF AddReg Yönergesi.

[install-section-name.HW]
AddReg=add-registry-section 

[add-registry-section]
HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 2

Sistem, IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP'yi sürücüye gönderdiğinde kayıt defteri ayarlarını cihazın sürücüsünde kullanılabilir hale getirir. İşletim sistemi, Type üyesi CmResourceTypeInterrupt olarak ayarlanmış olan her kesme için bir IO_RESOURCE_DESCRIPTOR yapısı sağlar. İleti sinyalli kesme için Flags üyesinin CM_RESOURCE_INTERRUPT_MESSAGE biti ayarlanır; aksi takdirde, açıktır. u.Interrupt üyesi kesme ayarlarını açıklar.

Aşağıdaki tabloda kayıt defteri ayarları ile u.Interrupt üyeleri arasındaki yazışmalar yer alır.

Kayıt Defteri Değeri u.Interrupt Üyesi
DevicePolicy AffinityPolicy
AssignmentSetOverride TargetedProcessors

KAFFINITY Hakkında

KAFFINITY türü, bir gruptaki bir dizi mantıksal işlemciyi temsil eden bir benşim maskesidir.

typedef ULONG_PTR  KAFFINITY;

KAFFINITY türü, Windows'un 32 bit sürümünde 32 bit ve Windows'un 64 bit sürümünde 64 bittir.

Bir grup n mantıksal işlemci içeriyorsa, işlemciler 0 ile n-1 arasında numaralandırılır. Gruptaki i işlemci numarası bendim maskesindeki bit i ile temsil edilir; burada i 0 ile n-1 aralığındadır. Mantıksal işlemcilere karşılık gelmeyen benzeşim maskesi bitleri her zaman sıfırdır.

Örneğin, bir KAFFINITY değeri bir gruptaki etkin işlemcileri tanımlarsa, işlemci etkinse bir işlemcinin maske biti bir, işlemci etkin değilse sıfır olur.

Benşim maskesindeki bit sayısı, bir gruptaki en fazla mantıksal işlemci sayısını belirler. Windows'un 64 bit sürümü için grup başına işlemci sayısı üst sınırı 64'tür. Windows'un 32 bit sürümü için grup başına işlemci sayısı üst sınırı 32'dir. Grup başına en fazla işlemci sayısını elde etmek için KeQueryMaximumProcessorCountEx yordamını çağırın. Bu sayı, çok işlemcili sistemin donanım yapılandırmasına bağlıdır, ancak sırasıyla Windows'un 64 bit ve 32 bit sürümleri tarafından ayarlanan sabit 64 işlemci ve 32 işlemci sınırlarını asla aşamaz.

GROUP_AFFINITY yapısı benşim maskesi ve grup numarası içerir. Grup numarası benşim maskesinin uygulandığı grubu tanımlar.

KAFFINITY türünü kullanan çekirdek yordamları IoConnectInterrupt, KeQueryActiveProcessorCount ve KeQueryActiveProcessors'dır.