[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Reading BAR0 under WindowsNT

I have written some code that tries to determine the PCI memory 
usage. It does this by going through all the devices and reading each 
BAR, then writing 0xffffffff to each bar and reading it again to 
determine the size. Finally the original BAR value read is written 

I have device drivers for reading and writting the PCI configuration 
registers under both Windows 95 and Windows NT.

It works completely fine under Windows 95. However, under Windows NT 
I get a problem. When the BAR0 of my graphics device is read, it 
returns 0. I know that this should be 0xf0000000 since that is where 
the BIOS puts it. When my code writes back 0 to the BAR Windows NT 
stops refreshing the display correctly.

I've also tried using PCITOOL from


This also reports a 0 for BAR0. When I write back a 0 from this it 
also causes NT to stop refreshing the screen correctly. This makes me 
think it's not a problem with my device driver. So what is causing 
the problem? Also if I write 0xf0000000 (which should be the correct 
address) it still causes NT to stop refreshing correctly.

My graphics card is a Diamond Stealth SE PCI.

Does any one know whats going on?

Thanks for any help offered.


Paul Slade,             PaulS@primary-image.com
Consultant Engineer,
Primary Image Ltd.
Millbank House,
171-185 Ewell Road,
Surbiton, Surrey, KT6 6AX, UK
+44(0)181-339-9669      Fax:  +44(0)181-339-9091