zoukankan      html  css  js  c++  java
  • 内核里获得系统版本,与系统滴答时间

    获得系统版本号。内核编程难免使用硬编码,以及使用一些高版本系统才出现的函数。为了使得驱动能在低版本的系统上正常运行,就需要根据不同系统做不同处理了。

    VOID GetVersion()
    {
    ULONG NtBuildNumber;
    RTL_OSVERSIONINFOW osi;
    osi.dwOSVersionInfoSize=sizeof(RTL_OSVERSIONINFOW);
    RtlFillMemory(&osi,sizeof(RTL_OSVERSIONINFOW),0);
    RtlGetVersion(&osi);
    NtBuildNumber=osi.dwBuildNumber;
    DbgPrint("NtBuildNumber: %ld
    ",NtBuildNumber);
    return NtBuildNumber;
    }
    

    获得系统时间。在内核里获得系统时间的是标准时间(GMT+0),转换成本地时间还需要进行转换。此功能在发布测试版软件的时候特别有用,限制人们只能在指定时间之前使用。

    VOID MyGetCurrentTime()
    {
     LARGE_INTEGER CurrentTime;
     LARGE_INTEGER LocalTime;
     TIME_FIELDS TimeFiled;
     // 这里得到的其实是格林威治时间
     KeQuerySystemTime(&CurrentTime);
     // 转换成本地时间
     ExSystemTimeToLocalTime(&CurrentTime, &LocalTime);
     // 把时间转换为容易理解的形式
     RtlTimeToTimeFields(&LocalTime, &TimeFiled);
     DbgPrint("[TimeTest] NowTime : %4d-%2d-%2d %2d:%2d:%2d",
    TimeFiled.Year, TimeFiled.Month, TimeFiled.Day, 
    TimeFiled.Hour, TimeFiled.Minute, TimeFiled.Second);
    }
    
  • 相关阅读:
    Redis-Sentinel 哨兵
    virtualenv and virtualenvwrapper
    C/C++中extern关键字详解
    C++ 中文拼音排序方法。
    vector排序
    VS2013 Ctrl+Shift+F 没反应
    PostMessage 解析
    CTextUI 文本控件 显示数字方法
    SetTimer API函数
    CEditUI 控件使用
  • 原文地址:https://www.cnblogs.com/csnd/p/11719007.html
Copyright © 2011-2022 走看看