Image Mastering API

Overview of the Image Mastering API technology.

To develop Image Mastering API, you need these headers:

For programming guidance for this technology, see:

Enumerations

 
EmulationType

Defines values for media types that the boot image is intended to emulate.
FsiFileSystems

Defines values for recognized file systems.
FsiItemType

Defines values for the file system item that was found using the IFileSystemImage::Exists method.
IMAPI_BURN_VERIFICATION_LEVEL

Defines values for the burn verification implemented by the IBurnVerification interface.
IMAPI_CD_SECTOR_TYPE

Defines the sector types that can be written to CD media.
IMAPI_CD_TRACK_DIGITAL_COPY_SETTING

Defines the digital copy setting values available for a given track.
IMAPI_FEATURE_PAGE_TYPE

Defines values for the feature that are supported by the logical unit (CD and DVD device).
IMAPI_FORMAT2_DATA_MEDIA_STATE

Defines values for the possible media states.
IMAPI_FORMAT2_DATA_WRITE_ACTION

Defines values that indicate the current state of the write operation when using the IDiscFormat2DataEventArgs interface.
IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE

Defines values that indicate the type of sub-channel data.
IMAPI_FORMAT2_RAW_CD_WRITE_ACTION

Defines values that indicate the current state of the write operation when using the IDiscFormat2RawCDEventArgs interface.
IMAPI_FORMAT2_TAO_WRITE_ACTION

Defines values that indicate the current state of the write operation when using the IDiscFormat2TrackAtOnceEventArgs interface.
IMAPI_MEDIA_PHYSICAL_TYPE

Defines values for the currently known media types supported by IMAPI.
IMAPI_MEDIA_WRITE_PROTECT_STATE

Defines values that indicate the media write protect status. One or more write protect values can be set on a given drive.
IMAPI_MODE_PAGE_REQUEST_TYPE

Defines values that indicate requests sent to a device using the MODE_SENSE10 MMC command.
IMAPI_MODE_PAGE_TYPE

Defines values for the mode pages that are supported by CD and DVD devices.
IMAPI_PROFILE_TYPE

Defines values for the possible profiles of a CD and DVD device. A profile defines the type of media and features that the device supports.
IMAPI_READ_TRACK_ADDRESS_TYPE

Defines values that indicate how to interpret track addresses for the current disc profile of a randomly-writable, hardware-defect-managed media type.
PlatformId

Defines values for the operating system architecture that the boot image supports.

Functions

 
AcquireExclusiveAccess

Acquires exclusive access to the device.
Add

Adds a file or directory described by the IFsiItem object to the file system image.
AddAudioTrack

Writes the data stream to the current media as a new track.
AddAudioTrackBlocks

Adds blocks of audio data to the currently open track. This method can be called repeatedly until there is no space available or the track is full.
AddData

Adds the contents of a root storage to the staged image file. This storage will be enumerated to place all substorages and streams in the root file system of the stage image file. Substorages become folders and streams become files.
AddDirectory

Adds a directory to the file system image.
AddFile

Adds a file to the file system image.
AddSpecialPregap

Accepts the provided IStream object and saves the associated pointer to be used as data for the pre-gap for track 1.
AddStream

Associates a named stream with a specific file in the file system image.
AddSubcodeRWGenerator

Allows the addition of custom R-W subcode, provided by the IStream. The provided object must have a size equal to the number of sectors in the raw disc image * 96 bytes when the final image is created.
AddTrack

Accepts the provided IStream object and saves the interface pointer as the next track in the image.
AddTree

Adds the contents of a directory tree to the file system image.
AddTreeWithNamedStreams

Adds the contents of a directory tree along with named streams associated with all files to the file system image.
Append

Appends a stream to this stream.
Append2

Appends an array of streams to this stream.
AssignBootImage

Sets the data stream that contains the boot image.
CalculateDiscIdentifier

Retrieves a string that identifies a disc and the sessions recorded on the disc.
CancelAddTrack

Cancels the current write operation. (IDiscFormat2TrackAtOnce.CancelAddTrack)
CancelWrite

Cancels the current write operation. (IDiscFormat2Data.CancelWrite)
CancelWrite

Cancels the current write operation. (IDiscFormat2RawCD.CancelWrite)
CancelWrite

Cancels a write operation that is in progress.
ChooseImageDefaults

Sets the default file system types and the image size based on the current media.
ChooseImageDefaultsForMediaType

Sets the default file system types and the image size based on the specified media type.
ClearFormatContent

Clears the contents of an unburned image (the current stash file).
Clone

Creates another enumerator that contains the same enumeration state as the current one. (IEnumFsiItems.Clone)
Clone

Creates another enumerator that contains the same enumeration state as the current one. (IEnumProgressItems.Clone)
Close

Closes the interface so other applications can use it.
Close

Releases exclusive access to a disc recorder. This restores file system access to the drive.
CloseAudioTrack

Closes a currently open audio track. All audio tracks must be closed before the IDiscMaster::RecordDisc method can be called.
CloseTray

Closes the media tray.
CreateAudioTrack

Begins staging a new audio track. It can be called only when there are no open audio tracks in the image.
CreateDirectoryItem

Create a directory item with the specified name.
CreateFileItem

Create a file item with the specified name.
CreateResultImage

Creates the final IStream object based on the current settings.
CreateResultImage

Create the result object that contains the file system and file data.
DisableMcn

Disables Media Change Notification (MCN) for the device.
Eject

Unlocks and ejects the tray of the disc recorder, if possible.
EjectMedia

Ejects media from the device.
EnableMcn

Enables Media Change Notification (MCN) for the device.
EnumDiscMasterFormats

Retrieves an enumerator for all disc mastering formats supported by this disc master object. A disc master format specifies the structure of the content in a staged image file (data/audio) and the interface that manages the staged image.
EnumDiscRecorders

Retrieves an enumerator for all disc recorders supported by the active disc master format.
Erase

Attempts to erase the CD-RW media if this is a CD-RW disc recorder. Both full and quick erases are supported.
EraseMedia

Erases the media in the active disc recorder.
Exists

Checks for the existence of a given file or directory.
FileSystemName

Retrieves the name of the item as modified to conform to the specified file system.
FileSystemPath

