VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 372|回复: 7

好奇mingw驱动开发,缺少wdm.h

[复制链接]
68_avatar_middle
最佳答案
0 
online_vip 发表于 2021-9-21 19:47:09 | 显示全部楼层 |阅读模式
本帖最后由 雨夹血 于 2021-9-21 19:50 编辑

好奇想用mingw开发一个简单驱动,

环境变量也添加了就是提示找不到,但是目录下面有这个文件
第一关过不了

好奇mingw驱动开发,缺少wdm.h


  1. #include <ddk/ntddk.h>

  2. static VOID STDCALL
  3. my_unload( IN PDRIVER_OBJECT DriverObject ) {
  4. }


  5. NTSTATUS STDCALL
  6. DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) {
  7.    DbgPrint("DriverEntry called\r\n");

  8.     DriverObject->DriverUnload = my_unload;

  9.     return STATUS_SUCCESS;
  10. }
复制代码




上一篇:OpenSCManager的提权问题
下一篇:c++递增运算符重载
31_avatar_middle
最佳答案
53 
在线会员 发表于 2021-9-22 19:56:23 | 显示全部楼层
本帖最后由 cpp2019 于 2021-9-22 20:03 编辑
雨夹血 发表于 2021-9-22 18:51
不需要WDK也能编译,看雪上面有人编译成功过


miniGW似乎没有包含完整的DDK/WDK,我这几个版本都测试过。
好奇mingw驱动开发,缺少wdm.h
关于什么是DDK/WDK:
首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。

DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别:
  这个要说说驱动相关的一些历史:
  1).95/98/ME下,驱动模型为:Vxd,相关资料可以看《编程高手箴言》的前几个章节,里面有很详细的介绍,虽然这个东西已经过时,但大概看看还是会增长见识的。
  2).2000/XP/2003下,Windows采用WDM驱动模型(Windows Driver Model),开发2000/XP/2003的驱动开发包为:DDK。
  3).Vista及以后版本,采用了WDF驱动模型(Windows Driver Foudation),对应的开发包:WDK。其实WDK可以看做是DDK的升级版本,现在一般的WDK是包含以前DDK相关的功能,现在XP下也可以用WDK开发驱动,WDK能编译出2000-2008的各种驱动。

PS:
        .Vxd驱动文件扩展名为:.vxd。
         WDM和WDF驱动文件扩展名为:.sys。

相关链接:https://www.cnblogs.com/xdot/p/9815391.html
04_avatar_middle
最佳答案
11 
online_vip 发表于 2021-9-21 23:00:42 | 显示全部楼层
你源码里用的是#include <ddk/ntddk.h>说明你系统变量只到ddk为止,那么wdm.h所在的文件夹也应该加入系统变量里或者是编译命令里
68_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-9-22 01:11:40 | 显示全部楼层
xiao14116 发表于 2021-9-21 23:00
你源码里用的是#include 说明你系统变量只到ddk为止,那么wdm.h所在的文件夹也应该加入系统变量里或者是编 ...

都在一个文件夹里面
31_avatar_middle
最佳答案
53 
在线会员 发表于 2021-9-22 09:45:49 | 显示全部楼层
WDK安装了?没安装WDK光有MINIGW是不行的!
04_avatar_middle
最佳答案
11 
online_vip 发表于 2021-9-22 18:42:00 | 显示全部楼层
雨夹血 发表于 2021-9-22 01:11
都在一个文件夹里面

你那个错误提示已经告诉你了,问题在于ntddk.h里包含的wdm.h指明的路径不再系统变量里
68_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-9-22 18:51:37 | 显示全部楼层
cpp2019 发表于 2021-9-22 09:45
WDK安装了?没安装WDK光有MINIGW是不行的!

不需要WDK也能编译,看雪上面有人编译成功过
68_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-9-23 12:08:30 | 显示全部楼层
cpp2019 发表于 2021-9-22 19:56
miniGW似乎没有包含完整的DDK/WDK,我这几个版本都测试过。

关于什么是DDK/WDK:

我也测试好几个版本就是不行,算了不折腾了。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-11-30 01:05

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表