Windows内核编程
Windows内核编程
小鹰信息技术服务部
Tolerance, Diversity. Hit Refresh.
展开
-
Unicode与UTF-8
软件开发中乱码问题经常遇到,Unicode,UTF-8, ASCII等都是高频词语,不过具体是啥意思其实都不清楚。这个周末研究了一下,略有了解,记录一下。原创 2023-10-06 11:22:04 · 247 阅读 · 0 评论 -
A numeric comparison was attempted on “$(TargetPlatformVersion)“ that evaluates to
一个Windows驱动项目,在公司电脑上打开正常,拷贝到自己电脑上无法打开,提示:A numeric comparison was attempted on "$(WindowsTargetPlatformVersion)" that evaluates to "" instead of a number, in condition "'$(OverrideCfgV1)' == '' and '$(WindowsTargetPlatformVersion)' <= '10.0.14250.原创 2021-08-21 16:03:23 · 851 阅读 · 0 评论 -
Driver Testing Could not load test information. Error:未将对象引用设置到对象的实例
VS2017启动 报错:Driver TestingCould not load test information. Error:未将对象引用设置到对象的实例。解决办法:把WDK卸载后重新下载安装即可。1. 卸载WDK2. 删除磁盘上的Windows Kit文件夹,例如 D:\Windows Kit3. VS中,在扩展管理器中卸载WDK扩展。重新安装,问题解决。...原创 2021-07-28 22:25:56 · 3083 阅读 · 1 评论 -
驱动的DriverUnload函数
对于一个Windows驱动来说,一般需要提供DriverUnload函数,有了这个函数,驱动对应的服务(service)就能被停止。驱动是已服务的方式运行的,服务停止的实质是系统把该驱动模块对应在内核地址空间中的代码以及数据移除了。同时,开发者可以在DriverUnload函数中进行一些清理相关的工作。例如驱动Driver A内部有一个线程B,如果开发者没有在DriverUnload函数中停止线程B,一旦驱动A被停止,则线程B对应与驱动A的代码就被系统删除了,线程B执行就会发生异常,从而引起系统异常原创 2021-07-27 19:19:58 · 1082 阅读 · 0 评论 -
编写、编译第一个驱动
1. 新建一个驱动项目Visual C++ > Windows Drivers > Empty WDM Driver, 取名为FirstDriver2. 在项目中添加一个c文件取名为Frist.c3. 编写入口函数内核驱动有统一的入口函数,名字叫 DriverEntry.DriverUnload是内核驱动的移除函数。//First.c#include "ntddk.h"VOID DriverUnload(PDRIVER_OBJECT Driver原创 2021-07-27 19:04:19 · 524 阅读 · 1 评论 -
Win10 安装WDK for Visual Studio 2017
安装WDK,Visual Studio版本是2017社区版。记录如下:1. 找到匹配VS2017的WDK版本https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads对于VS2017社区版来说,匹配的WDK版本是1809。如果WDK与VS版本不匹配,WDK在安装之后,是无法被VS检测到的。2. 安装,完成之后勾选安装VS扩展的选项。打开VS2017,菜单栏出现"Driver(驱动.原创 2021-02-12 22:12:14 · 2524 阅读 · 1 评论