我需要克隆CF卡(具有一定数量的自定义功能,无法使用现成的克隆工具)。我需要一个合适的图像才能工作 - 我不能只复制所有文件。我想在c#中为此编写一个程序,但我不知道从哪里开始。
有人能指出我的基本样本或某些东西让我朝着正确的方向前进吗?
答案 0 :(得分:1)
你不能使用像http://xedit.smike.ru/
这样的程序否则你必须回退到Win32 API调用,比如CreateFile(例如,对于驱动器G,使用“\。\ g:”作为文件名参数)
另请参阅ReadFile / WriteFile,SetFilePointer和DeviceIoControl函数。
答案 1 :(得分:1)
使用相同的API读取和写入要从Windows中用于普通文件io的卷读取原始数据。区别在于公开招募。
CreateFile(“\。\ M:”,GENERIC_READ | GENERIC_WRITE,...)
将打开驱动器M:进行原始读写。我从来没有尝试过,但你可以通过传递“\。\ M:”作为C#中的一个流开放函数的文件名,它可能工作。但是,在非托管代码中至少编写项目的一部分文件会更明智。
有关详细信息,请参阅CreateFile文档。寻找部分
物理磁盘和卷
限制直接访问磁盘或卷。有关详细信息,请参阅“帮助和支持知识库中的文件系统和存储堆栈的更改以限制Windows Vista和Windows Server 2008中的直接磁盘访问和直接卷访问”
答案 2 :(得分:0)
您需要使用Pinvoke来调用块模式io。你不能复制文件的原因是什么?