Retrieves the full path of the item as modified to conform to the specified file system.
get__NewEnum

Retrieves a list of the CD and DVD devices installed on the computer.
get__NewEnum

Retrieves a list of child items contained within the directory in the file system image. (IFsiDirectoryItem.get__NewEnum)
get__NewEnum

Retrieves an IEnumVARIANT list of the named streams associated with a file in the file system image.
get__NewEnum

Retrieves the list of progress items from the collection. (IProgressItems.get__NewEnum)
get_ActiveDiscRecorder

Retrieves the unique identifier used to initialize the disc device.
get_AudioHasPreemphasis

Retrieves the value that specifies if an audio track has an additional pre-emphasis added to the audio data.
get_BlockCount

Retrieves the number of blocks in the progress item.
get_BlockRanges

Returns the list of sector ranges in the form of a safe array of variants of type VT_Dispatch.
get_BlockSize

Retrieves the size, in bytes, of a block of data.
get_BootImage

Retrieves a pointer to the boot image data stream.
get_BootImageOptions

Retrieves the boot image that you want to add to the file system image.
get_BootImageOptionsArray

Retrieves the boot option array that will be utilized to generate the file system image.
get_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free recording is enabled for CDR, CD-RW, and DVD-R media.
get_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free recording is enabled. (IDiscFormat2RawCD.get_BufferUnderrunFreeDisabled)
get_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free recording is enabled. (IDiscFormat2TrackAtOnce.get_BufferUnderrunFreeDisabled)
get_BurnVerificationLevel

Retrieves the current Burn Verification Level.
get_BytesPerSector

Retrieves the number of bytes to use for each sector during writing. The returned value indicates what the value previously set with IWriteEngine2::put_BytesPerSector, and does not return a current bytes per sector value for media.
get_ChangePoint

Retrieves the change point identifier.
get_ClientName

Retrieves the friendly name of the client. (IDiscFormat2Data.get_ClientName)
get_ClientName

Retrieves the friendly name of the client. (IDiscFormat2Erase.get_ClientName)
get_ClientName

Retrieves the friendly name of the client. (IDiscFormat2RawCD.get_ClientName)
get_ClientName

Retrieves the friendly name of the client. (IDiscFormat2TrackAtOnce.get_ClientName)
get_Count

Retrieves the number of the CD and DVD disc devices installed on the computer.
get_Count

Number of child items in the enumeration.
get_Count

Returns the number of the named streams associated with a file in the file system image.
get_Count

Retrieves the number of progress items in the collection.
get_CreateRedundantUdfMetadataFiles

Retrieves a property value that specifies if the UDF Metadata will be redundant in the file system image.
get_CreationTime

Retrieves the date and time that the directory or file item was created and added to the file system image.
get_CurrentAction

Retrieves the current write action being performed. (IDiscFormat2DataEventArgs.get_CurrentAction)
get_CurrentAction

Retrieves the current write action being performed. (IDiscFormat2RawCDEventArgs.get_CurrentAction)
get_CurrentAction

Retrieves the current write action being performed. (IDiscFormat2TrackAtOnceEventArgs.get_CurrentAction)
get_CurrentFeaturePages

Retrieves the list of feature pages of the device that are marked as current.
get_CurrentMediaStatus

Retrieves the current state of the media in the device.
get_CurrentPhysicalMediaType

Retrieves the type of media in the disc device. (IDiscFormat2Data.get_CurrentPhysicalMediaType)
get_CurrentPhysicalMediaType

Retrieves the type of media in the disc device. (IDiscFormat2Erase.get_CurrentPhysicalMediaType)
get_CurrentPhysicalMediaType

Retrieves the type of media in the disc device. (IDiscFormat2RawCD.get_CurrentPhysicalMediaType)
get_CurrentPhysicalMediaType

Retrieves the type of media in the disc device. (IDiscFormat2TrackAtOnce.get_CurrentPhysicalMediaType)
get_CurrentProfiles

Retrieves all MMC profiles of the device that are marked as current.
get_CurrentRotationTypeIsPureCAV

Retrieves the current rotational-speed control used by the recorder. (IDiscFormat2Data.get_CurrentRotationTypeIsPureCAV)
get_CurrentRotationTypeIsPureCAV

Retrieves the current rotational-speed control used by the recorder. (IDiscFormat2RawCD.get_CurrentRotationTypeIsPureCAV)
get_CurrentRotationTypeIsPureCAV

Retrieves the current rotational-speed control used by the recorder. (IDiscFormat2TrackAtOnce.get_CurrentRotationTypeIsPureCAV)
get_CurrentTrackNumber

Retrieves the current track number being written to the media.
get_CurrentWriteSpeed

Retrieves the drive's current write speed. (IDiscFormat2Data.get_CurrentWriteSpeed)
get_CurrentWriteSpeed

Retrieves the drive's current write speed. (IDiscFormat2RawCD.get_CurrentWriteSpeed)
get_CurrentWriteSpeed

Retrieves the drive's current write speed. (IDiscFormat2TrackAtOnce.get_CurrentWriteSpeed)
get_Data

Retrieves the data stream of the file's content.
get_DataSize

Retrieves the number of bytes in the file.
get_DataSize32BitHigh

Retrieves the most significant 32 bits of the IFsiFileItem::get_DataSize property.
get_DataSize32BitLow

Retrieves the least significant 32 bits of the IFsiFileItem::get_DataSize property.
get_Description

Retrieves the description in the progress item.
get_DeviceCanLoadMedia

Determines if the device can eject and subsequently reload media.
get_DigitalAudioCopySetting

Retrieves the value for the bit that represents the current digital audio copy setting on the resulting media. Please see the IMAPI_CD_TRACK_DIGITAL_COPY_SETTING enumeration for possible values.
get_DirectoryCount

Retrieves the number of directories in the file system image.
get_DisableConsumerDvdCompatibilityMode

Determines if a DVD recording session includes tasks that can increase the chance that a device can play the DVD. (Get)
get_DisableGaplessAudio

Retrieves the current value that specifies if "Gapless Audio" recording is disabled. This property defaults to a value of VARIANT_FALSE, which disables the use of "gapless" recording between consecutive audio tracks.
get_DiscId

