1 /**
2  * \file
3  */
4 
5 #ifndef _MONO_METADATA_W32PROCESS_INTERNALS_H_
6 #define _MONO_METADATA_W32PROCESS_INTERNALS_H_
7 
8 #include <config.h>
9 #include <glib.h>
10 
11 #ifndef HOST_WIN32
12 
13 typedef struct {
14 	guint32 dwSignature; /* Should contain 0xFEEF04BD on le machines */
15 	guint32 dwStrucVersion;
16 	guint32 dwFileVersionMS;
17 	guint32 dwFileVersionLS;
18 	guint32 dwProductVersionMS;
19 	guint32 dwProductVersionLS;
20 	guint32 dwFileFlagsMask;
21 	guint32 dwFileFlags;
22 	guint32 dwFileOS;
23 	guint32 dwFileType;
24 	guint32 dwFileSubtype;
25 	guint32 dwFileDateMS;
26 	guint32 dwFileDateLS;
27 } VS_FIXEDFILEINFO;
28 
29 typedef struct {
30 	gpointer lpBaseOfDll;
31 	guint32 SizeOfImage;
32 	gpointer EntryPoint;
33 } MODULEINFO;
34 
35 #define VS_FF_DEBUG		0x0001
36 #define VS_FF_PRERELEASE	0x0002
37 #define VS_FF_PATCHED		0x0004
38 #define VS_FF_PRIVATEBUILD	0x0008
39 #define VS_FF_INFOINFERRED	0x0010
40 #define VS_FF_SPECIALBUILD	0x0020
41 
42 guint32
43 mono_w32process_get_pid (gpointer handle);
44 
45 gboolean
46 mono_w32process_try_get_modules (gpointer process, gpointer *modules, guint32 size, guint32 *needed);
47 
48 guint32
49 mono_w32process_module_get_name (gpointer process, gpointer module, gunichar2 *basename, guint32 size);
50 
51 guint32
52 mono_w32process_module_get_filename (gpointer process, gpointer module, gunichar2 *basename, guint32 size);
53 
54 gboolean
55 mono_w32process_module_get_information (gpointer process, gpointer module, MODULEINFO *modinfo, guint32 size);
56 
57 gboolean
58 mono_w32process_get_fileversion_info (gunichar2 *filename, gpointer *data);
59 
60 gboolean
61 mono_w32process_ver_query_value (gconstpointer datablock, const gunichar2 *subblock, gpointer *buffer, guint32 *len);
62 
63 guint32
64 mono_w32process_ver_language_name (guint32 lang, gunichar2 *lang_out, guint32 lang_len);
65 
66 #endif /* HOST_WIN32 */
67 
68 #endif /* _MONO_METADATA_W32PROCESS_INTERNALS_H_ */
69