驱动开发工程师是干什么的(驱动开发函数详解之Wdm)
导读:驱动开发函数详解之Wdm 前言...
驱动开发函数详解之Wdm
前言
IRP(I/O Request Package) == 输入输出请求包
上层应用程序需要访问底层输入输出设备时 ,发出I/O请求 ,系统会把这些请求转化为IRP数据 ,不同的IRP会启动I/O设备驱动中对应的派遣函数 。 #pragma PAGEDCODE 将例程分配在分页内存中1.PAGED_CODE_LOCKED(Wdm.h)
该宏断言:当前正在运行的代码节可分页 ,且在运行之前必须已锁定到内存中 。
返回:VOID
可分页代码必须遵循某些限制 (如 IRQL < = APC_LEVEL) ,除非已将其锁定到位 。
**必须锁定就位才能正常工作的可分页例程**首先应该调用 PAGED_CODE_LOCKED 。2.PAGED_CODE(Wdm.h)
该宏确保:调用方的线程在 IRQL (足够低 、允许分页)上运行 。
3.锁定可分页代码或数据
许多内核模式的驱动程序没必要
一直驻留在内存中 ,除非打开它们管理的设备;
另一种如:系统代码 、应用程序代码或系统分页文件的磁盘的驱动程序必须始终驻留在内存中 。
锁定:偶尔使用的设备 ,在使用时 ,通过在内存中锁定代码把该部分指定为可分页 。 将可分页代码隔离到一个命名部分&#x创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!