Retrieves the disc volume name for this file system image.
get_DoNotFinalizeMedia

Determines if the media is left open for writing after writing the audio track. (Get)
get_ElapsedTime

Retrieves the total elapsed time of the write operation. (IDiscFormat2DataEventArgs.get_ElapsedTime)
get_ElapsedTime

Retrieves the total elapsed time of the write operation. (IDiscFormat2RawCDEventArgs.get_ElapsedTime)
get_ElapsedTime

Retrieves the total elapsed time of the write operation. (IDiscFormat2TrackAtOnceEventArgs.get_ElapsedTime)
get_Emulation

Retrieves the media type that the boot image is intended to emulate.
get_EndingSectorsPerSecond

Retrieves the estimated number of sectors per second that the recording device can write to the media at the end of the writing process.
get_EndLba

Retrieves the end sector of the range specified by the IBlockRange interface.
get_EnumFsiItems

Retrieves a list of child items contained within the directory in the file system image. (IFsiDirectoryItem.get_EnumFsiItems)
get_EnumNamedStreams

Creates a non-variant enumerator for the collection of the named streams associated with a file in the file system image.
get_EnumProgressItems

Retrieves the list of progress items from the collection. (IProgressItems.get_EnumProgressItems)
get_ExclusiveAccessOwner

Retrieves the name of the client application that has exclusive access to the device.
get_ExpectedTableOfContents

Retrieves the table of content for the audio tracks that were laid on the media within the track-writing session.
get_ExpectedTableOfContents

Gets the SCSI-form table of contents for the resulting disc.
get_ExtendedSeed

Retrieves an array of seed values used by the random number generator.
get_FileCount

Retrieves the number of files in the file system image.
get_FileSystemsSupported

Retrieves the list of file system types that a client can use to build a file system image.
get_FileSystemsToCreate

Retrieves the types of file systems to create when generating the result stream.
get_FirstBlock

Retrieves the first block number in this segment of the result image.
get_ForceMediaToBeClosed

Determines if further additions to the file system are prevented. (Get)
get_ForceOverwrite

Determines if the data writer must overwrite the disc on overwritable media types. (Get)
get_FreeMediaBlocks

Retrieves the maximum number of blocks available for the image.
get_FreeSectorsOnMedia

Retrieves the number of free sectors on the disc for incremental recording (without overwriting existing data).
get_FreeSectorsOnMedia

Retrieves the number of sectors available for adding a new track to the media.
get_FreeSectorsOnMedia

Retrieves the number of free sectors available on the media.
get_FreeSystemBuffer

Retrieves the number of unused bytes in the internal data buffer that is used for writing to disc.
get_FsiNamedStreams

Retrieves a collection of named streams associated with a file in the file system image.
get_FullErase

Determines the quality of the disc erasure. (Get)
get_FullPath

Retrieves the full path of the file or directory item in the file system image.
get_ImageSize

Retrieves the size of the boot image.
get_ImageStream

Retrieves the burn image stream.
get_ImportedVolumeName

Retrieves the volume name provided from an imported file system.
get_ImportRecorder

Retrieves the disc recorder to use to import one or more previous sessions.
get_InUse

Determines if this multi-session interface is the one you should use on the current media. (Get)
get_IsFirstDataSession

Determines if this session is the first data session on the media.
get_IsHidden

Determines if the item's hidden attribute is set in the file system image. (Get)
get_IsNamedStream

Determines if the item is a named stream.
get_ISO9660InterchangeLevel

Retrieves the ISO9660 compatibility level to use when creating the result image.
get_ISO9660InterchangeLevelsSupported

Retrieves the supported ISO9660 compatibility levels.
get_ISRC

Retrieves the International Standard Recording Code (ISRC) currently associated with the track. This property value defaults to NULL (or a zero-length string) and may only be set for tracks containing audio data.
get_IsRealTime

Retrieves the property value that specifies if a file item in the file system image is a 'Real-Time' or standard file.
get_IsSupportedEnvironment

Retrieves a value that determines if the environment contains one or more optical devices and the execution context has permission to access the devices.
get_IsSupportedOnCurrentMediaState

Determines if the multi-session type can write to the current optical media.
get_Item

Retrieves the unique identifier of the specified disc device.
get_Item

Retrieves the specified directory or file item from file system image.
get_Item

Retrieves a single named stream associated with a file in the file system image.
get_Item

Retrieves the specified progress item from the collection.
get_LastAccessedTime

Retrieves the date and time the directory or file item was last accessed in the file system image.
get_LastBlock

Retrieves the last block in this segment of the result image.
get_LastModifiedTime

Retrieves the date and time that the directory or file item was last modified in the file system image.
get_LastPossibleStartOfLeadout

Retrieves the last possible starting position for the leadout area.
get_LastReadLba

Retrieves the address of the sector most recently read from the burn image.
get_LastUsedUserSectorInImage

Retrieves the number of total used sectors on the current media, including any overhead between existing tracks.
get_LastWrittenAddress

Retrieves the last written address on the media.
get_LastWrittenAddressOfPreviousSession

Retrieves the last sector of the previous write session.
get_LastWrittenAddressOfPreviousSession

Retrieves the last sector written in the previous session on the media.
get_LastWrittenLba

Retrieves the address of the sector most recently written to the device.
get_LegacyDeviceNumber

Retrieves the legacy device number for a CD or DVD device.
get_Manufacturer

Retrieves the identifier of the manufacturer of the CD.
get_MediaCatalogNumber

Sets the Media Catalog Number (MCN) for the entire audio disc.
get_MediaHeuristicallyBlank

Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media).
get_MediaPhysicallyBlank

Determines if the current media is reported as physically blank by the drive.
get_MediaType

Retrieves type of media in the current drive.
get_ModifiedBlocks

Retrieves the list of modified blocks in the result image.
get_MultisessionInterfaces

Retrieves a list of available multi-session interfaces.
get_MultisessionInterfaces

Retrieves the list of multi-session interfaces for the optical media.
get_Name

Retrieves the name of the directory or file item in the file system image.
get_NextWritableAddress

Retrieves the location for the next write operation.
get_NextWritableAddress

Retrieves the next writable address on the media, including used sectors.
get_NumberOfExistingTracks

