#ifndef _NT_GUID_H_
#define _NT_GUID_H_
#include "nt_abi.h"
#include "nt_object.h"
typedef struct _nt_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;
} nt_guid_str_utf16, nt_uuid_str_utf16;
typedef struct _nt_guid_str_utf8 {
uint8_t lbrace;
uint8_t group1[8];
uint8_t dash1;
uint8_t group2[4];
uint8_t dash2;
uint8_t group3[4];
uint8_t dash3;
uint8_t group4[4];
uint8_t dash4;
uint8_t group5[12];
uint8_t rbrace;
uint8_t null;
} nt_guid_str_utf8, nt_uuid_str_utf8;
typedef void __fastcall ntapi_tt_guid_copy(
__out nt_guid * pguid_dst,
__in const nt_guid * pguid_src);
typedef int32_t __fastcall ntapi_tt_guid_compare(
__in const nt_guid * pguid_dst,
__in const nt_guid * pguid_src);
typedef void __fastcall ntapi_tt_guid_to_string_utf16(
__in const nt_guid * guid,
__out nt_guid_str_utf16 * guid_str);
typedef int32_t __fastcall ntapi_tt_string_to_guid_utf16(
__in const nt_guid_str_utf16 * guid_str,
__out nt_guid * guid);
typedef void __fastcall ntapi_tt_guid_to_string_utf8(
__in const nt_guid * guid,
__out nt_guid_str_utf8 * guid_str);
typedef int32_t __fastcall ntapi_tt_string_to_guid_utf8(
__in const char * guid_str,
__out nt_guid * guid);
#endif