Difference between revisions of "Truxton child file save"

From truxwiki.com
Jump to navigation Jump to search
Line 23: Line 23:
 
=Sample=
 
=Sample=
 
<source lang="C" highlight="30">
 
<source lang="C" highlight="30">
void add_folder(uint64_t truxton, uint64_t parent_file)
+
void add_folder( uint64_t truxton, uint64_t parent_file )
 
{
 
{
   truxton_start_adding_files(truxton);
+
   truxton_start_adding_files( truxton );
  
   uint64_t child = truxton_child_file_create(truxton);
+
   uint64_t child = truxton_child_file_create( truxton );
  
 
   char id[40];
 
   char id[40];
  
   truxton_file_get_id(parent_file, id, sizeof(id));
+
   truxton_file_get_id( parent_file, id, sizeof(id) );
   truxton_child_file_set_parent_id(child, id);
+
   truxton_child_file_set_parent_id( child, id );
   truxton_child_file_set_type(child, Type_Directory);
+
   truxton_child_file_set_type( child, Type_Directory );
   truxton_child_file_set_name(child, "Custom Exploits Folder");
+
   truxton_child_file_set_name( child, "Custom Exploits Folder" );
  
 
   FILETIME now;
 
   FILETIME now;
  
   GetSystemTimePreciseAsFileTime(&now);
+
   GetSystemTimePreciseAsFileTime( &now );
  
 
   ULARGE_INTEGER ticks;
 
   ULARGE_INTEGER ticks;
Line 45: Line 45:
 
   ticks.HighPart = now.dwHighDateTime;
 
   ticks.HighPart = now.dwHighDateTime;
  
   truxton_child_file_set_created(child, ticks.QuadPart);
+
   truxton_child_file_set_created( child, ticks.QuadPart );
   truxton_child_file_set_accessed(child, ticks.QuadPart);
+
   truxton_child_file_set_accessed( child, ticks.QuadPart );
   truxton_child_file_set_modified(child, ticks.QuadPart);
+
   truxton_child_file_set_modified( child, ticks.QuadPart );
  
   truxton_child_file_set_origin(child, ORIGIN_GENERATED);
+
   truxton_child_file_set_origin( child, ORIGIN_GENERATED );
   truxton_child_file_set_media_id(child, "B57140A0-8E84-4500-B4D5-3606AA8560AA" );
+
   truxton_child_file_set_media_id( child, "B57140A0-8E84-4500-B4D5-3606AA8560AA" );
  
   if ( truxton_child_file_save(child) == 0 )
+
   if ( truxton_child_file_save( child ) == 0 )
 
   {
 
   {
 
       printf( "Failed to add child to Truxton\n" );
 
       printf( "Failed to add child to Truxton\n" );
 
   }
 
   }
  
   truxton_child_file_destroy(child);
+
   truxton_child_file_destroy( child );
 
}
 
}
 
</source>
 
</source>

Revision as of 06:47, 12 February 2021

This will commit the data in the child file object to the database. It will write a record to the [File] table. If contents were written to a depot, a record will be inserted into the [Content] table. If a depot file was created when writing file contents, a record will be inserted into the [Depot] table.

Syntax

int truxton_child_file_save( uint64_t child_handle );

Parameters

child_handle

The handle created by the truxton_child_file_create or truxton_file_create_child call.

Return value

A non-zero value on success, zero on failure.

Remarks

This API will commit the child file to the database. It will automatically end any write operation before saving to the database. Once this call returns, the truxton_child_file_get_id API will return a valid identifier.

Sample

void add_folder( uint64_t truxton, uint64_t parent_file )
{
   truxton_start_adding_files( truxton );

   uint64_t child = truxton_child_file_create( truxton );

   char id[40];

   truxton_file_get_id( parent_file, id, sizeof(id) );
   truxton_child_file_set_parent_id( child, id );
   truxton_child_file_set_type( child, Type_Directory );
   truxton_child_file_set_name( child, "Custom Exploits Folder" );

   FILETIME now;

   GetSystemTimePreciseAsFileTime( &now );

   ULARGE_INTEGER ticks;

   ticks.LowPart = now.dwLowDateTime;
   ticks.HighPart = now.dwHighDateTime;

   truxton_child_file_set_created( child, ticks.QuadPart );
   truxton_child_file_set_accessed( child, ticks.QuadPart );
   truxton_child_file_set_modified( child, ticks.QuadPart );

   truxton_child_file_set_origin( child, ORIGIN_GENERATED );
   truxton_child_file_set_media_id( child, "B57140A0-8E84-4500-B4D5-3606AA8560AA" );

   if ( truxton_child_file_save( child ) == 0 )
   {
      printf( "Failed to add child to Truxton\n" );
   }

   truxton_child_file_destroy( child );
}