StarBurn SDK (Software Development Kit) |
__stdcall STARBURN_IMPEX_API LONG StarBurn_ISO9660JolietFileTree_GetNodePowerInUCHARs(IN PVOID p__PVOID__ISO9660JolietFileTree, IN PVOID p__PVOID__ISO9660JolietFileTreeNode, OUT PLONG p__PLONG__HighPartSizeInUCHARs);
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(). |
OUT PLONG p__PLONG__HighPartSizeInUCHARs | Pointer to the variable to receive high part (32 bits) of the node power (file size) in UCHARs. |
Low part (32 bits ) of the node power (file size ) in UCHARs. This function cannot fail.
This function returns ISO9660 or Joliet file tree node power (file size) in UCHARs.
Node power (file size) in UCHARs can be used to build correct tree to visualise enumeration of all the kids and walk down the tree. This call is identical to the StarBurn_ISO9660JolietFileTree_GetFileSizeInUCHARs(...) except the semantics.
This example allocates Joliet file tree, get root node, gets node power 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__NodePowerInUCHARs; // 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 node power in UCHARs here l__LARGE_INTEGER__NodePowerInUCHARs.LowPart = StarBurn_ISO9660JolietFileTree_GetNodePowerInUCHARs( l__PVOID__FileTree, l__PVOID__RootNode, ( PLONG )( &l__LARGE_INTEGER__NodePowerInUCHARs.HighPart ) ); // 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... }