阅读:1092回复:5
FILEDISK的读操作改成改一块块的读!不能格化式了!!求命!!
我把FILEDISK的读操作改成了
tlen=io_stack->Parameters.Read.Length; tbuf= buffer; ten =io_stack->Parameters.Read.ByteOffset; do { ZwReadFile( device_extension->file_handle, NULL, NULL, NULL, &irp->IoStatus, tbuf, 512, &ten, NULL ); tlen-=512; tbuf+=512; ten.QuadPart+=512; }while (tlen>0); 之后不能格式化了! 如果使用已格式化的映像文件不能正常读写!!! 其它的部分没有改!!!!! 高手帮忙解决一下??/ [编辑 - 2/26/05 by gonghuishine] [编辑 - 2/26/05 by gonghuishine] |
|
驱动老牛
![]() |
沙发#
发布于:2005-02-28 10:03
方案没问题,不正常是因为算法有问题 每次就取512字节放到BUF中,没做偏移,不知道你想干什么
|
|
板凳#
发布于:2005-02-28 20:01
tlen-=512;
tbuf+=512; ten.QuadPart+=512 这里不做了偏移了吗! 如果把设大一点!可是正常读写!但还是不能格式化 |
|
驱动老牛
![]() |
地板#
发布于:2005-03-01 09:36
不知道你完整的代码是怎么写的,不能格式化就是读写处理的有问题。
|
|
驱动老牛
![]() |
地下室#
发布于:2005-03-01 09:40
tlen-=512;
tbuf+=512; ten.QuadPart+=512; 这么各读法有没有考虑到数据不是512倍数的情况,为何没有崩溃我想不通。 |
|
5楼#
发布于:2005-03-01 21:16
别的地方我没有改!!!!我就改了读的地方!
io_stack->Parameters.Read.Length; io_stack->Parameters.Read.ByteOffset; 这里512对齐的!!肯定不会本溃!!!! 到底有没有人帮我帮决!!!!1 |
|