Windows内核版本及获取函数

做Windows驱动,经常需要获取内核版本,本人现把常用的操作系统的内核版本整理一下:

Windows10内核版本

序号 内核版本
1 10.0.10240
2 10.0.10586
3 10.0.14393
4 10.0.15063
5 10.0.16299
6 10.0.17134
7 10.0.17713
8 10.0.17763
9 10.0.18363

Windows8内核版本

序号 内核版本
1 6.2.9200

Windows7内核版本

序号 内核版本
1 6.1.7600
2 6.2.7601

Windows Vista内核版本

windows Vista的内核版一为6.0

Windows Server2003

WindowsServer2003内核版本为5.2

Windows XP内核版本

Windows XP内核版本为5.1

Windows 2000 内核版本

Windows 2000 内核版本为 5.0


Windows内核版本的获取

Windows内核版本获取可通过函数 IoIsWdmVersionAvailable 和RtlGetVersion获取,而RtlGetVersion获取的更加全面,并且从Windows2000已经开始支持了。

    RTL_OSVERSIONINFOW Version = { 0 };
    Version.dwOSVersionInfoSize = sizeof(Version);
    NTSTATUS status = RtlGetVersion(&Version);
    if (!NT_SUCCESS(status)
    {
        //获取版本显示
    }

RTL_OSVERSIONINFOW的定义如下:

typedef struct _OSVERSIONINFO
{
    DWORD dwOSVersionInfoSize;
    DWORD dwMajorVersion;
    DWORD dwMinorVersion;
    DWORD dwBuildNumber;
    DWORD dwPlatformId;
    TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;

成员说明:
dwOSVersionInfoSize
以字节为单位,指定这个数据结构的大小。须在调用GetVersionEx(OSVERSIONINFO)函数之前,将这个成员设置为sizeof(OSVERSIONINFO)。

dwMajorVersion
标识操作系统的主版本号。例如,对于Windows NT 3.51版,其主版本号为3;对于Windows NT 4.0版,其主版本号为4。

dwMinorVersion
标识操作系统的次要版本号。例如,对于Windows NT 3.51版,其次要版本号为51;对于Windows NT 4.0版本,其次要版本号为0。

dwBuildNumber
Windows NT:标识操作系统的内部版本号。
Windows 95:低位字标识操作系统数的内部版本号。高位字包含了主要和次要版本号。

dwPlatformId
标识操作系统平台。这个成员可以是下列值之一:

平台
VER_PLATFORM_WIN32s Win32s on Windows 3.1
VER_PLATFORM_WIN32_WINDOWS Win32 on Windows 95
VER_PLATFORM_WIN32_NT Win32 on Windows NT

szCSDVersion
Windows NT:包含一个以NULL结尾的字符串,如“Service Pack 3”,就表明系统上安装了最新的Service Pack。如果没有安装Service Pack,该字符串为空。
Windows 95:包含一个以NULL结尾的字符串,提供了对操作系统的任意补充信息。

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!