Rocket Division Software
http://www.starburnsoftware.com/forum/

Problem initializing ISO9660JolietFileTree root folder
http://www.starburnsoftware.com/forum/starburn-sdk-f3/problem-initializing-iso9660jolietfiletree-root-folder-t1225.html
Page 1 of 1

Author:  janus79fo [ Wed Dec 26, 2007 1:50 pm ]
Post subject:  Problem initializing ISO9660JolietFileTree root folder

I'm trying to run the code below and I keep getting this error:

// >Unhandled exception at 0x005a8ddd in CppBurnerTest.exe:
// >0xC0000005: Access violation reading location 0xffffffff.

When StarBurn_ISO9660JolietFileTree_Add is called.

What is wrong? It seems like I'm doing exactly then same as in the c++ "DataBurmer" sample.

#include "stdafx.h"
#include "DeviceFinder.h"
#include "StarBurnKey.h"


// DEFINES ////////////////////////////////////////////////////////////////////////////////////////

#define STORE_PACKET_SIZE_IN_UCHARS 65536

// GLOBALS ////////////////////////////////////////////////////////////////////////////////////////

LONG g_treeNodes = 0;
LARGE_INTEGER g_LARGE_INTEGER_LastWrittenPercent;
LARGE_INTEGER g_LARGE_INTEGER_FileSizeInLBs;
LARGE_INTEGER g_LARGE_INTEGER_FileSizeInUCHARs;
LARGE_INTEGER g_LARGE_INTEGER_LBsWritten;
LARGE_INTEGER g_LARGE_INTEGER_CurrentPercent;
ULONG g_waitTimeInMs = 0;
PNAME_COLLISION_INFO g_PNAME_COLLISION_INFO = NULL;
ULONG g_trackPaddingSizeInLBs = 0;
ULONG g_trackPaddingLeftInLBs = 0;

LONG g_treeLevel = 0;
PVOID g_ISO9660JolietFileTree = NULL;
PVOID g_burnerGrabber = NULL;
ULONG g_status = ERROR_GEN_FAILURE;
CHAR g_exceptionText[1024];
EXCEPTION_NUMBER g_EXCEPTION_NUMBER = EN_SUCCESS;
CDB_FAILURE_INFORMATION g_CDB_FAILURE_INFORMATION;
STARBURN_TRACK_INFORMATION g_STARBURN_TRACK_INFORMATION;
STARBURN_DISC_INFORMATION g_STARBURN_DISC_INFORMATION;
CHAR g_vendorID[1024];
CHAR g_productID[1024];
CHAR g_productRevisionLevel[1024];
ULONG g_bufferSizeInUCHARs = 0;
BOOLEAN g_isBUPEnabled = FALSE;
BOOLEAN g_isBUPSupported = FALSE;
ULONG g_currentReadSpeed = 0;
ULONG g_maximumReadSpeed = 0;
ULONG g_currentWriteSpeed = 0;
ULONG g_maximumWriteSpeed = 0;
BOOLEAN g_isSendOPCSuccessful = FALSE;
CHAR g_newRootName[MAX_PATH];
INT g_iNT_ScanIndex = 0;
DISC_TYPE g_DISC_TYPE = DISC_TYPE_UNKNOWN;
PVOID g_rootNode = NULL;
PVOID g_newNode = NULL;
BOOLEAN g_isTrackAtOnce = FALSE;
BOOLEAN g_isSessionAtOnce = FALSE;
BOOLEAN g_isDiscAtOncePQ = FALSE;
BOOLEAN g_isDiscAtOnceRawPW = FALSE;
UCHAR g_trackNumber = 0;
UCHAR g_lastTrack = 0;

BOOL g_findAspi;
CArray<CDDVDINFO, CDDVDINFO&>* g_aspiDevicesFound = NULL;
CArray<CDDVDINFO, CDDVDINFO&>* g_sptiDevicesFound = NULL;
CDeviceFinder g_aspiDeviceFinder;
CDeviceFinder g_sptiDeviceFinder;

// CALLBACKS //////////////////////////////////////////////////////////////////////////////////////

VOID _cdecl Callback(IN CALLBACK_NUMBER p_CALLBACK_NUMBER, IN PVOID p_CallbackContext, IN PVOID p_CallbackSpecial1, IN PVOID p_CallbackSpecial2)
{
}

// INTERNAL METHODS ///////////////////////////////////////////////////////////////////////////////

bool Initialize()
{
g_EXCEPTION_NUMBER = StarBurn_UpStartEx((PVOID)(&g__UCHAR__RegistrationKey), sizeof(g__UCHAR__RegistrationKey));
return (g_EXCEPTION_NUMBER == EN_SUCCESS);
}

