StarBurn SDK (Software Development Kit)
ContentsIndexHome
PreviousUpNext
StarBurn_ISO9660JolietFileTree_GetFileSizeInUCHARs Function
C++
__stdcall STARBURN_IMPEX_API EXCEPTION_NUMBER StarBurn_ISO9660JolietFileTree_GetFileSizeInUCHARs(IN PVOID p__PVOID__ISO9660JolietFileTree, IN PVOID p__PVOID__ISO9660JolietFileTreeNode, OUT PLARGE_INTEGER p__PLARGE_INTEGER__FileSizeInUCHARs);
Parameters 
Description 
IN PVOID p__PVOID__ISO9660JolietFileTree 
Pointer to the ISO9660 or Joliet file tree object that toolkit allocated during call to StarBurn_ISO9660JolietFileTree_Create().
 
IN PVOID p__PVOID__ISO9660JolietFileTreeNode 
Pointer to the ISO9660 or Joliet file tree node object that is either result of previous tree node kids enumeration with StarBurn_ISO9660JolietFileTree_GetFirstKid() and StarBurn_ISO9660JolietFileTree_GetNextKid() or the result of call to StarBurn_ISO9660JolietFileTree_GetRoot(). The function is valid only for nodes that correspond to files.
 
OUT PLARGE_INTEGER p__PLARGE_INTEGER__FileSizeInUCHARs 
Pointer to the variable to receive ISO9660 or Joliet file tree node file size in UCHARs. 

Execution status.

This function returns ISO9660 or Joliet file tree file size in UCHARs.

This call is identical to the StarBurn_ISO9660JolietFileTree_GetNodePowerInUCHARs(...) except it has a bit different semantics.

This example allocates Joliet file tree, get root node, gets file size in UCHARs and destroys it (tree) after it's not needed any more. 

 

// Somewhere in the data region
PVOID l__PVOID__FileTree;
EXCEPTION_NUMBER l__EXCEPTION_NUMBER;
ULONG l__ULONG__TreeNodes;
ULONG l__ULONG__SystemError;
CHAR l__CHAR__ExceptionText[ 1024 ];
PVOID l__PVOID__RootNode;
LARGE_INTEGER l__LARGE_INTEGER__FileSizeInUCHARs;

// Prepare exception text buffer
RtlZeroMemory(
    &l__CHAR__ExceptionText,
    sizeof( l__CHAR__ExceptionText )
    );

// Try to create Joliet file tree
l__EXCEPTION_NUMBER =
StarBurn_ISO9660JolietFileTree_Create(
    &l__PVOID__FileTree,
    ( PCHAR )( &l__CHAR__ExceptionText ),
    sizeof( l__CHAR__ExceptionText ),
    &l__ULONG__Status,
    ( PCALLBACK )( StarBurn_Callback ),
    ( PVOID )( &l__LONG__TreeNodes ),
    TRUE,
    FALSE,
    FILE_TREE_JOLIET
    );

// Check for correct reply
if (  l__EXCEPTION_NUMBER != EN_SUCCESS )
{
// Handle error here...
}

// Add directories or files with the help of the StarBurn_ISO9660JolietFileTree_Add here...

// Get root node here
l__PVOID__RootNode =
StarBurn_ISO9660JolietFileTree_GetRoot( l__PVOID__FileTree );

// Check for correct response
if ( l__PVOID__RootNode == NULL )
{
// Handle error here...
}

// Get file size in UCHARs here
l__EXCEPTION_NUMBER =
StarBurn_ISO9660JolietFileTree_GetFileSizeInUCHARs(
    l__PVOID__FileTree,
    l__PVOID__RootNode,
    &l__LARGE_INTEGER__FileSizeInUCHARs
    );

// Do something with Joliet file tree root node here...

// Destroy the Joliet file tree
StarBurn_Destroy( &l__PVOID__FileTree );

// Just check for pointer (paranoid?)
if ( l__PVOID__FileTree != NULL )
{
// Handle error here...
}