Jump to content
AIDA64 Discussion Forum
Crashtest

fixed: AIDA64 won't detect all PCI Devices - most missing

Recommended Posts

all tested AIDA64 versions are unable to detect all PCI devices on my HP xw9400 based systems:

 

AIDA found only device on PCI bus 0 and 1 - rest (on bus 24,43,44,64,69,70,71,72,107) are missing; because of that, AIDA64 wont display any infos about installed GPU etc.

 

Systems:

HP xw9400 Board (OEM Version of Tyan S2915e)

Dual Opteron 2382 and Dual Opteron 2427

Windows 7 sp1 x64 and Server 2008r2 x64 sp1
 

 

PCI Device List AIDA64 vs SIV

aidabug_pcidevs_comp_l0oyo.png

 

 

PCI Device List AIDA64 vs Windows Device Manager

aidabug_pcidevs_comp_vuun5.png

 

 

 

I added:

- ACPIDUMP

- PCIDUMP

- DEVDUMP

and SIV-Dumps

 

 

well if I boot Windows PE based on NT 5.1 or 5.2 AIDA64 will report all devices !?

acpidump.txt

devdump.txt

pcidump.txt

SIV_ODIN.txt

Share this post


Link to post
Share on other sites

Thank you for the dumps. I suppose the issue may be the fact that your system has multiple PCI bus segments. We'll have to come up with a workaround for such situations. If possible, please export the following Registry path out to a .REG file:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI

Rename the .REG file to .TXT, and attach it to a post.

 

well if I boot Windows PE based on NT 5.1 or 5.2 AIDA64 will report all devices !?

Maybe, but I'm not sure. It may worth a try. But please do the Registry export under Windows 7 or Windows Server 2008 R2.

Thanks,

Fiery

Share this post


Link to post
Share on other sites

Thank you for the dumps. I suppose the issue may be the fact that your system has multiple PCI bus segments. We'll have to come up with a workaround for such situations. If possible, please export the following Registry path out to a .REG file:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI

Rename the .REG file to .TXT, and attach it to a post.

 

Maybe, but I'm not sure. It may worth a try. But please do the Registry export under Windows 7 or Windows Server 2008 R2.

Thanks,

Fiery

 

Here are the Registry Exports from both systems

reg_thor.txt

reg_odin.txt

Share this post


Link to post
Share on other sites

So back to business:

 

I tested old (4.x) and current (5.0 final not current beta) AIDA64 versions on Windows NT 5.2 (PE 2005)  - AIDA64 found all !!!! PCI devices on both segments !

Reboot to Windows NT 6.0 (PE 2007) - only devices on bus 0 & bus 1

Reboot to Windows NT 6.1 (PE 2009) - only devices on bus 0 & bus 1

Reboot to Windows NT 6.4 (PE 2015 - current internal beta) - only devices on bus 0 & 1

againt test with older Windows, Windows NT 5.1 (PE 2004) - AIDA, both 4.7 and 5.0, found all devices

 

Result:

AIDA64 could find all devices as long as Windows is NT 5.x and not NT6.x

 

So it looks like a OSrelated AIDA64 Bug

 

(I will upload AIDA64 dumps from NT5x soon) 

Share this post


Link to post
Share on other sites

Have you tried the new AIDA64 beta I've linked above? That should provide an OS independent fix for your systems.

Share this post


Link to post
Share on other sites

here are the dumps

 

ps my simple delphi tool detect all devices even on Windows 10 using winring0 driver

simple

for bus:=0 to 255 do

for dev:=0 to 31 do

for func:=0 to 7 do

if ReadPCIConfigDword(Mix(bus,dev,func), 0) <>$ffff // checkin VendorID

begin

...

end;

 

I will check the "fix" later - but why enum PCIdevices by registry if theres is a working (NT5.x) enum by devicedriver ?

AIDA_PCI_BUG_NT52_DEVICEDUMP.txt

AIDA_PCI_BUG_NT52_PCIDUMP.txt

AIDA_PCI_BUG_NT52_REPORT.txt

Share this post


Link to post
Share on other sites

By default AIDA64 scans only the first 8 PCI buses, for safety reasons. Many older systems could go wild if you try scannig 256 PCI buses. AIDA64 uses additional information from the Registry to find out whether the actual system may have more than 8 PCI buses with devices.

BTW, the code snippet you've quoted there has some other issues too ;) You're not supposed to scan all PCI functions of a device by default.

Share this post


Link to post
Share on other sites

Only 1 Question left:

 

Why is it working on NT 5.x but not on NT 6.x ?

 

 

AIDA64 4.7 on NT 6.1 and my small not finished delphi tool:

aida64_4.70.3203vsmytkpkvn.png

 

 

and the current Beta :

 

aida64_5.00.3323vsmytenu3o.png

 

so its working now ....

Share this post


Link to post
Share on other sites

I suppose PCI bus segmenting has been introduced in the v6.0 NT kernel with Windows Vista. AIDA64 wasn't prepared to handle PCI bus segments before, but the latest beta fixed that up.

Thank you for the feedback, I'm glad it works fine now :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...