初学驱动编程,请大虾不吝指教:1、例如irptrace软件,需要用到irpdrv.sys这个驱动,但是这个驱动在系统启动时是没有加载的;运行irptrace时才被加载,这是如何做到的(动态加载如何实现);2、对于ramdisk这样的软件,需要用到rramdisk.sys这个驱动;但是系统内并不存在ramdisk的硬件实例,那么这个驱动是如何被加载的?如果用WDM开发的话,它的AddDevice例程是如何被调用的?谢谢您。
解决方案 »
- 定时器关闭
- 我的风车为什么不转了。
- VC显示JPG图片遇到的问题
- socket程序在调用recv的时候出10053号
- odbc访问数据库 select count(*) select into :变量 这样的语句怎么执行才能得到结果
- 【短信息中文解码问题】用东软API接收来中文短信显示乱码(分不够再加)
- 如何扩展vc开发环境的问题
- (在线!马上给分!)关于CTreeView在CPropertSheet(属性页)的一页上显示.
- 老师说这样写消息循环是错误,让我们回去查资料
- 怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本。
- 关于组播接收的问题
- 使用BounderCheck能正确检测出Release版本程序的内存泄露吗?
服务的注册表可以开机启动,也可以象服务一样,手动启动。irptrace就是这种。
ramdisk应该算是一种内核扩展,它不对应实际的物理硬件。只是在驱动层上架那么一层。:)
另外,请教一下,为什么我的windbg不能显示ntoskrnl中的符号名称呢?只有地址。
如下:
kd> !idtDumping IDT:37: 806ef728
3d: 806f0b70
41: 806f09cc
50: 806ef800
62: 82f949d4 f748b67e (KINTERRUPT 82f94998)
63: 82eee774 f72bae54 (KINTERRUPT 82eee738)
f727d954 (KINTERRUPT 82eea1f8)
73: 82d7f044 f72bae54 (KINTERRUPT 82d7f008)
83: 82db5344 f73ade10 (KINTERRUPT 82db5308)
93: 82d5d9bc f7603495 (KINTERRUPT 82d5d980)
a3: 82ee746c f760ac90 (KINTERRUPT 82ee7430)
b1: 82f98a1c f74ff31e (KINTERRUPT 82f989e0)
b2: 82d08dd4 f76139c0 (KINTERRUPT 82d08d98)
c1: 806ef984
d1: 806eed34
e1: 806eff0c
e3: 806efc70
fd: 806f0464
fe: 806f0604
应该可以显示出部分函数名称的啊,例如i8042prt!I8042keyboardInterruptService+0