Changing MSI Interrupt Affinity

Hi

I have multiple MSI vectors. Is it possible to change the affinity of all these?

  • In EvtDeviceF1ilterRemoveResourceRequirements, do I have to do anything?
    Can/Should I remove any CmResourceTypeInterrupt that is not MSI, not IO_RESOURCE_PREFERRED, not CmResourceShareDeviceExclusive?

  • Where do I change the PIO_RESOURCE_DESCRIPTOR.AffinityPolicy/TargetedProcessors? in Add or Remove?
    I would like to change above to IrqPolicySpecifiedProcessors and (KAFFINITY) 1 << x;

  • Then do I need to do anything in EvtDeviceRemoveAddedResources()?

  • In INF I added DevicePolicy/AssignmentSetOverride, but did not have any effect
    HKR, Interrupt Management, , 0x00000010
    HKR, Interrupt Management\MessageSignaledInterruptProperties,0x00000010
    HKR, Interrupt Management\MessageSignaledInterruptProperties,MSISupported,%RegTypeDW%,1
    HKR, Interrupt Management\MessageSignaledInterruptProperties,MessageNumberLimit,%RegTypeDW%,2 ; available 8
    HKR, “Interrupt Management\Affinity Policy”, DevicePolicy, 0x00010001, 4 ; AffinityPolicy = IrqPolicySpecifiedProcessors
    HKR, “Interrupt Management\Affinity Policy”, AssignmentSetOverride, 0x00010001, 2 ; TargetedProcessors = 2

  • Also is the possible to increase/decrease the MSI vectors (i.e MultipleMsgEnable, bounded by MultipleMsgCapable limit). If so in which function it should be done?

Thanks