Prev: snetcfg hang.
Next: already has a body
From: Maxim S. Shatskih on 20 Jan 2007 16:48 > If this is the case, how can bus adapter or controller enumerate > devices that are currently present on its bus, apart from submitting a > request to PCI and providing bus number with it ??? PCI.SYS (maybe with some help of ACPI and HAL - I have heard that 0xcf8/0xcfc are now legacy, and call to some ACPI method is not) is the only agent who touches PCI config space. Any more high-level PCI slot info in the OS is got from PCI.SYS - using IRP_MN_QUERY_DEVICE_RELATIONS or such. BAR settings are decided in arbiter code in PnP proper (possibly with help from custom arbiters like MF.SYS) - and the decision is delivered down to the hardware in MN_START_DEVICE to the devnode with PCI.SYS's PDO at bottom. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim(a)storagecraft.com http://www.storagecraft.com
From: Maxim S. Shatskih on 20 Jan 2007 16:50
> this data they can use the various user space SetupAPI, but touching the > CF8/CFC ports will cause crashes. Maybe using obsolete HalGetBusData - which is an API for 0xcf8/0xcfc - is an idea. I'm afraid, though, that calls to this function will disable power management on the machine - since this is how the OS detect the "legacy hardware driver" for power management disable. I'm not sure, though, whether HalGetBusData is enough, or HalAssignSlotResources is needed for this. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim(a)storagecraft.com http://www.storagecraft.com |