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



Dave,

Thank you for your reply.

I sounds like the issue will correct itself with newer motherboards.
The one I'm developing on is probably 2 years old. I'll test our
application with some newer motherboards running Vista.

Thanks,

Todd Lange

On May 30, 4:40 pm, "Davis Walker [MSFT]" <dwal...@xxxxxxxxxxxxx>
wrote:
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

<toddlan...@xxxxxxxxx> wrote in message

news:1180538265.629048.139820@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Eliyas,

TheUINumberis 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 theUINumberto 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



.



Relevant Pages

  • 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)
  • 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: Problem: NIC transmit timeouts
    ... I've seen two causes for this: 1) driver bug, 2) firmware bug. ... Another fun aspect of case 2) is that since its PCI traffic related, ... the MTT register, and the equivalent of the ICH ...
    (Linux-Kernel)
  • 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. ... For PCI Express devices, a UI number is obtained by reading the Physical Slot Number value in the Slot Capabilities register. ...
    (microsoft.public.development.device.drivers)

Quantcast