驱动开发函数详解之Wdm

Posted 明教张公子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了驱动开发函数详解之Wdm相关的知识,希望对你有一定的参考价值。

驱动开发函数详解之Wdm

前言

  1. IRP(I/O Request Package) == 输入输出请求包
    上层应用程序需要访问底层输入输出设备时,发出I/O请求,系统会把这些请求转化为IRP数据,不同的IRP会启动I/O设备驱动中对应的派遣函数。
  2. #pragma PAGEDCODE 将例程分配在分页内存中

1.PAGED_CODE_LOCKED(Wdm.h)

该宏断言:当前正在运行的代码节可分页,且在运行之前必须已锁定到内存中。
返回:VOID
可分页代码必须遵循某些限制 (如 IRQL < = APC_LEVEL) ,除非已将其锁定到位。
**必须锁定就位才能正常工作的可分页例程**首先应该调用 PAGED_CODE_LOCKED。

2.PAGED_CODE(Wdm.h)

该宏确保:调用方的线程在 IRQL (足够低、允许分页)上运行。

3.锁定可分页代码或数据

许多内核模式的驱动程序没必要一直驻留在内存中,除非打开它们管理的设备;
另一种如:系统代码、应用程序代码或系统分页文件的磁盘的驱动程序必须始终驻留在内存中。
锁定:偶尔使用的设备,在使用时,通过在内存中锁定代码把该部分指定为可分页

  • 将可分页代码隔离到一个命名部分&#x

以上是关于驱动开发函数详解之Wdm的主要内容,如果未能解决你的问题,请参考以下文章

windows 2000/xp WDM设备驱动程序开发

WDM驱动模型简介

windows驱动开发问题

W驱开技详.过滤驱动测试

WD.驱动书_USB

WDF驱动开发- 一个简单的WDF驱动(non-pnp)