请问关于虚拟设备的驱动的有关问题

请教关于虚拟设备的驱动的问题
初学驱动编程,请大虾不吝指教:

1、例如irptrace软件,需要用到irpdrv.sys这个驱动,但是这个驱动在系统启动时是没有加载的;运行irptrace时才被加载,这是如何做到的(动态加载如何实现);

2、对于ramdisk这样的软件,需要用到rramdisk.sys这个驱动;但是系统内并不存在ramdisk的硬件实例,那么这个驱动是如何被加载的?如果用WDM开发的话,它的AddDevice例程是如何被调用的?

谢谢您。

------解决方案--------------------
1. 虚拟的串口驱动程序,这个设备是一个虚拟的,虚拟的就不能在任何总线上面了。这样子,就先虚拟一个总线出来,然后告诉设备管理器,这里有一个串口。设备管理器傻乎乎的就去找一个串口的功能驱动带过来用了,然后操作系统就会以为我们这里有一个串口了。

所以这个虚拟的串口驱动程序,实际上就由一个总线驱动、功能驱动构成。

2.在WDM的驱动程序中,创建设备对象的任务不再由DriverEntry承担,而需要驱动程序向系统注册一个称做AddDevice的例程。此例程由PNP管理器负责调用,其函数主要职责是创建设备对象。

3.symbol path设置了吗?