1 /******************************************************************************
2 * Runtime Library Types *
3 ******************************************************************************/
5 #define RTL_REGISTRY_ABSOLUTE 0
6 #define RTL_REGISTRY_SERVICES 1
7 #define RTL_REGISTRY_CONTROL 2
8 #define RTL_REGISTRY_WINDOWS_NT 3
9 #define RTL_REGISTRY_DEVICEMAP 4
10 #define RTL_REGISTRY_USER 5
11 #define RTL_REGISTRY_MAXIMUM 6
12 #define RTL_REGISTRY_HANDLE 0x40000000
13 #define RTL_REGISTRY_OPTIONAL 0x80000000
15 /* RTL_QUERY_REGISTRY_TABLE.Flags */
16 #define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
17 #define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
18 #define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
19 #define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
20 #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
21 #define RTL_QUERY_REGISTRY_DIRECT 0x00000020
22 #define RTL_QUERY_REGISTRY_DELETE 0x00000040
24 #define HASH_STRING_ALGORITHM_DEFAULT 0
25 #define HASH_STRING_ALGORITHM_X65599 1
26 #define HASH_STRING_ALGORITHM_INVALID 0xffffffff
28 typedef struct _RTL_BITMAP
{
31 } RTL_BITMAP
, *PRTL_BITMAP
;
33 typedef struct _RTL_BITMAP_RUN
{
36 } RTL_BITMAP_RUN
, *PRTL_BITMAP_RUN
;
39 (NTAPI
*PRTL_QUERY_REGISTRY_ROUTINE
)(
45 IN PVOID EntryContext
);
47 typedef struct _RTL_QUERY_REGISTRY_TABLE
{
48 PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
;
55 } RTL_QUERY_REGISTRY_TABLE
, *PRTL_QUERY_REGISTRY_TABLE
;
57 typedef struct _TIME_FIELDS
{
66 } TIME_FIELDS
, *PTIME_FIELDS
;
69 #ifndef _SLIST_HEADER_
70 #define _SLIST_HEADER_
74 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY
{
76 } SLIST_ENTRY
, *PSLIST_ENTRY
;
78 typedef struct _SLIST_ENTRY32
{
80 } SLIST_ENTRY32
, *PSLIST_ENTRY32
;
82 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER
{
90 ULONGLONG NextEntry
:39;
91 ULONGLONG HeaderType
:1;
93 ULONGLONG Reserved
:59;
98 ULONGLONG Sequence
:48;
99 ULONGLONG HeaderType
:1;
101 ULONGLONG Reserved
:2;
102 ULONGLONG NextEntry
:60;
106 ULONGLONG Sequence
:48;
107 ULONGLONG HeaderType
:1;
108 ULONGLONG Reserved
:3;
109 ULONGLONG NextEntry
:60;
111 } SLIST_HEADER
, *PSLIST_HEADER
;
113 typedef union _SLIST_HEADER32
{
120 } SLIST_HEADER32
, *PSLIST_HEADER32
;
124 #define SLIST_ENTRY SINGLE_LIST_ENTRY
125 #define _SLIST_ENTRY _SINGLE_LIST_ENTRY
126 #define PSLIST_ENTRY PSINGLE_LIST_ENTRY
128 typedef SLIST_ENTRY SLIST_ENTRY32
, *PSLIST_ENTRY32
;
130 typedef union _SLIST_HEADER
{
137 } SLIST_HEADER
, *PSLIST_HEADER
;
139 typedef SLIST_HEADER SLIST_HEADER32
, *PSLIST_HEADER32
;
141 #endif /* defined(_WIN64) */
143 #endif /* _SLIST_HEADER_ */
145 /* MS definition is broken! */
146 extern BOOLEAN NTSYSAPI NlsMbCodePageTag
;
147 extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag
;
148 #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
149 #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
151 #define SHORT_LEAST_SIGNIFICANT_BIT 0
152 #define SHORT_MOST_SIGNIFICANT_BIT 1
154 #define LONG_LEAST_SIGNIFICANT_BIT 0
155 #define LONG_3RD_MOST_SIGNIFICANT_BIT 1
156 #define LONG_2ND_MOST_SIGNIFICANT_BIT 2
157 #define LONG_MOST_SIGNIFICANT_BIT 3
159 #define RTLVERLIB_DDI(x) Wdmlib##x
162 (*PFN_RTL_IS_NTDDI_VERSION_AVAILABLE
)(
166 (*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED
)(