I have a bad subclass ID so I am trying to add my memory resources via EvtDeviceFilterAddResourceRequirements. I am using a different board to learn how the resource lists are setup.
The chip requests three memory regions. In EvtDeviceFilterAddResourceRequirements I access my IO_RESOURCE_DESCRIPTOR and see 6 sections for memory. 3 correspond to what my board actually gets as seen in the device manager. The other three seem to be the same size but the alignment, minaddress, and maxaddress differ. What is this about? Do I need to add similar sections to add resources(2 sections per memory region)? The CM_PARTIAL_RESOURCE_DESCRIPTOR has only the three memory regions. I’m still not sure of the difference between resource lists, resoource requiremnt lists, and logical configurations. Can anyone shed some light on how these lists work and why I see extra regions?
The PCI driver is setting up three memory requests, each with an alternate.
Use
!ioreslist
or
!devnode <0 or yourdevnode> 7
to dump it out in a pretty way from the debugger.
The first one of each pair will be a claim for exactly the range that the
BIOS set up for the device. The second, the alternate, will be a more
general claim for any memory range that is the right length. The PnP
manager will then assign the address that the BIOS chose, if possible, and
something else if that isn’t possible.
- Jake Oshins
Windows Kernel Team
wrote in message news:xxxxx@ntdev…
>I have a bad subclass ID so I am trying to add my memory resources via
>EvtDeviceFilterAddResourceRequirements. I am using a different board to
>learn how the resource lists are setup.
>
> The chip requests three memory regions. In
> EvtDeviceFilterAddResourceRequirements I access my IO_RESOURCE_DESCRIPTOR
> and see 6 sections for memory. 3 correspond to what my board actually
> gets as seen in the device manager. The other three seem to be the same
> size but the alignment, minaddress, and maxaddress differ. What is this
> about? Do I need to add similar sections to add resources(2 sections per
> memory region)? The CM_PARTIAL_RESOURCE_DESCRIPTOR has only the three
> memory regions. I’m still not sure of the difference between resource
> lists, resoource requiremnt lists, and logical configurations. Can anyone
> shed some light on how these lists work and why I see extra regions?
>