bool AddFile(const char* sourcefilepath, const char* destinationfilepath)
{
g_EXCEPTION_NUMBER = StarBurn_ISO9660JolietFileTree_Add(g_ISO9660JolietFileTree,
( PCHAR )( &g_exceptionText ), sizeof( g_exceptionText ),
&g_status, (PCHAR)sourcefilepath, (PCHAR)destinationfilepath,
FILE_TIME_LAST_WRITE, &g_rootNode, &g_newNode);

// >Unhandled exception at 0x005a8ddd in CppBurnerTest.exe:
// >0xC0000005: Access violation reading location 0xffffffff.

if (g_EXCEPTION_NUMBER != EN_SUCCESS)
{
return false;
}

g_EXCEPTION_NUMBER = StarBurn_ISO9660JolietFileTree_Add(g_ISO9660JolietFileTree, (PCHAR)(&g_exceptionText), sizeof(g_exceptionText), &g_status, (PCHAR)sourcefilepath, (PCHAR)destinationfilepath, FILE_TIME_LAST_WRITE, &g_rootNode, NULL);
return (g_EXCEPTION_NUMBER == EN_SUCCESS);
}

bool CreateRootNode(bool isnewdisc, const char* rootfoldername)
{
if (g_ISO9660JolietFileTree != NULL)
{
StarBurn_Destroy(&g_ISO9660JolietFileTree);
g_ISO9660JolietFileTree = NULL;
}

g_EXCEPTION_NUMBER = StarBurn_ISO9660JolietFileTree_Create(
&g_ISO9660JolietFileTree, (PCHAR)(&g_exceptionText), sizeof(g_exceptionText),
&g_status, (PCALLBACK)(Callback), (PVOID)(&g_treeNodes),
TRUE, FALSE, TRUE, FILE_TREE_JOLIET);

if (g_EXCEPTION_NUMBER != EN_SUCCESS)
{
return false;
}

if (isnewdisc)
{
AddFile(NULL, rootfoldername);
}
else
{
g_EXCEPTION_NUMBER = StarBurn_ISO9660JolietFileTree_ImportTrack(g_burnerGrabber, g_rootNode, 1, FALSE, (PCHAR)(&g_exceptionText), sizeof(g_exceptionText), &g_status);
if (g_EXCEPTION_NUMBER != EN_SUCCESS)
{
return false;
}
}

g_rootNode = StarBurn_ISO9660JolietFileTree_GetRoot(g_ISO9660JolietFileTree);
if (g_rootNode == NULL)
{
return false;
}

return true;
}

int _tmain(int argc, _TCHAR* argv[])
{
bool initOk = Initialize();
bool createRootNodeOk = CreateRootNode(true, "RootFolder");

return 0;
}

Author:  andrey(staff) [ Wed Dec 26, 2007 3:33 pm ]
Post subject: 

Hello,

Please send to me whole your project and StarBurn.log with this error.
How to generate StarBurn.log you can read in StarBurn SDK F.A.Q. document on page 3.

Author:  janus79fo [ Wed Dec 26, 2007 3:54 pm ]
Post subject: 

Hi,

Changed _cdecl to __stdcall in the Callback.

VOID _cdecl Callback(IN CALLBACK_NUMBER p_CALLBACK_NUMBER, IN PVOID p_CallbackContext, IN PVOID p_CallbackSpecial1, IN PVOID p_CallbackSpecial2)
{
}

to

VOID ___stdcall Callback(IN CALLBACK_NUMBER p_CALLBACK_NUMBER, IN PVOID p_CallbackContext, IN PVOID p_CallbackSpecial1, IN PVOID p_CallbackSpecial2)
{
}

Yikes, that one was hard to spot.

Author:  andrey(staff) [ Wed Dec 26, 2007 5:19 pm ]
Post subject: 

janus79fo wrote:
Hi,

Changed _cdecl to __stdcall in the Callback.

VOID _cdecl Callback(IN CALLBACK_NUMBER p_CALLBACK_NUMBER, IN PVOID p_CallbackContext, IN PVOID p_CallbackSpecial1, IN PVOID p_CallbackSpecial2)
{
}

to

VOID ___stdcall Callback(IN CALLBACK_NUMBER p_CALLBACK_NUMBER, IN PVOID p_CallbackContext, IN PVOID p_CallbackSpecial1, IN PVOID p_CallbackSpecial2)
{
}

Yikes, that one was hard to spot.


Hello,

It's good! Your problem is resolved?

Author:  janus79fo [ Wed Dec 26, 2007 5:31 pm ]
Post subject: 

Yes problem solved :D

Author:  anton (staff) [ Thu Dec 27, 2007 7:19 am ]
Post subject: 

We *LOVE* self-supporting customers :)

janus79fo wrote:
Yes problem solved :D

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/