Re: No UINumber being assigned to PCI attached MPS devices in Vista



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


.



Relevant Pages

  • Re: No UINumber being assigned to PCI attached MPS devices in Vista
    ... The UINumber is correctly reported on XP. ... The system uses PCI and PCI-X buses. ... Should there be a difference between XP and Vista? ... Adapter cards installed in the same system, configure the cards, ...
    (microsoft.public.development.device.drivers)
  • Re: 2nd tuner
    ... Then look for a PCI-e tuner that is Vista compatible. ... Per user Group Policy Restrictions for XP Home and XP Pro ... I have three PCI slots. ...
    (microsoft.public.windows.mediacenter)
  • Re: 2nd tuner
    ... There are Vista specific drivers for Media Center and the 150. ... MS-MVP Windows Media Center\Windows Powered Smart ... can alwys take the tuner back if it dosen,t work. ... I have three PCI slots. ...
    (microsoft.public.windows.mediacenter)
  • Re: No UINumber being assigned to PCI attached MPS devices in Vista
    ... I sounds like the issue will correct itself with newer motherboards. ... In both XP and Vista we rely on the platform firmware to supply UI numbers. ... The system uses PCI and PCI-X buses. ...
    (microsoft.public.development.device.drivers)
  • Re: No UINumber being assigned to PCI attached MPS devices in Vista
    ... 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. ... Todd, it sounds like you are building systems. ... The system uses PCI and PCI-X buses. ...
    (microsoft.public.development.device.drivers)

Quantcast