diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/pemagine/pemagine.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/pemagine/pemagine.h b/include/pemagine/pemagine.h index 8990b15..61ffb7a 100644 --- a/include/pemagine/pemagine.h +++ b/include/pemagine/pemagine.h @@ -30,6 +30,29 @@ struct pe_export_sym { }; +struct pe_guid { + uint32_t data1; + uint16_t data2; + uint16_t data3; + unsigned char data4[8]; +}; + + +struct pe_guid_str_utf16 { + wchar16_t lbrace; + wchar16_t group1[8]; + wchar16_t dash1; + wchar16_t group2[4]; + wchar16_t dash2; + wchar16_t group3[4]; + wchar16_t dash3; + wchar16_t group4[4]; + wchar16_t dash4; + wchar16_t group5[12]; + wchar16_t rbrace; +}; + + struct pe_unicode_str { uint16_t strlen; uint16_t maxlen; @@ -109,6 +132,16 @@ struct pe_ldr_tbl_entry { }; +struct pe_framework_runtime_data { + void * hself; + void * hparent; + void * himage; + void * hroot; + void * hcwd; + void * hdrive; + struct pe_guid abi; +}; + /* static inlined functions */ static __inline__ void * pe_get_teb_address(void); @@ -200,6 +233,11 @@ pe_api void * pe_get_kernel32_module_handle (void); pe_api wchar16_t * pe_get_peb_command_line(void); pe_api wchar16_t * pe_get_peb_environment_block(void); +pe_api int32_t pe_get_framework_runtime_data( + struct pe_framework_runtime_data ** rtdata, + const wchar16_t * cmdline, + const struct pe_guid * abi); + pe_api int32_t pe_open_image_from_addr( void ** himage, void * addr, |