Upgraded to 7.2.20. After more accurate analisys, the problem seems related to this call:
Code:
[DllImport("StarBurn.dll", CharSet = CharSet.Ansi)]
public static extern EXCEPTION_NUMBER
StarBurn_CdvdBurnerGrabber_GetTOCInformation(int
CdvdBurnerGrabber, StringBuilder pExceptionText,
int ExceptionTextSize, ref int SystemError,
ref CDB_FAILURE_INFORMATION PCDB_FAILURE_INFORMATION,
ref TOC_INFORMATION PTOC_INFORMATION);
I suppose TOC_INFORMATION is the key.
My TOC_INFORMATION declaration is:
Code:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TOC_INFORMATION
{
public Byte IsValid;
public Byte IsDVD;
public UInt16 ProtectedDVDRegions;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=5, ArraySubType=UnmanagedType.AsAny)]
public Byte[] BusKeyForDiscKey;
public Byte NumberOfSessions;
public Byte NumberOfTracks;
public Byte NumberOfUnsortedEntries;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3400, ArraySubType = UnmanagedType.AsAny)]
public Byte[] my_TOC_ENTRY; //TOC_ENTRY
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1100, ArraySubType = UnmanagedType.AsAny)]
public Byte[] my_FULL_TOC_ENTRY_RAW; //FULL_TOC_ENTRY_RAW
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1100, ArraySubType = UnmanagedType.AsAny)]
public Byte[] my_FULL_TOC_ENTRY_RAW__Unsorted; //FULL_TOC_ENTRY_RAW
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TOC_ENTRY
{
public Byte IsValid;
public Byte TrackNumber;
public Byte SessionNumber;
public Int32 StartingLBA;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=3, ArraySubType=UnmanagedType.AsAny)]
public Byte[] StartingMSF;
public Int32 EndingLBA;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=3, ArraySubType=UnmanagedType.AsAny)]
public Byte[] EndingMSF;
public Byte IsMCNAvailable;
public Byte IsISRCAvailable;
public Byte IsFourChannelsAudio;
public Byte IsPreEmphasisAudio;
public Byte IsData;
public Byte IsAudio;
public Byte IsDigitalCopyProhibited;
public Byte TrackMode;
public Byte MODE2Form;
public UInt32 LBSizeInBytes;
public Int32 Index00;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct FULL_TOC_ENTRY_RAW
{
public Byte SessionNumber;
public Byte CONTROL_ADR; // :4, :4
public Byte TNO;
public Byte POINT;
public Byte Min;
public Byte Sec;
public Byte Frame;
public Byte Zero;
public Byte PMIN;
public Byte PSEC;
public Byte PFRAME;
}
thanks a lot for support
Massimo