阅读:1114回复:2
filedisk的问题
我想自己模仿一个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文档中明明有这些标识的啊 |
|
沙发#
发布于:2003-07-03 15:39
我用SOFTICE调试发现所有的IOCTL都被调用了
|
|
|
板凳#
发布于: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); |
|