内核下获得系统版本

Troy0523 2008-03-12 12:44:34
怎么在内核下获得系统版本。。比如 知道 现在的系统是 2000 还是 2000server 还是XP 还是2003
我想过读取注册表 但是我怕万一人家把注册表里面的系统版本改了。读出来的就是错误的吧
...全文
42 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
等待牛人来答.
cnzdgs 2008-03-12
  • 打赏
  • 举报
回复
RtlGetVersion
taianmonkey 2008-03-12
  • 打赏
  • 举报
回复
获取的系统目录也只能是类似于\SystemRoot\windows\system32或\Device\HarddiskVolume\windows\system32的路径。因为windows内核都是使用symbolic name
Troy0523 2008-03-12
  • 打赏
  • 举报
回复
那怎么获得系统目录呢?
jingzhongrong 2008-03-12
  • 打赏
  • 举报
回复
ULONG GetSystemVersion()
{
ULONG major;
ULONG minor;
ULONG ret;
//
PsGetVersion(&major,&minor,NULL,NULL);

// Major = 4: Windows NT 4.0, Windows Me, Windows 98 or Windows 95
// Major = 5: Windows Server 2003, Windows XP or Windows 2000
// Minor = 0: Windows 2000, Windows NT 4.0 or Windows 95
// Minor = 1: Windows XP
// Minor = 2: Windows Server 2003

if(major == 5)
{
if(minor == 2)
ret = SYSTEM_VERSION_WIN2K3;
else if(minor == 1)
ret = SYSTEM_VERSION_WINXP;
else
...
}
else
ret = SYSTEM_VERSION_UNKNOWN;

return ret;
}

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