Retrieves the number of existing audio tracks on the media. (IDiscFormat2TrackAtOnce.get_NumberOfExistingTracks)
get_NumberOfExistingTracks

Retrieves the number of existing audio tracks on the media. (IRawCDImageCreator.get_NumberOfExistingTracks)
get_Path

Retrieves the logical path to an .iso image.
get_PlatformId

Retrieves the platform identifier that identifies the operating system architecture that the boot image supports.
get_PostgapAlreadyInImage

Determines if the data stream contains post-writing gaps. (Get)
get_ProductId

Retrieves the product ID of the device.
get_ProductRevision

Retrieves the product revision code of the device.
get_ProgressItems

Retrieves the progress item block mapping collection.
get_Recorder

Retrieves the recording device to use for the write operation. (IDiscFormat2Data.get_Recorder)
get_Recorder

Retrieves the recording device to use in the erase operation.
get_Recorder

Retrieves the recording device to use for the write operation. (IDiscFormat2RawCD.get_Recorder)
get_Recorder

Retrieves the recording device to use for the write operation. (IDiscFormat2TrackAtOnce.get_Recorder)
get_Recorder

Retrieves the recording device to use in the write operation.
get_RemainingTime

Retrieves the estimated remaining time of the write operation. (IDiscFormat2DataEventArgs.get_RemainingTime)
get_RemainingTime

Retrieves the estimated remaining time of the write operation. (IDiscFormat2RawCDEventArgs.get_RemainingTime)
get_RemainingTime

Retrieves the estimated remaining time of the write operation. (IDiscFormat2TrackAtOnceEventArgs.get_RemainingTime)
get_RequestedRotationTypeIsPureCAV

Retrieves the requested rotational-speed control type. (IDiscFormat2Data.get_RequestedRotationTypeIsPureCAV)
get_RequestedRotationTypeIsPureCAV

Retrieves the requested rotational-speed control type. (IDiscFormat2RawCD.get_RequestedRotationTypeIsPureCAV)
get_RequestedRotationTypeIsPureCAV

Retrieves the requested rotational-speed control type. (IDiscFormat2TrackAtOnce.get_RequestedRotationTypeIsPureCAV)
get_RequestedSectorType

Retrieves the requested data sector to use during write of the stream.
get_RequestedWriteSpeed

Retrieves the requested write speed. (IDiscFormat2Data.get_RequestedWriteSpeed)
get_RequestedWriteSpeed

Retrieves the requested write speed. (IDiscFormat2RawCD.get_RequestedWriteSpeed)
get_RequestedWriteSpeed

Retrieves the requested write speed. (IDiscFormat2TrackAtOnce.get_RequestedWriteSpeed)
get_ResultingImageType

Retrieves the value that specifies the type of image file that will be generated.
get_Root

Retrieves the root directory item.
get_RotationTypeIsPureCAV

Retrieves the supported rotational-speed control used by the recorder for the current media.
get_SectorCount

Retrieves the number of user sectors in this track.
get_SectorCount

Retrieves the number of sectors to write to the device in the current write operation.
get_SectorType

Retrieves the type of data provided for the sectors in this track. For more detail on the possible sector types, see IMAPI_CD_SECTOR_TYPE.
get_Seed

Retrieves the seed value used by the random number generator.
get_SessionStartBlock

Retrieves the starting block address for the recording session.
get_StageFiles

Indicates if the files being added to the file system image should be staged before the burn.
get_StartAddressOfPreviousSession

Retrieves the first sector of the previous write session.
get_StartAddressOfPreviousSession

Retrieves the first sector written in the previous session on the media.
get_StartingLba

Retrieves the LBA of the first user sectors in this track.
get_StartingSectorsPerSecond

Retrieves the estimated number of sectors per second that the recording device can write to the media at the start of the writing process.
get_StartingTrackNumber

Retrieves the starting track number.
get_StartLba

Retrieves the start sector of the range described by IBlockRange.
get_StartLba

Retrieves the starting logical block address (LBA) of the current write operation.
get_StartOfLeadout

Retrieves the value that defines the LBA for the start of the Leadout. This method can be utilized to determine if the image can be written to a piece of media by comparing it against the LastPossibleStartOfLeadout for the media.
get_StartOfLeadoutLimit

Retrieves the current StartOfLeadoutLimit property value. This value specifies if the resulting image is required to fit on a piece of media with a StartOfLeadout greater than or equal to the LBA.
get_StartOfNextSession

Retrieves the first sector of the next session.
get_Stream

Retrieves the IStream object associated with the .iso image.
get_StrictFileSystemCompliance

Determines the compliance level for creating and developing the file-system image. (Get)
get_SupportedFeaturePages

Retrieves the list of features that the device supports.
get_SupportedMediaTypes

Retrieves the media types that are supported by the current implementation of the IDiscFormat2 interface.
get_SupportedModePages

Retrieves the list of MMC mode pages that the device supports.
get_SupportedProfiles

Retrieves the list of MMC profiles that the device supports.
get_SupportedSectorTypes

Retrieves the supported data sector types for the current recorder.
get_SupportedWriteSpeedDescriptors

Retrieves a list of the detailed write configurations supported by the disc recorder and current media. (IDiscFormat2Data.get_SupportedWriteSpeedDescriptors)
get_SupportedWriteSpeedDescriptors

Retrieves a list of the detailed write configurations supported by the disc recorder and current media. (IDiscFormat2RawCD.get_SupportedWriteSpeedDescriptors)
get_SupportedWriteSpeedDescriptors

Retrieves a list of the detailed write configurations supported by the disc recorder and current media. (IDiscFormat2TrackAtOnce.get_SupportedWriteSpeedDescriptors)
get_SupportedWriteSpeeds

Retrieves a list of the write speeds supported by the disc recorder and current media. (IDiscFormat2Data.get_SupportedWriteSpeeds)
get_SupportedWriteSpeeds

Retrieves a list of the write speeds supported by the disc recorder and current media. (IDiscFormat2RawCD.get_SupportedWriteSpeeds)
get_SupportedWriteSpeeds

Retrieves a list of the write speeds supported by the disc recorder and current media. (IDiscFormat2TrackAtOnce.get_SupportedWriteSpeeds)
get_TotalBlocks

