將磁片影像熱化
使用 IMAPI) (主控 (磁片是由下列步驟所組成:
如需將磁片映射擷取的範例,請參閱 VBScript 範例。
建構擷取影像
光光影像是一種資料流程,可準備寫入光學媒體。 ISO9660、Joliet 和 UDF 格式的擷取映射是由個別檔案和目錄的檔案系統所組成。 CFileSystemImage物件是檔案系統物件,可保存要放在光學媒體上的檔案和目錄。 IFileSystemImage介面可讓您存取檔案系統物件和設定。
建立檔案系統物件之後,請分別呼叫 IFileSystemImage::CreateFileItem 和 IFileSystemImage::CreateDirectoryItem 方法來建立檔案和目錄物件。 檔案和目錄物件可用來提供檔案和目錄的特定詳細資料。 IFileSystemImage可用的事件處理常式方法可以識別要新增至檔案系統映射的目前檔案、已複製的磁區數目,以及要複製的磁區總數。
您可以選擇性地使用 IFileSystemImage::p ut_BootImageOptions 屬性將開機映射附加至檔案系統。 如需範例,請參閱 新增開機映射。
最後,呼叫 IFileSystemImage::CreateResultImage 來建立資料流程,並透過 IFileSystemImageResult提供存取權。 然後,可以將新的資料流程直接提供給 IDiscFormat2Data::Write 方法,或儲存至檔案以供稍後使用。
設定光碟錄製器
MsftDiscMaster2物件提供系統上光學裝置的列舉。 IDiscMaster2介面可讓您存取產生的裝置列舉。 周遊列舉以找出適當的錄製裝置。 MsftDiscMaster2物件也會在電腦新增或刪除光學裝置時提供事件通知。
尋找光學錄製器並擷取其識別碼之後,請建立 MsftDiscRecorder2 物件,並使用裝置識別碼初始化錄製器。 IDiscRecorder2介面可讓您存取錄製器物件,以及一些基本裝置資訊,例如廠商識別碼、產品識別碼、產品修訂,以及退出媒體並關閉匣的方法。
建立資料寫入器並寫入擷取影像
MsftDiscFormat2Data物件提供寫入方法、寫入函式和媒體特定屬性的相關屬性。 IDiscFormat2Data介面可讓您存取MsftDiscFormat2Data物件。
磁片錄製器會使用 IDiscFormat2Data::p ut_Recorder 屬性連結到格式寫入器。 在錄製器系結至格式寫入器之後,您可以使用 IDiscFormat2Data::Write 方法,先執行媒體的相關查詢,並更新寫入特定屬性,再將結果影像寫入磁片。
IMAPI 所提供的其他格式寫入介面的運作方式類似;其他格式寫入介面包括:
- IDiscFormat2Erase 會清除可重寫的光學媒體。
- IDiscFormat2RawCD 會將原始影像寫入光學媒體。
- IDiscFormat2TrackAtOnce 會將音訊軌寫入光學媒體。
注意
電源狀態轉換可以在 (期間進行電源狀態轉換,也就是使用者登出或系統暫停) ,這會導致損毀程式中斷和可能的資料遺失。 如需程式設計考慮,請參閱 防止在擷取期間登出或暫停。
VBScript 範例
此腳本範例示範如何使用 IMAPI 物件來擷取光學媒體;更具體來說,將目錄寫入空白磁片。程式碼不包含錯誤檢查,並假設下列各項:
- 相容的磁片裝置會安裝在系統上。
- 磁片裝置是系統上的第二個磁片磁碟機。
- 相容的磁片會插入到磁片裝置中。
- 磁片是空白的。
- 寫入磁片的檔案位於 「g:\burndir」。
其他功能,例如錯誤檢查、裝置和媒體相容性、事件通知,以及計算磁片上的可用空間,都可以新增至此腳本。
' This script burns data files to disc in a single session
' using files from a single directory tree.
' Copyright (C) Microsoft Corp. 2006
Option Explicit
' *** CD/DVD disc file system types
Const FsiFileSystemISO9660 = 1
Const FsiFileSystemJoliet = 2
Const FsiFileSystemUDF102 = 4
WScript.Quit(Main)
Function Main
Dim Index ' Index to recording drive.
Dim Recorder ' Recorder object
Dim Path ' Directory of files to burn
Dim Stream ' Data stream for burning device
Index = 1 ' Second drive on the system
Path = "g:\BurnDir" ' Files to transfer to disc
' Create a DiscMaster2 object to connect to optical drives.
Dim g_DiscMaster
Set g_DiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
' Create a DiscRecorder object for the specified burning device.
Dim uniqueId
set recorder = WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
uniqueId = g_DiscMaster.Item(index)
recorder.InitializeDiscRecorder( uniqueId )
' Create an image stream for a specified directory.
Dim FSI ' Disc file system
Dim Dir ' Root directory of the disc file system
Dim dataWriter
' Create a new file system image and retrieve root directory
Set FSI = CreateObject("IMAPI2FS.MsftFileSystemImage")
Set Dir = FSI.Root
'Create the new disc format and set the recorder
Set dataWriter = CreateObject ("IMAPI2.MsftDiscFormat2Data")
dataWriter.recorder = Recorder
dataWriter.ClientName = "IMAPIv2 TEST"
FSI.ChooseImageDefaults(recorder)
' Add the directory and its contents to the file system
Dir.AddTree Path, false
' Create an image from the file system
Dim result
Set result = FSI.CreateResultImage()
Stream = result.ImageStream
' Write stream to disc using the specified recorder.
WScript.Echo "Writing content to disc..."
dataWriter.write(Stream)
WScript.Echo "----- Finished writing content -----"
Main = 0
End Function
相關主題