summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/pemagine/pemagine.h38
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,