Retrieves the number of blocks in the result image.
get_TotalSectorsOnMedia

Retrieves the number of sectors on the media in the device.
get_TotalSectorsOnMedia

Retrieves the total sectors available on the media if writing one continuous audio track.
get_TotalSectorsOnMedia

Retrieves the total number of sectors on the media.
get_TotalSystemBuffer

Retrieves the size of the internal data buffer that is used for writing to disc.
get_TotalTime

Retrieves the estimated total time for write operation.
get_TrackIndexes

Retrieves the one-based index of the tracks on the disc.
get_TrackInfo

Retrieves an indexed property, which takes a LONG value with a range of 1 to 99 as the index to determine which track the user is querying. The returned object is then queried/set for the particular per-track property of interest.
get_TrackNumber

Retrieves the track number for this track.
get_UDFRevision

Retrieves the UDF revision level of the imported file system image.
get_UDFRevisionsSupported

Retrieves a list of supported UDF revision levels.
get_UsedBlocks

Retrieves the number of blocks in use.
get_UsedSectorsOnMedia

Retrieves the total number of used sectors on the media.
get_UsedSystemBuffer

Retrieves the number of used bytes in the internal data buffer that is used for writing to disc.
get_UseRestrictedCharacterSet

Determines if the file and directory names use a restricted character.
get_UseStreamingWrite12

Retrieves a value that indicates if the write operations use the WRITE12 or WRITE10 command.
get_VendorId

Retrieves the vendor ID for the device.
get_VolumeName

Retrieves the unique volume name associated with the device.
get_VolumeName

Retrieves the volume name for this file system image.
get_VolumeNameISO9660

Retrieves the volume name for the ISO9660 system image.
get_VolumeNameJoliet

Retrieves the volume name for the Joliet system image.
get_VolumeNameUDF

Retrieves the volume name for the UDF system image.
get_VolumePathNames

Retrieves a list of drive letters and NTFS mount points for the device.
get_WorkingDirectory

Retrieves the temporary directory in which stash files are built.
get_WriteInProgress

Retrieves a value that indicates whether the recorder is currently writing data to the disc.
get_WriteProtectStatus

Retrieves the current write protect state of the media in the device.
get_WriteSpeed

Retrieves the supported write speed for writing to the media.
get_WriteUnitSize

Retrieves the size of a writable unit on the media. (IMultisessionRandomWrite.get_WriteUnitSize)
get_WriteUnitSize

Retrieves the size of a writable unit on the media. (IMultisessionSequential2.get_WriteUnitSize)
GetActiveDiscMasterFormat

Retrieves the active disc recorder format. The active format specifies both the structure of the staged image file content (audio/data) and the COM interface that must be used to manipulate that staged image.
GetActiveDiscRecorder

Retrieves an interface pointer to the active disc recorder. The active disc recorder is the recorder where a burn will occur when RecordDisc is called.
GetAdapterDescriptor

Retrieves the adapter descriptor for the device.
GetAudioBlockSize

Retrieves the size, in bytes, of an audio block.
GetAvailableAudioTrackBlocks

Retrieves the current number of blocks that can be added to the track before an additional add will cause a failure for lack of space.
GetBasePnPID

Retrieves a base PnP string that can be used to consistently identify a specific class of device by make and model. The string can be used by applications to customize their behavior according to the specific recorder type.
GetByteAlignmentMask

Retrieves the byte alignment mask for the device.
GetDataBlockSize

Retrieves the size of a data block.
GetDefaultFileSystemForImport

Retrieves the file system to import by default.
GetDeviceDescriptor

Retrieves the device descriptor for the device.
GetDiscInformation

Retrieves the disc information from the media.
GetDisplayNames

Retrieves a formatted name for the recorder that can be displayed. The name consists of the manufacturer and product identifier of the device.
GetFeaturePage

Retrieves the specified feature page from the device.
GetJolietProperties

Retrieves a pointer to an IPropertyStorage interface that contains the Joliet properties.
GetMaximumNonPageAlignedTransferSize

Retrieves the maximum non-page-aligned transfer size for the device.
GetMaximumPageAlignedTransferSize

Retrieves the maximum page-aligned transfer size for the device.
GetModePage

Retrieves the specified mode page from the device.
GetPath

Retrieves a path to the device within the operating system. This path should be used in conjunction with the display name to completely identify an available disc recorder.
GetRecorderGUID

Retrieves the GUID of the physical disc recorder currently associated with the recorder object.
GetRecorderProperties

Retrieves a pointer to an IPropertyStorage interface.
GetRecorderState

Retrieves the disc recorder state.
GetRecorderType

Determines whether the disc recorder is a CD-R or CD-RW type device. This does not indicate the type of media that is currently inserted in the device.
GetSupportedFeaturePages

Retrieves the list of supported feature pages or the current feature pages of the device.
GetSupportedModePages

Retrieves the supported mode pages for the device.
GetSupportedProfiles

Retrieves the supported profiles or the current profiles of the device.
GetTotalAudioBlocks

Retrieves the total number of blocks available for staging audio tracks. The total includes all block types, including blocks that may need to be allocated for track gaps.
GetTotalAudioTracks

Retrieves the total number of tracks that have either been staged or are being staged.
GetTotalDataBlocks

Retrieves the total number of blocks available for staging a Joliet data disc.
GetTrackInformation

Retrieves the track information from the media.
GetUsedAudioBlocks

Retrieves the total number of audio blocks in use.
GetUsedDataBlocks

Retrieves the total number of data blocks that are in use.
IdentifyFileSystemsOnDisc

Retrieves a list of the different types of file systems on the optical media.
ImportFileSystem

Imports the default file system on the current disc.
ImportSpecificFileSystem

Import a specific file system from disc.
Initialize

Initializes this stream from two input streams.
Initialize

Initialize this interleaved stream from an array of input streams and interleave sizes.
Initialize2

Initializes this stream from an array of input streams.
InitializeDiscRecorder

Associates the object with the specified disc device.
IsCurrentMediaSupported

Determines if the current media in a supported recorder supports the given format.
IsRecorderSupported

Determines if the recorder supports the given format.
LockInChangePoint

