使用.NET创建磁盘映像

时间:2010-02-11 20:15:40

标签: c# .net diskimage

我需要克隆CF卡(具有一定数量的自定义功能,无法使用现成的克隆工具)。我需要一个合适的图像才能工作 - 我不能只复制所有文件。我想在c#中为此编写一个程序,但我不知道从哪里开始。

有人能指出我的基本样本或某些东西让我朝着正确的方向前进吗?

3 个答案:

答案 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。你不能复制文件的原因是什么?