Membakar Citra Disk

Menguasai (membakar disk) menggunakan IMAPI terdiri dari langkah-langkah berikut:

  1. Buat citra sistem file yang berisi direktori dan file untuk menulis diska.
  2. Siapkan perekam disk untuk berkomunikasi dengan perangkat optik.
  3. Buat penulis data dan bakar gambar ke disk.

Untuk contoh yang membakar gambar disk, lihat contoh VBScript.

Membuat gambar bakar

Gambar bakar adalah aliran data yang siap ditulis ke media optik. Gambar bakar untuk format ISO9660, Joliet, dan UDF terdiri dari sistem file file dan direktori individual. Objek CFileSystemImage adalah objek sistem file yang menyimpan file dan direktori untuk ditempatkan di media optik. Antarmuka IFileSystemImage menyediakan akses ke objek dan pengaturan sistem file.

Setelah membuat objek sistem file, panggil metode IFileSystemImage::CreateFileItem dan IFileSystemImage::CreateDirectoryItem untuk membuat objek file dan direktori. Objek file dan direktori dapat digunakan untuk memberikan detail spesifik tentang file dan direktori. Metode penanganan aktivitas yang tersedia untuk IFileSystemImage dapat mengidentifikasi file saat ini yang ditambahkan ke gambar sistem file, jumlah sektor yang sudah disalin, dan jumlah total sektor yang akan disalin.

Secara opsional, gambar boot dapat dilampirkan ke sistem file menggunakan properti IFileSystemImage::p ut_BootImageOptions . Misalnya, lihat Menambahkan Gambar Boot.

Terakhir, panggil IFileSystemImage::CreateResultImage untuk membuat aliran data dan menyediakan akses melalui IFileSystemImageResult. Aliran data baru kemudian dapat disediakan langsung ke metode IDiscFormat2Data::Write atau disimpan ke file untuk digunakan nanti.

Menyiapkan perekam disk

Objek MsftDiscMaster2 menyediakan enumerasi perangkat optik pada sistem. Antarmuka IDiscMaster2 menyediakan akses ke enumerasi perangkat yang dihasilkan. Melintasi enumerasi untuk menemukan perangkat perekaman yang sesuai. Objek MsftDiscMaster2 juga menyediakan pemberitahuan peristiwa saat perangkat optik ditambahkan atau dihapus dari komputer.

Setelah menemukan perekam optik dan mengambil ID-nya, buat objek MsftDiscRecorder2 dan inisialisasi perekam menggunakan ID perangkat. Antarmuka IDiscRecorder2 menyediakan akses ke objek perekam serta beberapa informasi perangkat dasar seperti ID vendor, ID produk, revisi produk, dan metode untuk mengeluarkan media dan menutup baki.

Membuat penulis data dan menulis gambar bakar

Objek MsftDiscFormat2Data menyediakan metode penulisan, properti tentang fungsi tulis dan properti khusus media. Antarmuka IDiscFormat2Data menyediakan akses ke objek MsftDiscFormat2Data .

Perekam disk menautkan ke penulis format menggunakan properti IDiscFormat2Data::p ut_Recorder . Setelah perekam terikat ke penulis format, Anda dapat melakukan kueri mengenai media dan memperbarui properti khusus tulis sebelum menulis gambar hasil ke disk menggunakan metode IDiscFormat2Data::Write .

Antarmuka penulisan format lain yang disediakan oleh IMAPI juga berfungsi; antarmuka penulisan format tambahan meliputi:

Catatan

Dimungkinkan untuk transisi status daya terjadi selama operasi pembakaran (yaitu log-off pengguna atau sistem ditangguhkan) yang menyebabkan gangguan proses pembakaran dan kemungkinan kehilangan data. Untuk pertimbangan pemrograman, lihat Mencegah Logoff atau Menangguhkan Selama Pembakaran.

 

Contoh VBScript

Contoh skrip ini menunjukkan cara menggunakan objek IMAPI untuk membakar media optik; lebih khusus lagi, tulis direktori ke disk kosong. Kode tidak berisi pemeriksaan kesalahan, dan mengasumsikan hal berikut:

  • Perangkat cakram yang kompatibel diinstal pada sistem.
  • Perangkat cakram adalah drive kedua pada sistem.
  • Cakram yang kompatibel dimasukkan ke dalam perangkat cakram.
  • Cakram kosong.
  • File yang akan ditulis ke disk terletak di "g:\burndir".

Fungsionalitas tambahan seperti pemeriksaan kesalahan, kompatibilitas perangkat dan media, pemberitahuan peristiwa, dan menghitung ruang kosong pada disk dapat ditambahkan ke skrip ini.

' 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

Menggunakan IMAPI

IDiscFormat2Data

IDiscFormat2Erase

IDiscFormat2RawCD

IDiscFormat2TrackAtOnce

IDiscMaster2

IDiscRecorder2

IFileSystemImage

IStream