Locks the file system information at the current change-point level.
Next

Retrieves a specified number of items in the enumeration sequence. (IEnumFsiItems.Next)
Next

Retrieves a specified number of items in the enumeration sequence. (IEnumProgressItems.Next)
NotifyAddProgress

Notifies an application of its progress in response to calls to IRedbookDiscMaster::AddAudioTrackBlocks or IJolietDiscMaster::AddData. Notifications are sent for the first and last steps, and at points in between.
NotifyBlockProgress

Notifies an application of its progress in burning a disc on the active recorder. Notifications are sent for the first and last blocks, and at points in between.
NotifyBurnComplete

Notifies an application that a call to IDiscMaster::RecordDisc has finished.
NotifyClosingDisc

Notifies the application that it is has started closing the disc. No further notifications are sent until the burn is finished.
NotifyDeviceAdded

Receives notification when an optical media device is added to the computer.
NotifyDeviceRemoved

Receives notification when an optical media device is removed from the computer.
NotifyEraseComplete

Notifies an application that a call to IDiscRecorder::Erase has finished.
NotifyPnPActivity

Notifies the application that there is a change to the list of valid disc recorders. (For example, a USB CD-R driver is removed from the system.).
NotifyPreparingBurn

Notifies the application that it is preparing to burn a disc. No further notifications are sent until the burn starts.
NotifyTrackProgress

Notifies an application that a track has started or finished during the burn of an audio disc.
Open

Opens an upper-level IMAPI object for access by a client application.
OpenExclusive

Opens a disc recorder for exclusive access.
PrepareMedia

Locks the current media for exclusive access. (IDiscFormat2RawCD.PrepareMedia)
PrepareMedia

Locks the current media for exclusive access. (IDiscFormat2TrackAtOnce.PrepareMedia)
ProbeSpecificFileSystem

Determines if a specific file system on the current media is appendable through the IMAPI.
ProgressAdvise

Registers an application for progress notifications.
ProgressItemFromBlock

Retrieves a progress item based on the specified block number.
ProgressItemFromDescription

Retrieves a progress item based on the specified file name.
ProgressUnadvise

Cancels progress notifications for an application.
put_AudioHasPreemphasis

Sets the value that specifies if an audio track has an additional pre-emphasis added to the audio data prior to being written to CD.
put_BootImageOptions

Sets the boot image that you want to add to the file-system image. This method creates a complete copy of the passed-in boot options by copying the stream from the supplied IBootOptions interface.
put_BootImageOptionsArray

Sets the boot option array that will be utilized to generate the file system image. Unlike IFileSystemImage::put_BootImageOptions, this method will not create a complete copy of each boot options array element, but instead use references to each element.
put_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free recording is enabled. (IDiscFormat2Data.put_BufferUnderrunFreeDisabled)
put_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free recording is enabled. (IDiscFormat2RawCD.put_BufferUnderrunFreeDisabled)
put_BufferUnderrunFreeDisabled

Determines if Buffer Underrun Free Recording is enabled.
put_BurnVerificationLevel

Sets the Burn Verification Level.
put_BytesPerSector

Sets the number of bytes to use for each sector during writing.
put_ClientName

Sets the friendly name of the client. (IDiscFormat2Data.put_ClientName)
put_ClientName

Sets the friendly name of the client. (IDiscFormat2Erase.put_ClientName)
put_ClientName

Sets the friendly name of the client. (IDiscFormat2RawCD.put_ClientName)
put_ClientName

Sets the friendly name of the client. (IDiscFormat2TrackAtOnce.put_ClientName)
put_CreateRedundantUdfMetadataFiles

Sets the property that specifies if the UDF Metadata will be redundant in the file system image.
put_CreationTime

Sets the date and time that the directory or file item was created and added to the file system image.
put_Data

Sets the data stream of the file's content.
put_DigitalAudioCopySetting

Sets the digital audio copy "Allowed" bit to one of three values on the resulting media. Please see the IMAPI_CD_TRACK_DIGITAL_COPY_SETTING enumeration for additional information on each possible value.
put_DisableConsumerDvdCompatibilityMode

Determines if a DVD recording session includes tasks that can increase the chance that a device can play the DVD. (Put)
put_DisableGaplessAudio

Sets the value that specifies if "Gapless Audio" recording is disabled. This property defaults to a value of VARIANT_FALSE, which disables the use of "gapless" recording between consecutive audio tracks.
put_DoNotFinalizeMedia

Determines if the media is left open for writing after writing the audio track. (Put)
put_Emulation

Sets the media type that the boot image is intended to emulate.
put_EndingSectorsPerSecond

Sets the estimated number of sectors per second that the recording device can write to the media at the end of the writing process.
put_ExtendedSeed

Sets a list of seed values for the random number generator and seeks to the start of stream.
put_FileSystemsToCreate

Sets the file systems to create when generating the result stream.
put_ForceMediaToBeClosed

Determines if further additions to the file system are prevented. (Put)
put_ForceOverwrite

Determines if the data writer must overwrite the disc on overwritable media types. (Put)
put_FreeMediaBlocks

Sets the maximum number of blocks available for the image.
put_FullErase

Determines the quality of the disc erasure. (Put)
put_InUse

Determines if this multi-session interface is the one you should use on the current media. (Put)
put_IsHidden

Determines if the item's hidden attribute is set in the file system image. (Put)
put_ISO9660InterchangeLevel

Sets the ISO9660 compatibility level of the file system image.
put_ISRC

Sets the International Standard Recording Code (ISRC) currently associated with the track. This property value defaults to NULL (or a zero-length string) and may only be set for tracks containing audio data.
put_IsRealTime

Sets the 'Real-Time' attribute of a file in a file system. This attribute specifies whether or not the content requires a minimum data-transfer rate when writing or reading, for example, audio and video data.
put_LastAccessedTime

Sets the date and time that the directory or file item was last accessed in the file system image.
put_LastModifiedTime

Sets the date and time that the item was last modified in the file system image.
put_Manufacturer

Sets an identifier that identifies the manufacturer or developer of the CD.
put_MediaCatalogNumber

Retrieves the Media Catalog Number (MCN) for the entire audio disc.
put_MultisessionInterfaces

