Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1455069
  • 博文数量: 596
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 15:50
个人简介

在线笔记

文章分类

全部博文(596)

文章存档

2016年(1)

2015年(104)

2014年(228)

2013年(226)

2012年(26)

2011年(11)

分类: Windows平台

2014-05-29 16:30:43

驱动获取系统版本信息有2个函数,分别是PsGetVersion RtlGetVersion
PsGetVersion在XP后已经不建议使用,

  1. /*Returns the windows version we're running on*/
  2. vboxWinVersion_t VBoxQueryWinVersion()
  3. {
  4.     ULONG major, minor, build;
  5.     BOOLEAN checkedBuild;
  6.     static vboxWinVersion_t s_WinVersion = UNKNOWN_WINVERSION;

  7.     if (s_WinVersion != UNKNOWN_WINVERSION)
  8.         return s_WinVersion;

  9.     checkedBuild = PsGetVersion(&major, &minor, &build, NULL);
  10.     LOG(("running on version %d.%d, build %d(checked=%d)", major, minor, build, (int)checkedBuild));

  11.     if(major == 6)
  12.     {
  13.         if (minor == 3)
  14.             s_WinVersion = WIN81;
  15.         else if (minor == 2)
  16.             s_WinVersion = WIN8;
  17.         else if (minor == 1)
  18.             s_WinVersion = WIN7;
  19.         else if (minor == 0)
  20.             s_WinVersion = WINVISTA; /* Or Windows Server 2008. */
  21.     }
  22.     else if (major == 5)
  23.         s_WinVersion = (minor>=1) ? WINXP:WIN2K;
  24.     else if (major == 4)
  25.         s_WinVersion = WINNT4;
  26.     else
  27.         WARN(("NT4 required!"));
  28.     return s_WinVersion;
  29. }



阅读(4978) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~