Using WMI Class calls can we get SMBus info?

WMI seems to support everything but probing the ICH/PCH as per my understanding. Can some kind soul prove me wrong and tell me how can I dig out the following info for SMBUS from WMI? I want the VID, DID, BDF info and then dump extended space till offset 0x2F more is also fine. What I would really like to do is search and locate all SMBus controller in the system, Thanks

DEV_ADD: S0:B0:D31:F3 0xA00FB000
VID_DID: 80863a30, Intel Corporation, 82801JI (ICH10 Family) SMBus Controller
SVID_DID: 8086 Intel Corporation, 34e2
CLASS: SERIAL_BUS_CTLR, SMBus
CAP_REG: PCI
S B D F O HA LA Word3 Word2 Word1 Word0
pci(00,00,31,03,00,0f:00) = 00000000:0c050000:02800003:3a308086
pci(00,00,31,03,04,1f:10) = 00000000:00000000:00000000:d1f26004
pci(00,00,31,03,08,2f:20) = 34e28086:00000000:00000000:00005001

Just to clarify, the cut and paste info i have given is taken out of the PCI bus scan. I dont want to use the PCI scanning tool want to use WMI interface to search and locate all the SMBus controller and then dig up information on them. Why would they not support SMBus is the mystery to me. I have the option to use WMI as a script or programmatically I would prefer programmatic interface.

xxxxx@gmail.com wrote:

Just to clarify, the cut and paste info i have given is taken out of the PCI bus scan. I dont want to use the PCI scanning tool want to use WMI interface to search and locate all the SMBus controller and then dig up information on them. Why would they not support SMBus is the mystery to me.

Well, let’s back up a moment. The way you asked this question implied
that you wanted to access SMBus information, but that’s not really
true. Your question has nothing whatsoever to do with SMBus. What you
want is PCI information – specifically, the PCI configuration space for
one particular PCI device.

Unfortunately, WMI does not provide that. You need a driver. You can
get SOME information by trolling through Win32_Bus and Win32_DeviceBus
and Win32_PnpEntity, but not the configuration space.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Oops sorry and pardon my wrong usage of English. Let me put my question in total different way. Login as admin and run “wmic” on Windows 7. You will get a prompt “wmic:root\cli>” type /? then it will spits out what all info it can display. Here is a partial list. Or go to URL: http://msdn.microsoft.com/en-us/library/aa389273(v=vs.85).aspx. This lists the WMI supported CLASS’s one can use. There is everything under the sun but SMBus. So I have ended up writing my own driver scanning for the controller from there I get the SMBase which 0x5000 at offset 0x20 and using that and IOPORT RW/WR I am accessing the SMBUS. My point is not to use the PCI Scan tool to detect the SMBUS Controller but to use WMI.

BASEBOARD - Base board (also known as a motherboard or system board) management.
BIOS - Basic input/output services (BIOS) management.
BOOTCONFIG - Boot configuration management.
CDROM - CD-ROM management.
COMPUTERSYSTEM - Computer system management.
CPU - CPU management.
CSPRODUCT - Computer system product information from SMBIOS.
DATAFILE - DataFile Management.
DCOMAPP - DCOM Application management.
DESKTOP - User’s Desktop management.
DESKTOPMONITOR - Desktop Monitor management.
DEVICEMEMORYADDRESS - Device memory addresses management.
DISKDRIVE - Physical disk drive management.
DISKQUOTA - Disk space usage for NTFS volumes.
DMACHANNEL - Direct memory access (DMA) channel management.
ENVIRONMENT - System environment settings management.
FSDIR - Filesystem directory entry management.
GROUP - Group account management.
IDECONTROLLER - IDE Controller management.
IRQ - Interrupt request line (IRQ) management.
JOB - Provides access to the jobs scheduled using the schedule service.
LOADORDER - Management of system services that define execution dependencies.
LOGICALDISK - Local storage device management.
LOGON - LOGON Sessions.
MEMCACHE - Cache memory management.
MEMORYCHIP - Memory chip information.
MEMPHYSICAL - Computer system’s physical memory management.

My hope is if WMI supported SMBUS then I can skip the pci scan, IO RW/WR all and just ask WMI supported call to list me all the devices hanging of the SMBus. A 2-3 line code or a single command line will replace tons of driver code. I feel the SMBUS info is hidden in one of the WMI CLASS’s and I am missing out on it. My hope is someone who has been up this path will guide me to the right command or CLASS to use.

xxxxx@gmail.com wrote:

Oops sorry and pardon my wrong usage of English. Let me put my question in total different way. Login as admin and run “wmic” on Windows 7. You will get a prompt “wmic:root\cli>” type /? then it will spits out what all info it can display.

Well, hang on a minute. Those are only the wmic shortcuts – short
names that expand into full WMI queries, specifically created for the
wmic tool. “wmic bios,” for example, is short for “Select * from
Win32_BIOS”. There are quite thousands and thousands of WMI namespaces
that aren’t in this list of shortcuts.

However, as I said, I don’t think any of those thousands of namespaces
will show you PCI configuration space.

So I have ended up writing my own driver scanning for the controller from there I get the SMBase which 0x5000 at offset 0x20 and using that and IOPORT RW/WR I am accessing the SMBUS. My point is not to use the PCI Scan tool to detect the SMBUS Controller but to use WMI.

And here is your next problem. You aren’t allowed to arbitrarily access
the SMBus I/O ports. Those ports belong to the ACPI driver. You don’t
know what the driver might be doing at any given time – they aren’t
interlocked. The “correct” mechanism is to make an ACPI method call and
let the BIOS do your interaction.

If you are doing port I/O, then you obviously already have a driver, right?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Yes you are right I had not thought of the “locking” part of it. Ok I will investigate the ACPI method and continue to use my existing IO port access method which actually arbitrates and will never thrash the system. Just did not want to give up on using WMI if it was there and I was not aware of it. Thanks a lot Tim for the good advice. This case can be considered closed.