3

CF カードのクローンを作成する必要があります (市販のクローン作成ツールを使用できないように、ある程度のカスタム機能を備えています)。これを機能させるには適切なイメージが必要です。すべてのファイルをコピーすることはできません。このためのプログラムを c# で書きたいのですが、どこから始めればよいかわかりません。

正しい方向に進むために、誰かが基本的なサンプルまたは何かを教えてくれますか?

4

3 に答える 3

1

次のようなプログラムを使用することはできません:http://xedit.smike.ru/

それ以外の場合は、CreateFileなどのWin32 API呼び出しにフォールバックする必要があります(たとえば、ドライブGの場合、ファイル名パラメーターとして「\。\ g:」を使用します)

また、ReadFile / WriteFile、SetFilePointer、およびDeviceIoControl関数も調べてください。

于 2010-02-11T20:53:12.030 に答える
1

通常のファイルioに使用するWindowsのボリュームから生データを読み取るには、同じAPIを使用して読み取りと書き込みを行います。違いは公募です。

CreateFile("\。\M:"、GENERIC_READ | GENERIC_WRITE、...)

ドライブMを開きます:生の読み取りと書き込み用。私は試したことがありませんが、ファイル名として「\。\ M:」をC#のストリームオープン関数の1つに渡すことで、うまくいく可能性があります。ただし、少なくともプロジェクトのファイルio部分をアンマネージコードで記述する方が賢明です。

詳細については、CreateFileのドキュメントを参照してください。セクションを探す

物理ディスクとボリューム

ディスクまたはボリュームへの直接アクセスは制限されています。詳細については、次のヘルプとサポートのナレッジベースの「WindowsVistaおよびWindowsServer2008でのディスクへの直接アクセスとボリュームへの直接アクセスを制限するためのファイルシステムとストレージスタックへの変更」を参照してください。

于 2010-02-11T20:54:46.817 に答える
0

ブロックモードioを呼び出すには、Pinvokeを使用する必要があります。ファイルをコピーできない理由は何ですか?

于 2010-02-11T20:56:41.087 に答える