教程参考自:https://www.bilibili.com/video/av26193169/?p=8
代码地址:https://github.com/G4rb3n/Windows-Driver/tree/master/MT_Thread
1. 概述
内核开发少不了线程的创建调用,这章就来实现线程的编程。
2. 驱动编写
2.1 驱动入口函数
入口函数没啥代码,就是调用CreateThread函数。
2.2 CreateThread函数
CreateThread的主要功能就是创建线程TestThread,以及一些初始化工作。
2.3 TestThread函数
核心函数TestThread,做的是一个死循环操作,间隔2s打印一提示信息。
2.4 卸载函数
卸载函数会设置bTerminated为TRUE,来终端死循环。
3. 驱动测试
首先是间隔2s的情况,正常输出提示信息。
然后我们将间隔时间改为0s,可以发现CPU占用率急剧,因为内核线程的优先级是很高的,其他R3层的程序抢不过它。