Re: No UINumber being assigned to PCI attached MPS devices in Vista
- From: "Eliyas Yakub [MSFT]" <eliyasy@xxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 29 May 2007 18:15:47 -0700
What are you trying to do with the UINumber?
According to PCI folks, starting Vista, this information is reported if the ACPI firmware includes the UI information.
Windows Vista populates the value for UINumber in 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
<toddlange1@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 the UINumber to 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
UINumber item 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:
- No UINumber being assigned to PCI attached MPS devices in Vista
- From: Del Fredricks
- Re: No UINumber being assigned to PCI attached MPS devices in Vista
- From: toddlange1
- No UINumber being assigned to PCI attached MPS devices in Vista
- Prev by Date: Re: Help - Calling KdPrint or DbgPrint from linked .asm library
- Next by Date: Re: SMARTCARD_EXTENSION & OsData
- 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
|