質問者
Windows標準機能でのDVD書き込みでベリファイの代替機能を探しています。

質問
-
ファイル・フォルダからDVD-Rに書き込みを実施します。
前提として、Windows標準機能以外使用できない環境です。
書き込み後の破損等をチェックし、問題なくDVDが作成されたことを確認する必要があります。
Windowsの機能で実現可能であれば方法を教えてください。
今回は使用できませんが、フリーソフトのimgBurnなどのベリファイ機能を想定しています。
Windows標準機能の「Windowsディスクイメージ書き込みツール」で「書き込み後のディスク確認」が
あることを確認していますが、ISOイメージファイルの作成がWindowsではできないようなので、
今回の要件を満たせず、質問に至りました。
よろしくお願いいたします。
すべての返信
-
ISOイメージファイルの作成がWindowsではできないようなので、
回答にはなっていないのですが、参考までに。
Windows Vista以降では「Windowsディスクイメージ書き込みツール」の実体がImage Mastering APIとして整備されています。「Windowsディスクイメージ書き込みツール」は直接ディスクに書き込んでしまいますが、APIとしてはISOイメージファイルの作成機能も存在します。ユーザーインターフェースが用意されていないだけですので、プログラム/スクリプトを記述すれば使えます。
以下、C#言語で記述したコードになります。
using System; using System.Runtime.InteropServices; using IMAPI2FS; // COM reference: Microsoft IMAPI2 File System Image Creator using IStream = System.Runtime.InteropServices.ComTypes.IStream; class IsoImage { [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, PreserveSig = true)] static extern void SHCreateStreamOnFile(string pszFile, uint grfMode, out IStream ppstm); static void Main(string[] args) { var isoPath = args[0]; var volumeName= args[1]; var path = args[2]; // same as Activator.CreateInstance(Type.GetTypeFromProgID("IMAPI2FS.MsftFileSystemImage")) var image = (IFileSystemImage)new MsftFileSystemImage(); image.ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE.IMAPI_MEDIA_TYPE_DISK); image.FileSystemsToCreate = FsiFileSystems.FsiFileSystemJoliet | FsiFileSystems.FsiFileSystemISO9660; image.VolumeName = volumeName; image.Root.AddTree(path, false); var resultImage = image.CreateResultImage(); var inStream = (IStream)resultImage.ImageStream; SHCreateStreamOnFile(isoPath, 0x00001001, out var outStream); inStream.CopyTo(outStream, (long)resultImage.TotalBlocks * resultImage.BlockSize, IntPtr.Zero, IntPtr.Zero); outStream.Commit(0); } }
本当は簡単に試せるPowerShellで記述したかったんですが、IStreamが扱えなかったために断念しました。
-
Uno__100さん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
この回答には、IMAPI2 を使用して DVD を書き込み、書き込み更新をフォローアップする例が含まれます。
ご参照いただければと思います。
https://stackoverflow.com/questions/19856015/c-sharp-burning-dvd-vr-with-imapi2?answertab=active#tab-topどうぞよろしくお願いいたします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~