3739|4

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

win2003下,直接写u盘0扇区的问题. [复制链接]

我写了一个直接写U盘0扇区的程序,目的是对U盘的0扇区进行加密.流程如下:
1.取得u盘的句柄:
        char szdrv[MAX_PATH] = {0};
        sprintf(szdrv, "\\\\.\\physicaldrive%d", uDevIndex);

        HANDLE hDrive =
                CreateFile(szdrv, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

        if(INVALID_HANDLE_VALUE == hDrive)
        {
                return false;
        }

2.ReadFile
3.加密
4.WriteFile

但是通过一下流程的测试,会出现写不上的问题:(win2003 标准版 sp2)
1.格式化(格式化之后不拔出U盘)
2.进行上述的操作.

结果就是拔出U盘再插上,数据并没有写上.请高手帮忙分析下原因.多谢.

最新回复

驱动可不可以调试  详情 回复 发表于 2008-8-20 15:48
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
如果是没有分区表的情况,不要打开PhysicalDrive,用打开盘符设备的方式,CreateFile之后,先用DeviceControl FSCTL_LOCK_VOLUME锁定卷,如果不成功可以等待一下再试,成功后再进行读写,处理完后用DeviceControl FSCTL_DISMOUNT_VOLUME,然后再CloseHandle,最后安全拔除设备。
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
有分区表的,应该怎么样处理呢? 多谢了.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
我感觉似乎不是锁定的问题,而是我的写的东西都写入缓存了,没有及时的更新到U盘上,因为我跟踪WriteFile操作,是成功的.
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
驱动可不可以调试
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表