summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2020-06-24 18:18:29 +0000
committermidipix <writeonce@midipix.org>2020-06-24 20:32:04 +0000
commitfea48d76f9cf1296a19e7b0b863f163265fad9ac (patch)
tree4a97aad3b70317151f40b8dbb321a48ac72c7747 /src
parent0fda85780bd51c982622f3baf70701d4d032bbc6 (diff)
downloadntapi-fea48d76f9cf1296a19e7b0b863f163265fad9ac.tar.bz2
ntapi-fea48d76f9cf1296a19e7b0b863f163265fad9ac.tar.xz
__ntapi_tt_guid_to_string_utf8(): initial implementation and integration.
Diffstat (limited to 'src')
-rw-r--r--src/guid/ntapi_tt_guid.c54
-rw-r--r--src/internal/ntapi.c1
-rw-r--r--src/internal/ntapi_fnapi.h2
3 files changed, 57 insertions, 0 deletions
diff --git a/src/guid/ntapi_tt_guid.c b/src/guid/ntapi_tt_guid.c
index 00628c3..6e8c7c4 100644
--- a/src/guid/ntapi_tt_guid.c
+++ b/src/guid/ntapi_tt_guid.c
@@ -214,3 +214,57 @@ int32_t __fastcall __ntapi_tt_string_to_guid_utf8(
: __ntapi_tt_string_to_guid_utf16(
&guid_str_utf16,guid);
}
+
+void __fastcall __ntapi_tt_guid_to_string_utf8(
+ __in const nt_guid * guid,
+ __out nt_guid_str_utf8 * guid_str)
+{
+ uint16_t key;
+ uint8_t * ch;
+
+ ch = &(guid_str->group5[0]);
+
+ __ntapi_tt_uint32_to_hex_utf8(
+ guid->data1,
+ &guid_str->group1[0]);
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ guid->data2,
+ &guid_str->group2[0]);
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ guid->data3,
+ &guid_str->group3[0]);
+
+ key = guid->data4[0] * 0x100 + guid->data4[1];
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ key,
+ &guid_str->group4[0]);
+
+ key = guid->data4[2] * 0x100 + guid->data4[3];
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ key,
+ &guid_str->group5[0]);
+
+ key = guid->data4[4] * 0x100 + guid->data4[5];
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ key,
+ &(ch[4]));
+
+ key = guid->data4[6] * 0x100 + guid->data4[7];
+
+ __ntapi_tt_uint16_to_hex_utf8(
+ key,
+ &(ch[8]));
+
+ guid_str->lbrace = '{';
+ guid_str->rbrace = '}';
+ guid_str->dash1 = '-';
+ guid_str->dash2 = '-';
+ guid_str->dash3 = '-';
+ guid_str->dash4 = '-';
+ guid_str->null = 0;
+}
diff --git a/src/internal/ntapi.c b/src/internal/ntapi.c
index 7562b35..db1c92a 100644
--- a/src/internal/ntapi.c
+++ b/src/internal/ntapi.c
@@ -333,6 +333,7 @@ static int32_t __fastcall __ntapi_init_once(ntapi_vtbl ** pvtbl)
__ntapi->tt_guid_compare = __ntapi_tt_guid_compare;
__ntapi->tt_guid_to_string_utf16 = __ntapi_tt_guid_to_string_utf16;
__ntapi->tt_string_to_guid_utf16 = __ntapi_tt_string_to_guid_utf16;
+ __ntapi->tt_guid_to_string_utf8 = __ntapi_tt_guid_to_string_utf8;
__ntapi->tt_string_to_guid_utf8 = __ntapi_tt_string_to_guid_utf8;
/* nt_sysinfo.h */
diff --git a/src/internal/ntapi_fnapi.h b/src/internal/ntapi_fnapi.h
index ca888c4..6128488 100644
--- a/src/internal/ntapi_fnapi.h
+++ b/src/internal/ntapi_fnapi.h
@@ -329,6 +329,8 @@ NTAPI_UFN(tt_guid_copy);
NTAPI_UFN(tt_guid_compare);
NTAPI_UFN(tt_guid_to_string_utf16);
NTAPI_UFN(tt_string_to_guid_utf16);
+NTAPI_UFN(tt_guid_to_string_utf8);
+NTAPI_UFN(tt_string_to_guid_utf8);
/* log */
NTAPI_UFN(log_write);