Re: No UINumber being assigned to PCI attached MPS devices in Vista
- From: "Davis Walker [MSFT]" <dwalker@xxxxxxxxxxxxx>
- Date: Wed, 30 May 2007 14:40:01 -0700
Todd and Del,
In both XP and Vista we rely on the platform firmware to supply UI numbers. The difference between XP and Vista is that on Vista we rely on ACPI firmware, where in XP we had real-mode code that scanned low memory for legacy firmware that often contained slot number information. As part of moving the platform forward, we have deprecated the low memory way of doing this. We worked with a number of system builders to make this change, but implementation of the new way hasn't happened on every system.
Todd, it sounds like you are building systems. If you own the BIOS for these systems, you can make a fairly straightforward change to include _SUN in the ACPI namespace. This will bring the UI numbers back.
Del, if your situation is different, I might be able to recommend another way to get what you are after.
Dave
<toddlange1@xxxxxxxxx> wrote in message news:1180538265.629048.139820@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Eliyas,
The UINumber is correctly reported on XP. The same computer, BIOS and
adapters cards are used in both instances but with different boot
drives. The system uses PCI and PCI-X buses.
Should there be a difference between XP and Vista? Seems like a
bug...
We use the UINumber to show the physical position of Adapter cards in
systems we ship out. The user can then distinguish between multiple
Adapter cards installed in the same system, configure the cards,
attach cables, etc..
Needless to say, we will continue to ship our product with XP until we
can get everything working properly and with the same performance.
Thanks for your response,
Todd Lange
On May 29, 8:15 pm, "Eliyas Yakub [MSFT]"
<eliy...@xxxxxxxxxxxxxxxxxxxx> wrote:
What are you trying to do with theUINumber?
According to PCI folks, starting Vista, this information is reported if the
ACPI firmware includes the UI information.
Windows Vista populates the value forUINumberin the DEVICE_CAPABILITIES
structure using one of the two methods based on the device types
For PCI Express devices, a UI number is obtained by reading the Physical
Slot Number value in the Slot Capabilities register. This is only when the
PCI root bus implements an _OSC method and the firmware hands control for
express features to the operating system using this method.
For non-express devices, the PCI driver populates the UI number value from
the parent.
It is perfectly legit for the BIOS/firmware to provide UI number info (using
_SUN method for instance). In this case, the value from this method
over-writes the value populated by the PCI bus driver.
-Eliyas
<toddlan...@xxxxxxxxx> wrote in message
news:1180470255.199597.299690@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> On May 25, 12:13 pm, "Del Fredricks"
> <del.fredri...@xxxxxxxxxxxxxxxxxx> wrote:
>> I have an MPS driver which relied upon theUINumberto identify which
>> attached device was being addressed. Past OS's apparently assigned >> this
>> attribute the PCI slot location of the MPS board. However, it appears >> as
>> though Vista no longer performs this assignment. Is the a different
>> mechanism that can be used which works in 2000, Server 2003, and XP?
> Hi Del,
> I've run across the same problem in Vista. We have an application
> that scans the PCI bus and gets device id and physical slot number
> (UINumber). I have tried three different methods of getting the
>UINumber, but each method has failed.
> I have tried the following:
> 1) Calling IoGetDeviceProperty() with DevicePropertyUINumber as a
> parameter. This fails with error code 0xC0000034
> (STATUS_OBJECT_NAME_NOT_FOUND).
> 2) Using IRP IRP_MN_QUERY_CAPABILITIES. This returns -1 in the
>UINumberitem of the DEVICE_CAPABILITIES structure.
> 3) Calling SetupDiGetDeviceRegistryProperty() with SPDRP_UI_NUMBER (I
> also tried SPDRP_UI_NUMBER_DESC_FORMAT) as an input parameter. This
> function returns FALSE with LastError set to (ERROR_INVALID_DATA).
> There is no mention that this is not supported in Vista in the
> documentation. It appears to be a Vista bug.
> If you find out another method of getting this information, please let
> me know.
> Thanks,
> Todd Lange
.
- Follow-Ups:
- Re: No UINumber being assigned to PCI attached MPS devices in Vista
- From: toddlange1
- Re: No UINumber being assigned to PCI attached MPS devices in Vista
- References:
- Re: No UINumber being assigned to PCI attached MPS devices in Vista
- From: toddlange1
- Re: No UINumber being assigned to PCI attached MPS devices in Vista
- Prev by Date: Re: How to progamatically do a USB "soft eject" like explorer
- Next by Date: Re: How to develop UVC webcam driver on win2k
- Previous by thread: Re: No UINumber being assigned to PCI attached MPS devices in Vista
- Next by thread: Re: No UINumber being assigned to PCI attached MPS devices in Vista
- Index(es):
Relevant Pages
|