1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /******************************************************************************
- |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- |* PARTICULAR PURPOSE.
- |*
- |* Copyright 1995-2005 Nero AG. All Rights Reserved.
- |*-----------------------------------------------------------------------------
- |* NeroSDK / NeroAPI
- |*
- |* PROGRAM: NeroPacketWriting.h
- |*
- |* PURPOSE: This file defines a lowlevel packetwriting/MRW API for NeroAPI
- ******************************************************************************/
- #ifndef NEROPACKETWRITING_H
- #define NEROPACKETWRITING_H
- #include "NeroAPI.h"
- #if defined(__BORLANDC__)
- // NEROAPI expects structs to be 8byte aligned
- #pragma pack(push, 8)
- // tell Borland C++ Builder to treat enums as int
- #pragma option push -b
- #endif
- #ifdef __cplusplus
- class INeroFileSystemBlockAccess;
- class INeroFileSystemBlockReader;
- extern "C" {
- #else
- typedef void INeroFileSystemBlockAccess;
- typedef void INeroFileSystemBlockReader;
- #endif
- typedef enum
- {
- eNoWriting =0x0000, /* Use this to instantiate an INeroFileSystemBlockAccess object for read-only access */
- ePacketWriting =0x0001, /* Use this for DVD+RW,DVD-RW,CD-RW media in non-MRW mode */
- eManagedMRW =0x0002, /* Use this for defective managed MRW mode for all media types */
- eRawMRW =0x0004, /* Use this for raw MRW mode (defective management turned off) */
- eIllegalAccessMode =0xffffffff
- } AccessMode;
- /*
- // Use the following two functions to obtain a block reader/writer to a specified NeroAPI device.
- // Please note that ownership of the aDeviceHandle is *not* transferred to the block writer/reader so you're
- // still responsible to dispose of the device handle after disposing of the writer/reader interface.
- //
- // Please note that only one object created by either NeroCreateBlockWriterInterface or
- // NeroCreateBlockReaderInterface may exist at a time. Also make sure to delete the object before using
- // the referred drive for another purpose (e.g. importing multisession data, starting a recording- or
- // digital audio extraction process).
- // Opening a secondary device handle for the drive is *not* sufficient!
- */
- NEROAPI_API INeroFileSystemBlockAccess* NADLL_ATTR NeroCreateBlockWriterInterface(NERO_DEVICEHANDLE aDeviceHandle,AccessMode eAccessMode);
- NEROAPI_API INeroFileSystemBlockReader* NADLL_ATTR NeroCreateBlockReaderInterface(NERO_DEVICEHANDLE aDeviceHandle,AccessMode eAccessMode);
- typedef enum
- {
- eIAReadOnly = 0x0000, // Read-only access to the image/partition
- eIAInMemoryPatching = 0x0001, // Images will be changed in-memory only, without applying the changes to the image/partition
- // this value was formerly known as eIAReadWrite
- eIAReadWriteAccess = 0x0002, // Read/Write access to the image/partition
- eIAIllegalAccessMode = 0xffffffff
- } ImageAccessMode;
- /*
- // Create a block access interface for the specified image file
- // Instead of an image file, you may pass a drive letter
- // here to read from a specific device supported by the operating system
- */
- NEROAPI_API INeroFileSystemBlockAccess* NADLL_ATTR NeroCreateBlockAccessFromImage(const char *szFilename, ImageAccessMode eAccessMode);
- /*
- // This function will return a DWORD mask containing values as declared in enum AccessMode.
- // Use ((result&eDesiredMode)!=0) to determine whether a specific mode is supported.
- */
- NEROAPI_API DWORD NADLL_ATTR NeroGetSupportedAccessModesForDevice(NERO_DEVICEHANDLE aDeviceHandle);
- #ifdef __cplusplus
- }
- #endif
- #if defined(__BORLANDC__)
- #pragma pack(pop)
- #pragma option pop
- #endif
- #endif // NEROPACKETWRITING_H
|