Sets the list of multi-session interfaces for the optical media.
put_PlatformId

Sets the platform identifier that identifies the operating system architecture that the boot image supports.
put_PostgapAlreadyInImage

Determines if the data stream contains post-writing gaps. (Put)
put_Recorder

Sets the recording device to use for the write operation. (IDiscFormat2Data.put_Recorder)
put_Recorder

Sets the recording device to use in the erase operation.
put_Recorder

Sets the recording device to use for the write operation. (IDiscFormat2RawCD.put_Recorder)
put_Recorder

Sets the recording device to use for the write operation. (IDiscFormat2TrackAtOnce.put_Recorder)
put_Recorder

Sets a recording device for the write operation.
put_RequestedSectorType

Sets the requested data sector to use for writing the stream.
put_ResultingImageType

Sets the value that defines the type of image file that will be generated.
put_Seed

Sets the seed value used by the random number generator and seeks to the start of stream.
put_SessionStartBlock

Sets the starting block address for the recording session.
put_StageFiles

Determines if the files being added to the file system image should be staged before the burn.
put_StartingSectorsPerSecond

Sets the estimated number of sectors per second that the recording device can write to the media at the start of the writing process.
put_StartingTrackNumber

Sets the starting track number.
put_StartOfLeadoutLimit

Sets the StartOfLeadoutLimit property value.
put_StrictFileSystemCompliance

Determines the compliance level for creating and developing the file-system image. (Put)
put_UDFRevision

Sets the UDF revision level of the file system image.
put_UseRestrictedCharacterSet

Determines if file and directory names should be restricted to using only CP_ANSI characters.
put_UseStreamingWrite12

Sets a value that indicates if the write operations use the WRITE12 or WRITE10 command.
put_VolumeName

Sets the volume name for this file system image.
put_WorkingDirectory

Sets the temporary directory in which stash files are built.
QueryCancel

Checks whether an AddData, AddAudioTrackBlocks, or RecordDisc operation should be canceled.
QueryMediaInfo

Retrieves information about the currently mounted media, such as the total number of blocks used on the media.
QueryMediaType

Detects the type of media currently inserted in the recorder, if any.
ReadDvdStructure

Reads a DVD structure from the media.
RecordDisc

Burns the staged image to media in the active disc recorder.
ReleaseExclusiveAccess

Releases exclusive access to the device.
ReleaseMedia

Closes a Disc-At-Once (DAO) writing session of a raw image and releases the lock.
ReleaseMedia

Closes the track-writing session and releases the lock.
Remove

Removes the specified item from the file system image.
RemoveStream

Removes a named stream association with a file.
RemoveTree

Remove the specified directory tree from the file system image.
Reset

Resets the enumeration sequence to the beginning. (IEnumFsiItems.Reset)
Reset

Resets the enumeration sequence to the beginning. (IEnumProgressItems.Reset)
RollbackToChangePoint

Reverts the image back to the specified change point.
SendCommandGetDataFromDevice

Sends a MMC command to the recording device requesting data from the device.
SendCommandNoData

Sends a MMC command to the recording device. Use this function when no data buffer is sent to nor received from the device.
SendCommandSendDataToDevice

Sends a MMC command and its associated data buffer to the recording device.
SendDvdStructure

Sends a DVD structure to the media.
SetActiveDiscMasterFormat

Sets the currently active disc recorder format. The active format specifies both the structure of the staged image file content (audio/data) and the COM interface that must be used to manipulate that staged image.
SetActiveDiscRecorder

Selects an active disc recorder. The active disc recorder is the recorder where a burn will occur when RecordDisc is called.
SetJolietProperties

Sets the Joliet properties.
SetMaxMediaBlocksFromDevice

Set maximum number of blocks available based on the capabilities of the recorder.
SetModePage

Sets the mode page data for the device.
SetPath

Sets the Path property value with a logical path to an .iso image.
SetRecorderProperties

Accepts an IPropertyStorage pointer for an object with all the properties that the application wishes to change. Sparse settings are supported.
SetStream

Sets the Stream property with the IStream object associated with the .iso image.
SetWriteSpeed

Sets the write speed of the disc recorder. (IDiscFormat2Data.SetWriteSpeed)
SetWriteSpeed

Sets the write speed of the disc recorder. (IDiscFormat2RawCD.SetWriteSpeed)
SetWriteSpeed

Sets the write speed of the disc recorder. (IDiscFormat2TrackAtOnce.SetWriteSpeed)
Skip

Skips a specified number of items in the enumeration sequence. (IEnumFsiItems.Skip)
Skip

Skips a specified number of items in the enumeration sequence. (IEnumProgressItems.Skip)
Update

Implement this method to receive progress notification of the current write operation. (DDiscFormat2DataEvents.Update)
Update

Implement this method to receive progress notification of the current erase operation.
Update

Implement this method to receive progress notification of the current raw-image write operation.
Update

Implement this method to receive progress notification of the current track-writing operation.
Update

Implement this method to receive progress notification of the current write operation. (DWriteEngine2Events.Update)
Update

Implement this method to receive progress notification of the current write operation. The notifications are sent when copying the content of a file or while adding directories or files to the file system image.
UpdateImport

Receives import notification for every file and directory item imported from an optical medium.
Validate

Determines if the provided .iso image is valid.
Write

Writes the data stream to the device.
WriteMedia

Writes a DAO-96 raw image to the blank media using MSF 95:00:00 as the starting address.
WriteMedia2

Writes a DAO-96 raw image to the blank media using a specified starting address.
WriteSection

Writes a data stream to the current recorder.

Interfaces

 
DDiscFormat2DataEvents

Implement this interface to receive notifications of the current write operation. (DDiscFormat2DataEvents)
DDiscFormat2EraseEvents

Implement this interface to receive notifications of the current erase operation.
DDiscFormat2RawCDEvents

Implement this interface to receive notifications of the current raw-image write operation.
DDiscFormat2TrackAtOnceEvents

Implement this interface to receive notifications of the current track-writing operation.
DDiscMaster2Events

Implement this interface to receive notification when a CD or DVD device is added to or removed from the computer.
DFileSystemImageEvents

Implement this interface to receive notifications of the current write operation. (DFileSystemImageEvents)
DFileSystemImageImportEvents

