hanzp
驱动牛犊
驱动牛犊
  • 注册日期2003-05-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1120回复:2

filedisk的问题

楼主#
更多 发布于:2003-07-02 21:59
我想自己模仿一个filedisk的程序。现在只实现了在我的电脑中添加了一个虚拟盘符。
在filedisk的例子中有许多对如IOCTL_DISK_CHECK_VERIFY等的处理,我想问的是当我创建一个盘符后要访问该盘时最先收到的IRP是哪些啊?我不知道我在我的程序中从哪几IOCTL个开始写啊。

还有,我在我的代码中添加对IOCTL_DISK_CHECK_VERIFY和IOCTL_DISK_GET_PARTITION_INFO的处理,编译却通不过,报的是不认识IOCTL_DISK_CHECK_VERIFY,IOCTL_DISK_GET_PARTITION_INFO。可是在DDK文档中明明有这些标识的啊
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2003-07-03 15:39
我用SOFTICE调试发现所有的IOCTL都被调用了
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
hanzp
驱动牛犊
驱动牛犊
  • 注册日期2003-05-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-03 15:58
那这些IOCTL的基本顺序是什么的啊?

我检测我的代码运行时发现在处理IOCTL_IOCTL_DISK_GET_PARTITION_INFO时就出错了,因为它执行完这个请求后就没有其他的IOCTL产生了,而直接是IRP_MJ_CLOSE。
我的代码
pPI = (PARTITION_INFORMATION*)(Irp->AssociatedIrp.SystemBuffer);

pPI->StartingOffset.QuadPart = 512;
pPI->PartitionLength.QuadPart = 81920;
pPI->HiddenSectors = 1;
pPI->PartitionNumber = 1;
pPI->PartitionType = PARTITION_FAT_12;
pPI->BootIndicator = FALSE;
pPI->RecognizedPartition = FALSE;
pPI->RewritePartition = FALSE;

Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = sizeof(PARTITION_INFORMATION);
游客

返回顶部