From a4031208e5dea11cbb0bbc95c402b57b662a94a1 Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 10 Sep 2017 18:18:18 +0000 Subject: envp primitives: integrated __ntapi_tt_get_env_var_meta_utf8(). --- include/ntapi/nt_argv.h | 19 +++++++++++++++++-- include/ntapi/ntapi.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/ntapi/nt_argv.h b/include/ntapi/nt_argv.h index db52e95..de149dc 100644 --- a/include/ntapi/nt_argv.h +++ b/include/ntapi/nt_argv.h @@ -12,11 +12,12 @@ #include "nt_abi.h" -/* ntapi_tt_get_argv_envp_utf16 flag bits */ +/* ntapi_tt_get_argv_envp flag bits */ #define NT_GET_ARGV_ENVP_USE_INTERNAL_BUFFER (0x0000) #define NT_GET_ARGV_ENVP_USE_CALLER_BUFFER (0x0001) #define NT_GET_ARGV_ENVP_COPY_ENVIRONMENT (0x0002) -#define NT_GET_ARGV_ENVP_VALIDATE_UTF16 (0x0004) +#define NT_GET_ARGV_ENVP_VALIDATE_UTF8 (0x0004) +#define NT_GET_ARGV_ENVP_VALIDATE_UTF16 (0x0008) /* ntapi_tt_program_option flag bits */ #define NT_OPTION_SHORT (0x0001) @@ -44,6 +45,14 @@ typedef struct _nt_program_options_meta { } nt_program_options_meta; +typedef struct _nt_env_var_meta_utf8 { + char * name; + char * value; + int envp_index; + uint32_t flags; +} nt_env_var_meta_utf8; + + typedef struct _nt_env_var_meta_utf16 { wchar16_t * name; wchar16_t * value; @@ -133,6 +142,12 @@ typedef int32_t __stdcall ntapi_tt_get_argv_envp_utf16( __out void * reserved __optional); +typedef int32_t __stdcall ntapi_tt_get_env_var_meta_utf8( + __in char * env_var_name, + __in char ** envp, + __out nt_env_var_meta_utf8 * env_var_meta); + + typedef int32_t __stdcall ntapi_tt_get_env_var_meta_utf16( __in wchar16_t * env_var_name, __in wchar16_t ** envp, diff --git a/include/ntapi/ntapi.h b/include/ntapi/ntapi.h index 8d2b26a..528ab69 100644 --- a/include/ntapi/ntapi.h +++ b/include/ntapi/ntapi.h @@ -521,6 +521,7 @@ typedef struct _ntapi_vtbl { ntapi_tt_parse_cmd_line_args_utf16 * tt_parse_cmd_line_args_utf16; ntapi_tt_get_argv_envp_utf8 * tt_get_argv_envp_utf8; ntapi_tt_get_argv_envp_utf16 * tt_get_argv_envp_utf16; + ntapi_tt_get_env_var_meta_utf8 * tt_get_env_var_meta_utf8; ntapi_tt_get_env_var_meta_utf16 * tt_get_env_var_meta_utf16; ntapi_tt_array_copy_utf8 * tt_array_copy_utf8; ntapi_tt_array_copy_utf16 * tt_array_copy_utf16; -- cgit v1.2.3