阅读:2401回复:6
daemon是怎么加载一个光驱驱动的
我写了一个简单的scsi miniport驱动,实现了一个scsi卡,在设备管理器中显示出来的属性和daemon的一样,但是不知道怎么把scsi盘符弄出来。因为是从ddk的例子改的,也不知道哪些该要那些可以去掉。
daemon好像用的是windows自带的光驱驱动是不是,那么就是系统自动加载的吗。scsi port/miniport是怎么通知系统在scsi卡上连了一个磁盘的? 我看ddk文档说是pnp管理器将磁盘pdo作为参数传递给磁盘类的驱动的adddevice()例程的,磁盘的pdo是什么时候怎么创建的? |
|
最新喜欢:![]()
|
沙发#
发布于:2001-11-01 10:45
没有人做过像Daemon一样的虚拟光驱驱动吗
|
|
|
板凳#
发布于:2001-11-01 11:26
你写的仅是一个miniport,系统的storage class driver会做mount及盘符分配的工作。
|
|
|
地板#
发布于:2004-03-12 00:21
你在miniport里面的startio里回应系统的inqury命令的地方向系统提供inqury data,这个inqury data向系统指出了出现在scsi adapter上面的事什么设备,例如,你回的inqury data的第一个byte如果是5的话,系统就会知道该发现的设备是个cdrom,然后生成cd rom的pdo,fdo......
关键在于你恢复的inqury data的内容, scsi command的具体格式参见: http://www.danbbs.dk/~dino/SCSI/SCSI2-08.html#8.2.5 我最近也在研究这个,希望一起切磋…… 我现在有个笨问题想问楼主,楼主是怎么改ddk例子的?改的哪个例子?(aha154x?)我改了一个,但是系统加载不了,device manager error code 是34,不知道啥意思~~ |
|
地下室#
发布于:2004-03-16 17:43
还从来没想过楼主的问题,因为好象driver里面创建了设备对象以后,系统会自动的mount一个盘符,而且盘符只是一个link.
|
|
5楼#
发布于:2004-03-17 17:39
要出现盘符,你要创建一个磁盘类的fdo,并处理磁盘类的系统查询。也就是,系统查询你的驱动,如果所有必要查询都返回正确,就会显示盘符,不管真实情况怎么样。你可以看ddk中关于磁盘的控制码中必要的部分。
|
|
6楼#
发布于:2004-03-18 10:12
这么老的帖子都翻出来了,呵呵,仔细一看这是我以前的id。
问题早就解决了,处理了inquiry,testunitready,读容量,modesense,读写命令,系统就会自动出来一个磁盘,可以在磁盘管理器里面看到,只不过是一个裸盘,没有分区,自然在“我的电脑”里面看不到盘符了。 只要处理了上述命令,设备管理器就会为这个lun生成一个pdo,然后自动加载磁盘驱动生成fdo。 |
|