阅读:3555回复:13
加急,为什么我的硬盘在磁盘管理中看不见?
我仿照ide driver 写了 bus driver,pci ide driver(port driver)
最后发现硬盘可以在设备管理器->磁盘驱动器中发现,但是在磁盘管理中发现不了 |
|
沙发#
发布于:2005-07-08 17:46
现在收到了,知道怎样应答呢?
ddk上写的不是很明白 |
|
板凳#
发布于:2005-07-05 14:07
scsi port 架够的驱动,应该收到inquiry的
|
|
地板#
发布于:2005-07-04 22:02
我今天写的SCSI port 驱动,在设备管理器可以看到,也是显示为磁盘驱动器,但是在我的电脑里也不出现,
是不是数据应答不对?也没有受到INQUARY 等请求~~不知道什么问题? |
|
驱动老牛
![]() |
地下室#
发布于:2005-07-01 10:05
下面是引用ballfoot于2005-06-30 17:15发表的: 那就只有跟踪下了。 即使改容量为0也能显示出来. 不能 8M以内是不会显示出是磁盘的。 |
|
5楼#
发布于:2005-06-30 17:15
己经确认不是这个问题, 我用过滤驱动抓过别人的驱动,即使改容量为0也能显示出来.
我比较过数据 SRB_FUNCTION_CLAIM_DEVICE, IOCTL_STORAGE_QUERY_PROPERTY, IOCTL_SCSI_GET_ADDRESS,IOCTL_DISK_GET_DRIVE_GEOMETRY,SCSIOP_READ_CAPACITY,SCSIOP_TEST_UNIT_READY,SCSIOP_MODE_SENSE,IOCTL_SCSI_MINIPORT_IDENTIFY, 这些irp应该没错. IRP_MN_QUERY_CAPACIBILITIES也比较过. 不知道还有什么地方跟磁盘管理有关. |
|
驱动老牛
![]() |
6楼#
发布于:2005-06-30 13:51
下面是引用ballfoot于2005-06-30 11:29发表的: 这样的话最大的可能还是在 read caps 你看看字节序有没有问题 最好跟踪一下。 |
|
7楼#
发布于:2005-06-30 11:29
我的驱动不是scsi port架构,bus driver 及 port driver 都是自己写的,disk.sys中的irp直接传到port driver.
test ready,read caps,read10,write10都处理了.inqury上层不会发下来. |
|
驱动老牛
![]() |
8楼#
发布于:2005-06-29 13:09
下面是引用ballfoot于2005-06-28 16:47发表的: 使用SCSI方法?那就简单多了 TEST READY INQUIRY READCAPS 这几条都要处理对才行 READ10 WRITE10 读写不对的话也可以出现盘符的。 |
|
9楼#
发布于:2005-06-28 16:47
磁盘的容量在SCSIOP_READ_CAPACITY设置,采用高位优先,应该没错
|
|
驱动老牛
![]() |
10楼#
发布于:2005-06-28 15:42
下面是引用ballfoot于2005-05-27 11:38发表的加急,为什么我的硬盘在磁盘管理中看不见?: 如果你的磁盘容量不合法 也不会出来的。 |
|
11楼#
发布于:2005-06-28 13:56
我仔细比较了一下,发现加上IoCreateSymbolicLink没什么变化
|
|
12楼#
发布于:2005-06-28 13:10
我检查了驱动,的确在create disk pdo时忘了符号连接;然后我加上了IoCreateSymbolicLink
可是还是在磁盘管理中看不到,不知道是不是dosdevice name 不合法 .不过我后面又加上了个未分区的serial disk,安上别的厂商的驱动,可以在磁盘管理中看见磁盘2,如果我不加载自己的驱动而直接加上别的厂商驱动,则只能看见磁盘1.这证明加上IoCreateSymbolicLink还是有作用的 |
|
13楼#
发布于:2005-06-25 06:13
应该是你的DRIVER 只提供了Device symbol name,没有提供或者提供了不合法的DosDeviceName而造成的;
|
|