ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3555回复:13

加急,为什么我的硬盘在磁盘管理中看不见?

楼主#
更多 发布于:2005-05-27 11:38
我仿照ide driver 写了 bus driver,pci ide driver(port driver)
最后发现硬盘可以在设备管理器->磁盘驱动器中发现,但是在磁盘管理中发现不了
八木(bamu)
驱动牛犊
驱动牛犊
  • 注册日期2005-03-14
  • 最后登录2005-11-02
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-08 17:46
现在收到了,知道怎样应答呢?
ddk上写的不是很明白
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-05 14:07
scsi port 架够的驱动,应该收到inquiry的
八木(bamu)
驱动牛犊
驱动牛犊
  • 注册日期2005-03-14
  • 最后登录2005-11-02
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-04 22:02
我今天写的SCSI port 驱动,在设备管理器可以看到,也是显示为磁盘驱动器,但是在我的电脑里也不出现,
是不是数据应答不对?也没有受到INQUARY 等请求~~不知道什么问题?
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-07-01 10:05
下面是引用ballfoot于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也比较过.
.......

那就只有跟踪下了。
即使改容量为0也能显示出来.
不能
8M以内是不会显示出是磁盘的。
---内核开发合作或提供基础技术服务QQ:22863668 ---
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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也比较过.

 不知道还有什么地方跟磁盘管理有关.
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-06-30 13:51
下面是引用ballfoot于2005-06-30 11:29发表的:
我的驱动不是scsi port架构,bus driver 及 port driver 都是自己写的,disk.sys中的irp直接传到port driver.
test ready,read caps,read10,write10都处理了.inqury上层不会发下来.

这样的话最大的可能还是在
read caps
你看看字节序有没有问题 最好跟踪一下。
---内核开发合作或提供基础技术服务QQ:22863668 ---
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-30 11:29
我的驱动不是scsi port架构,bus driver 及 port driver 都是自己写的,disk.sys中的irp直接传到port driver.
test ready,read caps,read10,write10都处理了.inqury上层不会发下来.
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-06-29 13:09
下面是引用ballfoot于2005-06-28 16:47发表的:
磁盘的容量在SCSIOP_READ_CAPACITY设置,采用高位优先,应该没错

使用SCSI方法?那就简单多了
TEST READY
INQUIRY
READCAPS
这几条都要处理对才行
READ10
WRITE10
读写不对的话也可以出现盘符的。
---内核开发合作或提供基础技术服务QQ:22863668 ---
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-06-28 16:47
磁盘的容量在SCSIOP_READ_CAPACITY设置,采用高位优先,应该没错
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2005-06-28 15:42
下面是引用ballfoot于2005-05-27 11:38发表的加急,为什么我的硬盘在磁盘管理中看不见?:
我仿照ide driver 写了 bus driver,pci ide driver(port driver)
最后发现硬盘可以在设备管理器->磁盘驱动器中发现,但是在磁盘管理中发现不了

如果你的磁盘容量不合法 也不会出来的。
---内核开发合作或提供基础技术服务QQ:22863668 ---
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-06-28 13:56
我仔细比较了一下,发现加上IoCreateSymbolicLink没什么变化
ballfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-05-03
  • 最后登录2005-09-28
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-06-28 13:10
我检查了驱动,的确在create disk pdo时忘了符号连接;然后我加上了IoCreateSymbolicLink
可是还是在磁盘管理中看不到,不知道是不是dosdevice name 不合法 .不过我后面又加上了个未分区的serial disk,安上别的厂商的驱动,可以在磁盘管理中看见磁盘2,如果我不加载自己的驱动而直接加上别的厂商驱动,则只能看见磁盘1.这证明加上IoCreateSymbolicLink还是有作用的
jackxin
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2009-06-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2005-06-25 06:13
应该是你的DRIVER 只提供了Device symbol name,没有提供或者提供了不合法的DosDeviceName而造成的;
游客

返回顶部