[原创]W2k Driving 学习笔记(一)内核线程及同步

本文介绍了一个Windows内核驱动程序中创建和同步线程的过程。通过IOCTL命令启动和停止线程,使用FAST_MUTEX进行同步,并在退出前确保所有线程完成。在遇到线程数超过3时导致的蓝屏问题后,分析发现是由于KeWaitForMultipleObjects的内存分配不足。同时,文章提到在MinGW(gcc)环境下编译时遇到的WAIT_TYPE声明问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[大体流程]

Win32与Kernel交互,从User层向内核发送2个请求:

0 IOCTL_Start_Thread : 从内核新建一个线程,最多建立MAX_THREAD_NUM个线程;

1 IOCTL_Stop_Thread : 关闭刚才建立的所有线程;

每个线程做同样的事,每次将变量Count增加1,使用一个FAST_MUTEX来同步加1操作。

线程过程如下,没什么特别说明的,其中为了照顾偶的眼球眨动频率,特地做了1s的延时。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值