Use this interface to receives notifications regarding the current file system import operation.
DWriteEngine2Events

Implement this interface to receive notifications of the current write operation. (DWriteEngine2Events)
IBlockRange

Use this interface to retrieve information about a single continuous range of sectors on the media. This interface is typically used together with the IBlockRangeList interface to describe a collection of sector ranges.
IBlockRangeList

Use this interface to retrieve a list of continuous sector ranges on the media. This interface is used to describe the sectors that need to be updated on a rewritable disc when a new logical session is recorded.
IBootOptions

Use this interface to specify the boot image to add to the optical disc. A boot image contains one or more sectors of code used to start the computer.
IBurnVerification

Use this interface with IDiscFormat2Data or IDiscFormat2TrackAtOnce to get or set the Burn Verification Level property which dictates how burned media is verified for integrity after the write operation.
IDiscFormat2

This is a base interface. Use the following interfaces which inherit this interface IDiscFormat2Data, IDiscFormat2Erase, IDiscFormat2TrackAtOnce, IDiscFormat2RawCD
IDiscFormat2Data

Use this interface to write a data stream to a disc.
IDiscFormat2DataEventArgs

Use this interface to retrieve information about the current write operation. (IDiscFormat2DataEventArgs)
IDiscFormat2Erase

Use this interface to erase data from a disc.
IDiscFormat2RawCD

Use this interface to write raw images to a disc device using Disc At Once (DAO) mode (also known as uninterrupted recording).
IDiscFormat2RawCDEventArgs

Use this interface to retrieve information about the current write operation. (IDiscFormat2RawCDEventArgs)
IDiscFormat2TrackAtOnce

Use this interface to write audio to blank CD-R or CD-RW media in Track-At-Once mode.
IDiscFormat2TrackAtOnceEventArgs

Use this interface to retrieve information about the current write operation. (IDiscFormat2TrackAtOnceEventArgs)
IDiscMaster

The IDiscMaster interface allows an application to reserve an image mastering API, enumerate disc mastering formats and disc recorders supported by an image mastering object, and start a simulated or actual burn of a disc.
IDiscMaster2

Use this interface to enumerate the CD and DVD devices installed on the computer.
IDiscMasterProgressEvents

The IDiscMasterProgressEvents interface provides a single interface for all callbacks that can be made from IMAPI to an application.
IDiscRecorder

The IDiscRecorder interface enables access to a single disc recorder device, labeled the active disc recorder. An IMAPI object such as MSDiscMasterObj maintains an active disc recorder.
IDiscRecorder2

This interface represents a physical device. You use this interface to retrieve information about a CD and DVD device installed on the computer and to perform operations such as closing the tray or eject the media.
IDiscRecorder2Ex

This interface represents a physical device.
IEnumFsiItems

Use this interface to enumerate the child directory and file items for a FsiDirectoryItem object.
IEnumProgressItems

Use this interface to enumerate a collection of progress items.
IFileSystemImage

Use this interface to build a file system image, set session parameter, and import or export an image.
IFileSystemImage2

Use this interface to write multiple boot entries or boot images required for the EFI/UEFI support. For example, boot media with boot straps for both Windows XP and Windows Vista.
IFileSystemImage3

Use this interface to set or check the metadata and metadata mirror files in a UDF file system (rev 2.50 and later) to determine redundancy.
IFileSystemImageResult

Use this interface to get information about the burn image, the image data stream, and progress information.
IFileSystemImageResult2

The IFileSystemImageResult2 interface allows the data recorder object to retrieve information about modified blocks in images created for rewritable discs.
IFsiDirectoryItem

Use this interface to add items to or remove items from the file-system image.
IFsiDirectoryItem2

Use this interface to add a directory tree, which includes all sub-directories, files, and associated named streams to a file system image.
IFsiFileItem

Use this interface to identify the file size and data stream of the file contents.
IFsiFileItem2

Use this interface to add, remove and enumerate named streams associated with a file. This interface also provides access to the 'Real-Time' attribute of a file.
IFsiItem

Base interface containing properties common to both file and directory items.
IFsiNamedStreams

Use this interface to enumerate the named streams associated with a file in a file system image.
IIsoImageManager

Use this interface to verify if an existing .iso file contains a valid file system for burning.
IJolietDiscMaster

The IJolietDiscMaster interface enables the staging of a CD data disc.
IMultisession

Base interface containing properties common to derived multisession interfaces.
IMultisessionRandomWrite

Use this interface to retrieve information about the current state of media allowing random writes and not supporting the concept of physical sessions.
IMultisessionSequential

Use this interface to retrieve information about the previous import session on a sequentially recorded media, if the media contains a previous session.
IMultisessionSequential2

Use this interface to retrieve information about the size of a writable unit on sequentially recorded media.
IProgressItem

Use this interface to retrieve block information for one segment of the result file image.
IProgressItems

Use this interface to enumerate the progress items in a result image.
IRawCDImageCreator

Use this interface to create a RAW CD image for use in writing to CD media in Disc-at-Once (DAO) mode. Images created with this interface can be written to CD media using the IDiscFormat2RawCD interface.
IRawCDImageTrackInfo

Use this interface to track per-track properties that are applied to CD media.
IRedbookDiscMaster

The IRedbookDiscMaster interface enables the staging of an audio CD image. It represents one of the formats supported by MSDiscMasterObj, and it allows the creation of multi-track audio discs in Track-at-Once mode (fixed-size audio gaps).
IStreamConcatenate

Use this interface to combine several data streams into a single stream.
IStreamInterleave

Use this interface to combine several data streams into a single stream by alternately interspersing portions of each.
IStreamPseudoRandomBased

Use this interface to generate a read-only data stream whose data is initialized with pseudo-random data (not cryptographically safe). You must call the SetSize method to set the requested size of the stream.
IWriteEngine2

Use this interface to write a data stream to a device.
IWriteEngine2EventArgs

Use this interface to retrieve information about the current write operation. This interface is passed to the DWriteEngine2Events::Update method that you implement.
IWriteSpeedDescriptor

Use this interface retrieve detailed write configurations supported by the disc recorder and current media, for example, the media type, write speed, rotational-speed control type.