急:获得机器内存条个数、每条内存的实际容量(windows操作系统)!!!

jky820110 2008-10-30 09:41:07
小弟:现在遇到一个问题,不知道如何编程实现获得机器内存条的个数,以及每条内存的容量等信息。
...全文
241 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cobycarry 2008-12-22
[Quote=引用 7 楼 jky820110 的回复:]
to:yxz_lp

wmi的方式我已经实现了,现在需要用api的方式实现。

非常感谢你的回复。
[/Quote]

可以告诉我吗?谢谢 cobycarry@126.com
  • 打赏
  • 举报
回复
superjky 2008-11-13
1、在NT/2K/XP中,我们还可以通过用户模式访问 \Device\PhysicalMemory 对象,通过系统核心文件NTDLL.DLL中的有关API进行操纵,从而实现物理内存的直接访问。通过解析内存数据表结构可以实现所说的功能。

2、2003 sp1 以后的版本中,可以调用GetSystemFirmwareTable实现。

3、wmi方式获取。可以通过读取ROOT\\WMI命名空间下的,MSSMBios_RawSMBiosTables获得要的数据。

相关SMBIOS的更多信息,用google或baidu查找。

………………微软建议使用wmi方式获取相关信息。
  • 打赏
  • 举报
回复
vcPlayer 2008-10-30
还没遇到过,帮顶。不过驱动层肯定能行。
  • 打赏
  • 举报
回复
jky820110 2008-10-30
to:yxz_lp

wmi的方式我已经实现了,现在需要用api的方式实现。

非常感谢你的回复。
  • 打赏
  • 举报
回复
jky820110 2008-10-30
谢谢4楼的,我正在看这个。
  • 打赏
  • 举报
回复
yxz_lp 2008-10-30
应该可以用WMI实现,具体可参考MSDN的Example: Getting WMI Data From the Local Computer
hres = pSvc->ExecQuery(
bstr_t("WQL"),
bstr_t("SELECT * FROM Win32_MemoryDevice"),//可替换成,如Win32_OperatingSystem你要的
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);

hr = pclsObj->Get(L"Name", 0, &vtProp, 0, 0);//可获得你要的属性,如Caption等
  • 打赏
  • 举报
回复
我最近也在关注这方面的信息,给你个参考http://www.codeproject.com/KB/system/SimpleSetup.aspx
  • 打赏
  • 举报
回复
jky820110 2008-10-30
请高手指点一下。
  • 打赏
  • 举报
回复
兄弟,我现在也在寻类似的信息,给你个参考http://www.codeproject.com/KB/system/SimpleSetup.aspx
  • 打赏
  • 举报
回复
sanshao27 2008-10-30
sf
  • 打赏
  • 举报
回复
jky820110 2008-10-30
没有人会吗? 自己顶一个
  • 打赏
  • 举报
回复
相关推荐
发帖
硬件/系统
加入

2603

社区成员

VC/MFC 硬件/系统
申请成为版主
帖子事件
创建了帖子
2008-10-30 09:41
社区公告
暂无公告