From 314012cad9b217ae9548c0dd1dbdfe22ef4efc28 Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Fri, 26 Jun 2026 19:24:22 +0200 Subject: [PATCH] Add National Language Support table definitions --- sdk/xtdk/rtltypes.h | 29 +++++++++++++++++++++++++++++ sdk/xtdk/xtstruct.h | 2 ++ 2 files changed, 31 insertions(+) diff --git a/sdk/xtdk/rtltypes.h b/sdk/xtdk/rtltypes.h index b0aa9d8..7f1f96a 100644 --- a/sdk/xtdk/rtltypes.h +++ b/sdk/xtdk/rtltypes.h @@ -32,6 +32,9 @@ #define DOUBLE_SCIENTIFIC_PRECISION -4 #define DOUBLE_SIGN_BIT 0x8000000000000000ULL +/* Maximum number of lead bytes for NLS */ +#define NLS_MAXIMUM_LEADBYTES 12 + /* Print flag definitions */ #define PFL_ALWAYS_PRINT_SIGN 0x00000001 #define PFL_SPACE_FOR_PLUS 0x00000002 @@ -72,6 +75,23 @@ typedef XTSTATUS (*PWRITE_CHARACTER)(IN CHAR Character); typedef XTSTATUS (*PWRITE_WIDE_CHARACTER)(IN WCHAR Character); +/* Code page table structure definition */ +typedef struct _CPTABLE_INFO +{ + USHORT CodePage; + USHORT MaximumCharacterSize; + USHORT DefaultChar; + USHORT UniDefaultChar; + USHORT TransDefaultChar; + USHORT TransUniDefaultChar; + USHORT DBCSCodePage; + UCHAR LeadByte[NLS_MAXIMUM_LEADBYTES]; + PUSHORT MultiByteTable; + PVOID WideCharTable; + PUSHORT DBCSRanges; + PUSHORT DBCSOffsets; +} CPTABLE_INFO, *PCPTABLE_INFO; + /* 128-bit buffer containing a unique identifier value */ typedef struct _GUID { @@ -95,6 +115,15 @@ typedef struct _LIST_ENTRY64 ULONGLONG Blink; } LIST_ENTRY64, *PLIST_ENTRY64; +/* NLS table structure definition */ +typedef struct _NLSTABLE_INFO +{ + CPTABLE_INFO OemTableInfo; + CPTABLE_INFO AnsiTableInfo; + PUSHORT UpperCaseTable; + PUSHORT LowerCaseTable; +} NLSTABLE_INFO, *PNLSTABLE_INFO; + /* Red-black tree node color enumeration list */ typedef enum _RTL_BALANCED_NODE_COLOR { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 4e21fd8..c74e9e4 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -85,6 +85,7 @@ typedef struct _ANSI_STRING ANSI_STRING, *PANSI_STRING; typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32; typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64; typedef struct _CPPORT CPPORT, *PCPPORT; +typedef struct _CPTABLE_INFO CPTABLE_INFO, *PCPTABLE_INFO; typedef const struct _CMMPAGEMAP_ROUTINES CMMPAGEMAP_ROUTINES, *PCMMPAGEMAP_ROUTINES; typedef struct _CSTRING CSTRING, *PCSTRING; typedef struct _EFI_1394_DEVICE_PATH EFI_1394_DEVICE_PATH, *PEFI_1394_DEVICE_PATH; @@ -299,6 +300,7 @@ typedef struct _MMFREE_POOL_ENTRY MMFREE_POOL_ENTRY, *PMMFREE_POOL_ENTRY; typedef struct _MMMEMORY_LAYOUT MMMEMORY_LAYOUT, *PMMMEMORY_LAYOUT; typedef struct _MMPFNENTRY MMPFNENTRY, *PMMPFNENTRY; typedef struct _MMPFNLIST MMPFNLIST, *PMMPFNLIST; +typedef struct _NLSTABLE_INFO NLSTABLE_INFO, *PNLSTABLE_INFO; typedef struct _NONPAGED_LOOKASIDE_LIST NONPAGED_LOOKASIDE_LIST, *PNONPAGED_LOOKASIDE_LIST; typedef struct _OWNER_ENTRY OWNER_ENTRY, *POWNER_ENTRY; typedef struct _PAGED_LOOKASIDE_LIST PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;