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
282#define RTL_CONDITION_VARIABLE_INIT {0}
283#define RTL_CONDITION_VARIABLE_LOCKMODE_SHARED 0x1
289#define RTL_SRWLOCK_INIT {0}
314#ifndef _RTL_RUN_ONCE_DEF
315#define _RTL_RUN_ONCE_DEF
317#define RTL_RUN_ONCE_INIT {0}
319#define RTL_RUN_ONCE_CHECK_ONLY 0x00000001UL
320#define RTL_RUN_ONCE_ASYNC 0x00000002UL
321#define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL
323#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
325typedef union _RTL_RUN_ONCE {
345#define RTL_HASH_ALLOCATED_HEADER 0x00000001
347#define RTL_HASH_RESERVED_SIGNATURE 0
353#define VER_GREATER_EQUAL 3
355#define VER_LESS_EQUAL 5
359#define VER_CONDITION_MASK 7
360#define VER_NUM_BITS_PER_CONDITION_MASK 3
364#define VER_MINORVERSION 0x0000001
365#define VER_MAJORVERSION 0x0000002
366#define VER_BUILDNUMBER 0x0000004
367#define VER_PLATFORMID 0x0000008
368#define VER_SERVICEPACKMINOR 0x0000010
369#define VER_SERVICEPACKMAJOR 0x0000020
370#define VER_SUITENAME 0x0000040
371#define VER_PRODUCT_TYPE 0x0000080
373#define VER_NT_WORKSTATION 0x0000001
374#define VER_NT_DOMAIN_CONTROLLER 0x0000002
375#define VER_NT_SERVER 0x0000003
377#define VER_PLATFORM_WIN32s 0
378#define VER_PLATFORM_WIN32_WINDOWS 1
379#define VER_PLATFORM_WIN32_NT 2
381typedef enum _TABLE_SEARCH_RESULT {
400(
NTAPI RTL_AVL_COMPARE_ROUTINE) (
410(
NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
418(
NTAPI RTL_AVL_FREE_ROUTINE) (
426(
NTAPI RTL_AVL_MATCH_FUNCTION) (
460#ifndef RTL_USE_AVL_TABLES
467(
NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
477(
NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
485(
NTAPI RTL_GENERIC_FREE_ROUTINE) (
504#ifdef RTL_USE_AVL_TABLES
506#undef RTL_GENERIC_COMPARE_ROUTINE
507#undef PRTL_GENERIC_COMPARE_ROUTINE
508#undef RTL_GENERIC_ALLOCATE_ROUTINE
509#undef PRTL_GENERIC_ALLOCATE_ROUTINE
510#undef RTL_GENERIC_FREE_ROUTINE
511#undef PRTL_GENERIC_FREE_ROUTINE
512#undef RTL_GENERIC_TABLE
513#undef PRTL_GENERIC_TABLE
515#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
516#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
517#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
518#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
519#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
520#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
521#define RTL_GENERIC_TABLE RTL_AVL_TABLE
522#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
526#define RTL_HASH_ALLOCATED_HEADER 0x00000001
557#define HASH_ENTRY_KEY(x) ((x)->Signature)
562#define RTL_SYSTEM_VOLUME_INFORMATION_FOLDER L"System Volume Information"
568(
NTAPI *PRTL_ALLOCATE_STRING_ROUTINE)(
571#if _WIN32_WINNT >= 0x0600
576(
NTAPI *PRTL_REALLOCATE_STRING_ROUTINE)(
588#if _WIN32_WINNT >= 0x0600
589extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
614#if (NTDDI_VERSION >= NTDDI_WIN2K)
658#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
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
union Alignment_ Alignment
_In_ GUID _In_ PVOID ValueData
#define PRTL_BALANCED_LINKS
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID _In_ ULONG_PTR _In_ SIZE_T CommitSize
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
#define _Field_range_(l, h)
#define _Function_class_(n)
#define _In_reads_bytes_opt_(s)
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_RUN RTL_BITMAP_RUN
struct _RTL_BITMAP_RUN * PRTL_BITMAP_RUN
_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
_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
struct _EXCEPTION_RECORD EXCEPTION_RECORD
struct _OSVERSIONINFOW * POSVERSIONINFOW
struct _OSVERSIONINFOEXW * PRTL_OSVERSIONINFOEXW
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
_Inout_opt_ PVOID Parameter
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 _RTL_CONDITION_VARIABLE * PRTL_CONDITION_VARIABLE
struct _OSVERSIONINFOW OSVERSIONINFOW
struct _RTL_GENERIC_TABLE * PRTL_GENERIC_TABLE
POSVERSIONINFOA POSVERSIONINFO
$endif(_WDMDDK_) $if(_NTDDK_||_WINNT_) typedef union _RTL_RUN_ONCE
_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 _RTL_SRWLOCK RTL_SRWLOCK
struct _RTL_CONDITION_VARIABLE RTL_CONDITION_VARIABLE
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 _RTL_SRWLOCK * PRTL_SRWLOCK
struct _EXCEPTION_RECORD64 EXCEPTION_RECORD64
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
struct _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW
_Inout_ PVOID * CommitAddress
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS