PCI Bar address issue on Vista

I am developing a driver for a multifunction PCI device and I am observing some strange behavior. I am using Vista on a ATI/AMD chipset motherboard

  1. The Base/Bar address of function 0 changes after sleep. The address seen using a VMETRO PCI bus analyzer is different to what is seen in the OS memory allocation in Windows device manager.
  2. the Power state register in PCI conguration still says D3 hot instead of D0.

3)System hangs if I run PCI tree, PCIScope or Scan bus in VMETRO after sleep, even if our device not present in system.

4)Problem disappears if we have PCI analyzer using external power supply. At this time all PCI configuration register and function 0 bar address retains their value.

5)http://support.microsoft.com/kb/928135 <— didn’t help

It appears BIOS is not restoring them after coming back from sleep. Any thoughts? Any ideas to point towards faulty HW.