6#define RTL_REGISTRY_ABSOLUTE 0
7#define RTL_REGISTRY_SERVICES 1
8#define RTL_REGISTRY_CONTROL 2
9#define RTL_REGISTRY_WINDOWS_NT 3
10#define RTL_REGISTRY_DEVICEMAP 4
11#define RTL_REGISTRY_USER 5
12#define RTL_REGISTRY_MAXIMUM 6
13#define RTL_REGISTRY_HANDLE 0x40000000
14#define RTL_REGISTRY_OPTIONAL 0x80000000
17#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
18#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
19#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
20#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
21#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
22#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
23#define RTL_QUERY_REGISTRY_DELETE 0x00000040
24#define RTL_QUERY_REGISTRY_TYPECHECK 0x00000100
26#define RTL_QUERY_REGISTRY_TYPECHECK_SHIFT 24
28#define HASH_STRING_ALGORITHM_DEFAULT 0
29#define HASH_STRING_ALGORITHM_X65599 1
30#define HASH_STRING_ALGORITHM_INVALID 0xffffffff
46(
NTAPI RTL_QUERY_REGISTRY_ROUTINE)(
86typedef struct _SLIST_ENTRY32 {
121typedef union _SLIST_HEADER32 {
132#define SLIST_ENTRY SINGLE_LIST_ENTRY
133#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
134#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
154#define EXCEPTION_NONCONTINUABLE 0x01
155#define EXCEPTION_UNWINDING 0x02
156#define EXCEPTION_EXIT_UNWIND 0x04
157#define EXCEPTION_STACK_INVALID 0x08
158#define EXCEPTION_NESTED_CALL 0x10
159#define EXCEPTION_TARGET_UNWIND 0x20
160#define EXCEPTION_COLLIDED_UNWIND 0x40
161#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | \
162 EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND)
164#define IS_UNWINDING(Flag) ((Flag & EXCEPTION_UNWIND) != 0)
165#define IS_DISPATCHING(Flag) ((Flag & EXCEPTION_UNWIND) == 0)
166#define IS_TARGET_UNWIND(Flag) (Flag & EXCEPTION_TARGET_UNWIND)
168#define EXCEPTION_MAXIMUM_PARAMETERS 15
206#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
208#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
212#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag)
215#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag)
218#define SHORT_LEAST_SIGNIFICANT_BIT 0
219#define SHORT_MOST_SIGNIFICANT_BIT 1
221#define LONG_LEAST_SIGNIFICANT_BIT 0
222#define LONG_3RD_MOST_SIGNIFICANT_BIT 1
223#define LONG_2ND_MOST_SIGNIFICANT_BIT 2
224#define LONG_MOST_SIGNIFICANT_BIT 3
226#define RTLVERLIB_DDI(x) Wdmlib##x
301#ifndef _RTL_RUN_ONCE_DEF
302#define _RTL_RUN_ONCE_DEF
304#define RTL_RUN_ONCE_INIT {0}
306#define RTL_RUN_ONCE_CHECK_ONLY 0x00000001UL
307#define RTL_RUN_ONCE_ASYNC 0x00000002UL
308#define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL
310#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
312#define RTL_HASH_ALLOCATED_HEADER 0x00000001
314#define RTL_HASH_RESERVED_SIGNATURE 0
320#define VER_GREATER_EQUAL 3
322#define VER_LESS_EQUAL 5
326#define VER_CONDITION_MASK 7
327#define VER_NUM_BITS_PER_CONDITION_MASK 3
331#define VER_MINORVERSION 0x0000001
332#define VER_MAJORVERSION 0x0000002
333#define VER_BUILDNUMBER 0x0000004
334#define VER_PLATFORMID 0x0000008
335#define VER_SERVICEPACKMINOR 0x0000010
336#define VER_SERVICEPACKMAJOR 0x0000020
337#define VER_SUITENAME 0x0000040
338#define VER_PRODUCT_TYPE 0x0000080
340#define VER_NT_WORKSTATION 0x0000001
341#define VER_NT_DOMAIN_CONTROLLER 0x0000002
342#define VER_NT_SERVER 0x0000003
344#define VER_PLATFORM_WIN32s 0
345#define VER_PLATFORM_WIN32_WINDOWS 1
346#define VER_PLATFORM_WIN32_NT 2
381(
NTAPI RTL_AVL_COMPARE_ROUTINE) (
391(
NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
399(
NTAPI RTL_AVL_FREE_ROUTINE) (
407(
NTAPI RTL_AVL_MATCH_FUNCTION) (
441#ifndef RTL_USE_AVL_TABLES
448(
NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
458(
NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
466(
NTAPI RTL_GENERIC_FREE_ROUTINE) (
485#ifdef RTL_USE_AVL_TABLES
487#undef RTL_GENERIC_COMPARE_ROUTINE
488#undef PRTL_GENERIC_COMPARE_ROUTINE
489#undef RTL_GENERIC_ALLOCATE_ROUTINE
490#undef PRTL_GENERIC_ALLOCATE_ROUTINE
491#undef RTL_GENERIC_FREE_ROUTINE
492#undef PRTL_GENERIC_FREE_ROUTINE
493#undef RTL_GENERIC_TABLE
494#undef PRTL_GENERIC_TABLE
496#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
497#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
498#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
499#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
500#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
501#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
502#define RTL_GENERIC_TABLE RTL_AVL_TABLE
503#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
507#define RTL_HASH_ALLOCATED_HEADER 0x00000001
538#define HASH_ENTRY_KEY(x) ((x)->Signature)
543#define RTL_SYSTEM_VOLUME_INFORMATION_FOLDER L"System Volume Information"
549(
NTAPI *PRTL_ALLOCATE_STRING_ROUTINE)(
552#if _WIN32_WINNT >= 0x0600
557(
NTAPI *PRTL_REALLOCATE_STRING_ROUTINE)(
569#if _WIN32_WINNT >= 0x0600
570extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
595#if (NTDDI_VERSION >= NTDDI_WIN2K)
639#if (NTDDI_VERSION >= NTDDI_WINXP)
#define _IRQL_requires_same_
#define __drv_freesMem(kind)
#define _IRQL_requires_max_(irql)
#define __drv_allocatesMem(kind)
struct _TIME_FIELDS TIME_FIELDS
TIME_FIELDS * PTIME_FIELDS
union Alignment_ Alignment
_In_ GUID _In_ PVOID ValueData
#define PRTL_BALANCED_LINKS
#define _Function_class_(x)
#define _Field_range_(min, max)
#define _In_reads_bytes_opt_(size)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID _In_ ULONG_PTR _In_ SIZE_T CommitSize
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
struct _RTL_QUERY_REGISTRY_TABLE * PRTL_QUERY_REGISTRY_TABLE
struct _RTL_HEAP_PARAMETERS * PRTL_HEAP_PARAMETERS
struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE
NTSTATUS(* PRTL_HEAP_COMMIT_ROUTINE)(IN PVOID Base, IN OUT PVOID *CommitAddress, IN OUT PULONG CommitSize)
struct _RTL_HEAP_PARAMETERS RTL_HEAP_PARAMETERS
#define DECLSPEC_ALIGN(x)
#define _ANONYMOUS_STRUCT
UCHAR CompressionUnitShift
USHORT CompressionFormatAndEngine
PEXCEPTION_RECORD ExceptionRecord
ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
struct _EXCEPTION_RECORD * ExceptionRecord
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
_Field_range_(<=, 8) UCHAR NameLength
ULONG dwOSVersionInfoSize
ULONG dwOSVersionInfoSize
ULONG dwOSVersionInfoSize
ULONG dwOSVersionInfoSize
struct _PREFIX_TABLE_ENTRY * NextPrefixTree
PPREFIX_TABLE_ENTRY NextPrefixTree
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine
ULONG NumberGenericTableElements
RTL_BALANCED_LINKS BalancedRoot
PRTL_AVL_COMPARE_ROUTINE CompareRoutine
ULONG WhichOrderedElement
PRTL_AVL_FREE_ROUTINE FreeRoutine
PRTL_BALANCED_LINKS RestartKey
struct _RTL_BALANCED_LINKS * RightChild
struct _RTL_BALANCED_LINKS * LeftChild
struct _RTL_BALANCED_LINKS * Parent
RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry
ULONG WhichOrderedElement
PLIST_ENTRY OrderedPointer
PRTL_GENERIC_FREE_ROUTINE FreeRoutine
LIST_ENTRY InsertOrderList
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
PRTL_SPLAY_LINKS TableRoot
ULONG NumberGenericTableElements
SIZE_T VirtualMemoryThreshold
SIZE_T DeCommitTotalFreeThreshold
SIZE_T MaximumAllocationSize
PRTL_HEAP_COMMIT_ROUTINE CommitRoutine
SIZE_T DeCommitFreeBlockThreshold
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
struct _RTL_SPLAY_LINKS * LeftChild
struct _RTL_SPLAY_LINKS * Parent
struct _RTL_SPLAY_LINKS * RightChild
struct _UNICODE_PREFIX_TABLE_ENTRY * CaseMatch
struct _UNICODE_PREFIX_TABLE_ENTRY * NextPrefixTree
PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry
PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree
struct _RTL_BITMAP * PRTL_BITMAP
struct _RTL_BITMAP_RUN RTL_BITMAP_RUN
struct _RTL_BITMAP_RUN * PRTL_BITMAP_RUN
struct _RTL_BITMAP RTL_BITMAP
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
_Reserved_ PVOID Reserved
#define EXCEPTION_MAXIMUM_PARAMETERS
DWORD WINAPI RTL_RUN_ONCE_INIT_FN(PRTL_RUN_ONCE, PVOID, PVOID *)
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
struct _UNICODE_PREFIX_TABLE_ENTRY UNICODE_PREFIX_TABLE_ENTRY
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR * PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR
struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT RTL_DYNAMIC_HASH_TABLE_CONTEXT
LPOSVERSIONINFOA LPOSVERSIONINFO
OSVERSIONINFOEXA OSVERSIONINFOEX
struct _PREFIX_TABLE * PPREFIX_TABLE
struct _OSVERSIONINFOA OSVERSIONINFOA
struct _COMPRESSED_DATA_INFO COMPRESSED_DATA_INFO
struct _EXCEPTION_RECORD64 * PEXCEPTION_RECORD64
struct _PREFIX_TABLE PREFIX_TABLE
SLIST_ENTRY SLIST_ENTRY32
struct _EXCEPTION_RECORD32 * PEXCEPTION_RECORD32
struct _RTL_DYNAMIC_HASH_TABLE_ENTRY RTL_DYNAMIC_HASH_TABLE_ENTRY
SLIST_ENTRY * PSLIST_ENTRY32
_IRQL_requires_same_ _In_ PVOID _In_ PVOID MatchData
union _SLIST_HEADER SLIST_HEADER
struct _UNICODE_PREFIX_TABLE_ENTRY * PUNICODE_PREFIX_TABLE_ENTRY
struct _RTL_DYNAMIC_HASH_TABLE * PRTL_DYNAMIC_HASH_TABLE
struct _RTL_AVL_TABLE RTL_AVL_TABLE
RTL_QUERY_REGISTRY_ROUTINE * PRTL_QUERY_REGISTRY_ROUTINE
struct _OSVERSIONINFOEXW * POSVERSIONINFOEXW
struct _RTL_DYNAMIC_HASH_TABLE_ENTRY * PRTL_DYNAMIC_HASH_TABLE_ENTRY
NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine
BOOLEAN * NlsMbCodePageTag
struct _OSVERSIONINFOW * LPOSVERSIONINFOW
struct _OSVERSIONINFOW RTL_OSVERSIONINFOW
RTL_GENERIC_FREE_ROUTINE * PRTL_GENERIC_FREE_ROUTINE
struct _OSVERSIONINFOEXA OSVERSIONINFOEXA
struct _EXCEPTION_POINTERS EXCEPTION_POINTERS
enum _TABLE_SEARCH_RESULT TABLE_SEARCH_RESULT
struct _EXCEPTION_RECORD EXCEPTION_RECORD
struct _OSVERSIONINFOW * POSVERSIONINFOW
struct _OSVERSIONINFOEXW * PRTL_OSVERSIONINFOEXW
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
$endif(_WDMDDK_) $if(_NTDDK_) typedef union _RTL_RUN_ONCE
BOOLEAN(* PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(_In_ ULONG Version)
struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT * PRTL_DYNAMIC_HASH_TABLE_CONTEXT
struct _OSVERSIONINFOEXA * LPOSVERSIONINFOEXA
struct _OSVERSIONINFOEXA * POSVERSIONINFOEXA
struct _RTL_GENERIC_TABLE RTL_GENERIC_TABLE
struct _RTL_DYNAMIC_HASH_TABLE RTL_DYNAMIC_HASH_TABLE
struct _RTL_BALANCED_LINKS RTL_BALANCED_LINKS
SLIST_HEADER * PSLIST_HEADER32
struct _COMPRESSED_DATA_INFO * PCOMPRESSED_DATA_INFO
NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine
_IRQL_requires_same_ _In_ PVOID _In_ PVOID SecondStruct
struct _OSVERSIONINFOW * PRTL_OSVERSIONINFOW
union _SLIST_HEADER * PSLIST_HEADER
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
RTL_GENERIC_COMPARE_ROUTINE * PRTL_GENERIC_COMPARE_ROUTINE
VOID(NTAPI * PRTL_FREE_STRING_ROUTINE)(_In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer)
struct _OSVERSIONINFOW OSVERSIONINFOW
struct _RTL_GENERIC_TABLE * PRTL_GENERIC_TABLE
POSVERSIONINFOA POSVERSIONINFO
_IRQL_requires_same_ _In_ CLONG ByteSize
struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR RTL_DYNAMIC_HASH_TABLE_ENUMERATOR
BOOLEAN(* PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(_In_ ULONG Version)
OSVERSIONINFOA OSVERSIONINFO
$if(_WDMDDK_) typedef struct _RTL_BITMAP
struct _PREFIX_TABLE_ENTRY PREFIX_TABLE_ENTRY
struct _UNICODE_PREFIX_TABLE * PUNICODE_PREFIX_TABLE
struct _EXCEPTION_RECORD32 EXCEPTION_RECORD32
POSVERSIONINFOEXA POSVERSIONINFOEX
struct _OSVERSIONINFOEXW OSVERSIONINFOEXW
struct _OSVERSIONINFOEXW * LPOSVERSIONINFOEXW
struct _OSVERSIONINFOA * POSVERSIONINFOA
struct _UNICODE_PREFIX_TABLE UNICODE_PREFIX_TABLE
struct _EXCEPTION_POINTERS * PEXCEPTION_POINTERS
struct _OSVERSIONINFOA * LPOSVERSIONINFOA
struct _RTL_SPLAY_LINKS RTL_SPLAY_LINKS
SLIST_HEADER SLIST_HEADER32
_IRQL_requires_same_ _In_ PVOID FirstStruct
LPOSVERSIONINFOEXA LPOSVERSIONINFOEX
BOOLEAN * NlsMbOemCodePageTag
struct _EXCEPTION_RECORD * PEXCEPTION_RECORD
RTL_GENERIC_ALLOCATE_ROUTINE * PRTL_GENERIC_ALLOCATE_ROUTINE
_RTL_GENERIC_COMPARE_RESULTS
struct _PREFIX_TABLE_ENTRY * PPREFIX_TABLE_ENTRY
struct _EXCEPTION_RECORD64 EXCEPTION_RECORD64
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
struct _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW
_Inout_ PVOID * CommitAddress
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS