摘要: 手动创建IRP有以下几个步骤: 1,先得到设备的指针,一种方法是用IoGetDeviceObjectPointer内核函数得到设备对象指针,另外一种方法是用zwCreateFile内核函数先得到设备句柄,然后调用ObReferenceObjectByHandle内核方法通过设备句柄得到设备对象指针; 阅读全文
posted @ 2020-02-24 19:31 AGB 阅读(304) 评论(0) 推荐(0) 编辑
摘要: IRP被送到底层驱动程序以后,由于硬件设备的问题,IRP不能得到及时处理,甚至有可能永远不会被处理,这时候需要对IRP超时情况进行处理,一旦在规定时间内,IRP没有被处理,操作系统就会进入到IRP的处理函数种 阅读全文
posted @ 2020-02-24 16:03 AGB 阅读(277) 评论(0) 推荐(0) 编辑
摘要: DCP是一种使用更加灵活的定时器,可以对任意间隔时间进行定时。DPC定时器的内部使用了一个定时器对象KTIMER,当你设定了定时器之后,从设定开始起经过这个时间之后操作系统会将一个DPC定时器的例程插入到DPC的队列,操作系统读取DPC队列的时候定时器例程就能够被执行。这里的DPC定时器例程就相当于 阅读全文
posted @ 2020-02-24 12:36 AGB 阅读(1855) 评论(1) 推荐(0) 编辑