
driver
文章平均质量分 96
寻妖吃肉
这个作者很懒,什么都没留下…
展开
-
驱动开发:应用程序与驱动程序 IOCTL 通讯 + DeviceIoControl + IRP 详解
使用 DeviceIoControl 函数的前提是:我们在驱动中自定义IOCTL(IO控制码)。这是应用程序和驱动程序交互的一种通信方式。先看看 CTL_CODE 原型:<<16<<14<<2CTL_CODE 宏有四个参数,用于辅助自定义 IOCTL,把4个部分组成一个32位 IOCTL。高16位存储设备类型,14~15位访问权限,2~13位操作功能,最后0,1两位就是确定缓冲区是如何与I/O和文件系统数据缓冲区进行数据传递方式,最常见的就是METHOD_BUFFERED。原创 2025-01-05 13:02:38 · 1324 阅读 · 0 评论 -
Windows10 下通过 Visual Studio2022 编译 openssl 3.4 + POCO 1.14.1
POCO 是一个C++的开源库集。同一般的C++库相比,POCO的特点是提供了整一个应用框架。如果要做C++程序应用框架的快速开发,STL + boost + Poco + Qt + Mysql 是个不错的选择。原创 2024-12-24 20:48:16 · 1393 阅读 · 0 评论 -
驱动开发:Windows 10 + Visual Studio 2022 + WDK 创建一个内核驱动程序
WDM 驱动作为 Windows 服务运行,在执行具体代码前,驱动 SYS 文件首先会被映射到内核地址空间,作为内核的一个驱动模块(MODULE),接着系统对这个驱动模块执行导入表初始化、修正重定位表中对应的数据偏移等操作,最后系统会调用该驱动模块的DriverEntry 入口函数,如果这个入口函数返回 STATUS_SUCCESS,系统认为这个驱动初始化成功;项目工程内生成了一个空白的 MyDriver.c 文件,我们准备在这个文件中添加驱动代码,我们先增加驱动开发的头文件 ntddk.h。原创 2024-12-19 21:28:46 · 2769 阅读 · 0 评论