WinCE系统下应用程序直接读写存储设备(U盘)磁盘扇区
2010-01-14 14:56
363 查看
测试代码:
WinCE 5.0的板子插上U盘,运行程序,点击按钮,使上述代码得到执行。
拔下U盘,插到PC机,通过WinHex软件查看
已经成功将第0个扇区的512个字节全部写成了A5
此时PC机已经不能够识别该U盘,因为已经破坏了主引导扇区。
filename = _T("//./DSK1:"); HANDLE hFile = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); if (hFile == INVALID_HANDLE_VALUE) { MessageBox(_T("打开U盘失败!")); CloseHandle(hFile); return; } else { MessageBox(_T("打开U盘成功!")); m_edit = (long)hFile; UpdateData(false); } BYTE buffer[512]; for(int i=0;i < 512;i++) { buffer[i] = 0xA5; } SG_REQ SG_req1; SG_req1.sr_start = 0; SG_req1.sr_num_sec = 1; SG_req1.sr_num_sg = 1; SG_req1.sr_status = 0; SG_req1.sr_callback = NULL; SG_req1.sr_sglist[0].sb_len = 512; SG_req1.sr_sglist[0].sb_buf = buffer; DWORD actnum; if(!DeviceIoControl(hFile,IOCTL_DISK_WRITE,&SG_req1, sizeof(SG_req1),0,0,&actnum,0)) { MessageBox(_T("写U盘失败!")); } else { MessageBox(_T("写U盘成功!")); }
WinCE 5.0的板子插上U盘,运行程序,点击按钮,使上述代码得到执行。
拔下U盘,插到PC机,通过WinHex软件查看
已经成功将第0个扇区的512个字节全部写成了A5
此时PC机已经不能够识别该U盘,因为已经破坏了主引导扇区。
相关文章推荐
- VC++怎么实现Win2000下直接读写磁盘扇区
- Windows 2000下对磁盘扇区数据的直接读写访问方法
- Win2000下直接读写磁盘扇区
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写
- VC++实现Win2000下直接读写磁盘扇区
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写
- VC++实现 Win200 0下直接读写磁盘扇区
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写
- VC++实现Win2000下直接读写磁盘扇区
- Win2000下直接读写磁盘扇区
- VC++实现Win2000下直接读写磁盘扇区
- 直接读写磁盘扇区
- [Win32] 直接读写磁盘扇区(磁盘绝对读写)
- [Win32] 直接读写磁盘扇区(磁盘绝对读写)
- VC++实现Win2000下直接读写磁盘扇区
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写
- linux2.6硬盘扇区直接读写程序 分类: 磁盘的扇区读写 2015-04-29 10:37 317人阅读 评论(0) 收藏
- 构造IRP 直接读写磁盘扇区内容
- Window下磁盘无损4K对齐【推荐SSD、HDD、U盘等存储设备都使用】
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写 分类: 磁盘的扇区读写 2015-04-29 10:48 341人阅读 评论(0) 收藏