Difference between revisions of "Truxton child file get content status"
Jump to navigation
Jump to search
| Line 18: | Line 18: | ||
=Sample= | =Sample= | ||
<source lang="C" highlight="35"> | <source lang="C" highlight="35"> | ||
| − | 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 40: | Line 40: | ||
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 ); |
| − | 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" ); | ||
| Line 52: | Line 52: | ||
else | else | ||
{ | { | ||
| − | uint32_t status = truxton_child_file_get_content_status(child_file); | + | uint32_t status = truxton_child_file_get_content_status( child_file ); |
printf( "Content status is %" PRIu32 "\n", status ); | printf( "Content status is %" PRIu32 "\n", status ); | ||
} | } | ||
| − | truxton_child_file_destroy(child); | + | truxton_child_file_destroy( child ); |
} | } | ||
</source> | </source> | ||
| + | |||
| + | The <code>PRIu32</code> in the sample code above is a standard way of [https://en.wikipedia.org/wiki/C_data_types#Printf_and_scanf_format_specifiers formatting] a 32-bit unsigned integer in C. | ||
| + | Over the years, different compilers on different operating systems used different format specifiers for things, these <code>PRI</code> macros, along with some tricky string concatenation the compilers perform for you, allow you to maintain a single code base without a bunch of macro magic. | ||
Revision as of 12:46, 9 February 2021
This retrieves the file content status of the file.
This corresponds to the [ContentStatusID] column of the [File] table.
Contents
Syntax
uint32_t truxton_child_file_get_content_status( uint64_t child_handle );
Parameters
child_handle
The handle created by the truxton_child_file_create or truxton_file_create_child call.
Return
The status of the contents of the file.
It should be one of the Content Status values.
It should also be found in the [ID] column of the [ContentStatus] table.
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 );
if ( truxton_child_file_save( child ) == 0 )
{
printf( "Failed to add child to Truxton\n" );
}
else
{
uint32_t status = truxton_child_file_get_content_status( child_file );
printf( "Content status is %" PRIu32 "\n", status );
}
truxton_child_file_destroy( child );
}
The PRIu32 in the sample code above is a standard way of formatting a 32-bit unsigned integer in C.
Over the years, different compilers on different operating systems used different format specifiers for things, these PRI macros, along with some tricky string concatenation the compilers perform for you, allow you to maintain a single code base without a bunch of macro magic.