Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Changing MSI Interrupt Affinity

msrmsr Member Posts: 342


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 CmResourceTypeInterruptthat 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 MultipleMsgCapablelimit). If so in which function it should be done?


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Writing WDF Drivers 21 Oct 2019 OSR Seminar Space & ONLINE
Internals & Software Drivers 18 Nov 2019 Dulles, VA
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 27 Apr 2020 OSR Seminar Space & ONLINE