驱动 常识
kaylc
这个作者很懒,什么都没留下…
展开
-
source文件和makefile文件编写
<br />一. makefile (没有扩展名,它名字就叫makefile),内容如下: <br /> !INCLUDE $(NTMAKEENV)/makefile.def <br /> WDM程序使用的所有makefile都这样写,我们只需写一个,编译时把它拷贝到工作目录下就行了 <br /> 二. sources文件就需要我们根据不同的场合修改了,不过基本模板如下: <br /><br /> TARGETNAME=驱动程序名 //(不含扩展名) <br /><br /> TARGETPATH转载 2011-03-20 19:41:00 · 5079 阅读 · 1 评论 -
分层驱动模型中IRP的传递与完成
在Windows分层驱动模型中,设备栈中的设备一般都是通过对上层传来的IRP做相应的处理来实现驱动的功能。这里对常用的几种IRP传递及完成的方式进行归纳和总结: 1. 在本层驱动中完成 1.1 在本层驱动中以同步方式完成 在本层同步完成一般做完相应处理后,设置Irp转载 2011-08-22 23:42:53 · 721 阅读 · 0 评论 -
驱动开发注意事项集锦
1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。 2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁转载 2011-08-22 23:38:30 · 489 阅读 · 0 评论 -
关于“IRP_MJ_CREATE ” 的Dispatch中判断FileObject是文件还是目录问题
当Ring3 CreateFile发起对某个文件对象的请求时,如:C:/Program Files/Microsoft Visual Studio/VC98/LIB/LIBC.lib"。请求进入Ring0,Fs会把该请求生成多个IRP_MJ_CREATE,逐层的打开目录对象,直至转载 2011-09-15 22:42:36 · 1252 阅读 · 0 评论 -
Secrets of the Universe Revealed! - How NT Handles I/O Completion
http://www.osronline.com/article.cfm?id=83转载 2011-07-14 09:34:45 · 548 阅读 · 0 评论 -
IRP 完成例程
1.最高层驱动总是运行在发起该请求的程序所处的线程中。DriverEntry总是处在系统线程中,系统线程的空间不涉及到线性地址 0 - 2G。APC 是处在任意上下文中,它所在的线程取决于系统运行APC之前最后被挂起的那个线程。2. 所有不返回 STATUS_MORE_PROCE转载 2011-07-12 15:27:54 · 735 阅读 · 0 评论 -
IFS FAQ
IFS FAQ Q1 How difficult is it to port a Windows 9x based file system or file system filter driver to Windows NT/2000/XP?Q2 Is there a WDM model for file systems or file system filter drivers?Q3转载 2011-06-29 14:35:00 · 1490 阅读 · 0 评论 -
Windows NT 驱动程序开发人员提示——应注意避免的事项
下面是开发人员在使用 Windows NT 设备驱动程序时应当避免的事项列表: 1.一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。2.一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。3.转载 2011-06-29 14:24:00 · 507 阅读 · 0 评论 -
DDK Sources文件语法处理
TARGETLIBS这个宏用于设置连接时所用到的LIB库目录.这个文件路径必须是绝对地址才行(MSDN上说的)比如:TARGETLIBS=$(SDK_LIB_PATH)/kernel32.lib /<br /> $(SDK_LIB_PATH)/advapi32.lib /TARGETLIBS=../../lib/i386/SysDll.lib #相对路径也可以啊,尝试时发现的TARGETPATHLIB编译DLL类型的文件时,指定其对应的LIB所在的目录TARGETNAMETARGE转载 2011-03-20 19:43:00 · 1789 阅读 · 0 评论 -
IRP_MN_MOUNT_VOLUME and ObQueryNameString
From:http://www.osronline.com/showThread.cfm?link=25276 This is a common problem for filter drivers trying to query the name of a file object.IIRC, when you call ObQueryNameString for a file转载 2011-11-22 20:33:42 · 878 阅读 · 0 评论