Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De affiniteit van een interrupt is de set processors die de interrupt kunnen verwerken. Elk apparaat heeft een affiniteitsbeleid. Het besturingssysteem gebruikt het affiniteitsbeleid om de affiniteit van de interrupts van dat apparaat te berekenen. Het affiniteitsbeleid kan worden opgegeven in het INF-bestand of registerinstellingen van het apparaat. Beheerders kunnen het register gebruiken om een affiniteitsbeleid in te stellen voor een interrupt.
Beheerders kunnen de volgende vermeldingen instellen onder de registersleutel \Interrupt Management\Affinity Policy :
DevicePolicy is een REG_DWORD-waarde waarmee een affiniteitsbeleid wordt opgegeven. Zie IRQ_DEVICE_POLICY voor mogelijke waarden en betekenissen. Microsoft raadt het gebruik van het standaardbeleid aan, indien van toepassing.
AssignmentSetOverride kan een REG_BINARY, REG_DWORD of REG_QWORD waarde zijn waarmee een KAFFINITY-masker wordt opgegeven. Voor REG_BINARY moet de grootte kleiner dan of gelijk zijn aan de KAFFINITY-grootte voor het platform, en de bytevolgorde van de invoer is little-endian. Als DevicePolicy is 0x04 (IrqPolicySpecifiedProcessors), geeft dit masker een set processors aan waaraan de interrupts van het apparaat moeten worden toegewezen.
Het INF-bestand van een stuurprogramma kan standaardinstellingen bieden voor de registerwaarden. Hier volgt een voorbeeld van het instellen van de DevicePolicy-waarde op IrqPolicyOneCloseProcessor in het INF-bestand. Zie INF AddReg Directivevoor meer informatie.
[install-section-name.HW]
AddReg=add-registry-section
[add-registry-section]
HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 2
Het systeem maakt de registerinstellingen beschikbaar voor het stuurprogramma van het apparaat wanneer het de IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP naar het stuurprogramma verzendt. Het besturingssysteem biedt een IO_RESOURCE_DESCRIPTOR structuur voor elke interrupt waarbij het type lid is ingesteld op CmResourceTypeInterrupt. Voor een berichtsignaalonderbrekeling wordt de CM_RESOURCE_INTERRUPT_MESSAGE bit van het lid Vlaggen ingesteld; anders is het duidelijk. Het u.Interrupt-lid beschrijft de instellingen voor de interrupt.
De volgende tabel geeft de correspondentie tussen registerinstellingen en leden van u.Interrupt.
| Registerwaarde | Lid van u.Interrupt |
|---|---|
| DevicePolicy | AffinityPolicy |
| AssignmentSetOverride | TargetedProcessors |
Over KAFFINITY
Het KAFFINITY-type is een affiniteitsmasker dat een set logische processors in een groep vertegenwoordigt.
typedef ULONG_PTR KAFFINITY;
Het type KAFFINITY is 32 bits op een 32-bits versie van Windows en is 64 bits op een 64-bits versie van Windows.
Als een groep n logische processors bevat, worden de processors genummerd van 0 tot n-1. Processornummer i in de groep wordt vertegenwoordigd door bit i in het affiniteitsmasker, waarbij i zich in het bereik van 0 tot n-1 bevindt. Affiniteitsmasker bits die niet overeenkomen met logische processors zijn altijd nul.
Als een KAFFINITY-waarde bijvoorbeeld de actieve processors in een groep identificeert, is de masker-bit voor een processor er een als de processor actief is en nul is als de processor niet actief is.
Het aantal bits in het affiniteitsmasker bepaalt het maximum aantal logische processors in een groep. Voor een 64-bits versie van Windows is het maximum aantal processors per groep 64. Voor een 32-bits versie van Windows is het maximum aantal processors per groep 32. Roep de KeQueryMaximumProcessorCountEx-routine aan om het maximum aantal processors per groep te verkrijgen. Dit aantal is afhankelijk van de hardwareconfiguratie van het multiprocessorsysteem, maar kan nooit de vaste limieten van 64 processoren en 32 processoren overschrijden die zijn ingesteld door respectievelijk de 64-bits en 32-bits versies van Windows.
De GROUP_AFFINITY structuur bevat een affiniteitsmasker en een groepsnummer. Het groepsnummer identificeert de groep waarop het affiniteitsmasker van toepassing is.
Kernelroutines die gebruikmaken van het type KAFFINITY zijn IoConnectInterrupt, KeQueryActiveProcessorCount en KeQueryActiveProcessors.