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)(
77 #ifndef _SLIST_HEADER_ 78 #define _SLIST_HEADER_ 86 typedef struct _SLIST_ENTRY32 {
121 typedef 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 319 #define VER_GREATER 2 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 570 extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
595 #if (NTDDI_VERSION >= NTDDI_WIN2K) 639 #if (NTDDI_VERSION >= NTDDI_WINXP)
struct _RTL_BALANCED_LINKS * PRTL_BALANCED_LINKS
RTL_GENERIC_COMPARE_ROUTINE * PRTL_GENERIC_COMPARE_ROUTINE
ULONG dwOSVersionInfoSize
SLIST_HEADER SLIST_HEADER32
struct _EXCEPTION_RECORD * PEXCEPTION_RECORD
SIZE_T DeCommitTotalFreeThreshold
struct _RTL_BALANCED_LINKS * Parent
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
BOOLEAN * NlsMbCodePageTag
ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
struct _RTL_DYNAMIC_HASH_TABLE RTL_DYNAMIC_HASH_TABLE
RTL_GENERIC_ALLOCATE_ROUTINE * PRTL_GENERIC_ALLOCATE_ROUTINE
POSVERSIONINFOA POSVERSIONINFO
struct _RTL_QUERY_REGISTRY_TABLE * PRTL_QUERY_REGISTRY_TABLE
struct _UNICODE_PREFIX_TABLE_ENTRY * NextPrefixTree
IN BOOLEAN OUT PSTR Buffer
struct _OSVERSIONINFOEXW * POSVERSIONINFOEXW
struct _UNICODE_PREFIX_TABLE * PUNICODE_PREFIX_TABLE
struct _PREFIX_TABLE PREFIX_TABLE
_Inout_ PVOID _Inout_ PSIZE_T CommitSize
struct _RTL_BALANCED_LINKS RTL_BALANCED_LINKS
RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry
PRTL_HEAP_COMMIT_ROUTINE CommitRoutine
struct DECLSPEC_ALIGN(16) _RTL_UMS_CONTEXT
struct _OSVERSIONINFOW * POSVERSIONINFOW
enum _TABLE_SEARCH_RESULT TABLE_SEARCH_RESULT
SLIST_ENTRY SLIST_ENTRY32
struct _EXCEPTION_RECORD64 EXCEPTION_RECORD64
struct _RTL_BITMAP_RUN * PRTL_BITMAP_RUN
_Field_range_(<=, 8) UCHAR NameLength
struct _RTL_DYNAMIC_HASH_TABLE * PRTL_DYNAMIC_HASH_TABLE
struct _PREFIX_TABLE_ENTRY * NextPrefixTree
RTL_QUERY_REGISTRY_ROUTINE * PRTL_QUERY_REGISTRY_ROUTINE
ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
BOOL Init(PUSERCONNECT UserCon)
struct _RTL_BALANCED_LINKS * RightChild
struct _EXCEPTION_POINTERS EXCEPTION_POINTERS
_Function_class_(RTL_QUERY_REGISTRY_ROUTINE) _IRQL_requires_max_(PASSIVE_LEVEL) _IRQL_requires_same_ typedef NTSTATUS(NTAPI RTL_QUERY_REGISTRY_ROUTINE)(_In_z_ PWSTR ValueName
OSVERSIONINFOA OSVERSIONINFO
struct _EXCEPTION_POINTERS * PEXCEPTION_POINTERS
struct _RTL_GENERIC_TABLE * PRTL_GENERIC_TABLE
RTL_BALANCED_LINKS BalancedRoot
struct _RTL_SPLAY_LINKS * Parent
_In_ ULONG _In_ ULONG _In_opt_ PVOID Context
struct _RTL_BITMAP_RUN RTL_BITMAP_RUN
struct _COMPRESSED_DATA_INFO * PCOMPRESSED_DATA_INFO
struct _OSVERSIONINFOEXW * LPOSVERSIONINFOEXW
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct _RTL_HEAP_PARAMETERS RTL_HEAP_PARAMETERS
struct _PREFIX_TABLE_ENTRY * PPREFIX_TABLE_ENTRY
struct _RTL_DYNAMIC_HASH_TABLE_ENTRY * PRTL_DYNAMIC_HASH_TABLE_ENTRY
RTL_GENERIC_FREE_ROUTINE * PRTL_GENERIC_FREE_ROUTINE
struct _UNICODE_PREFIX_TABLE UNICODE_PREFIX_TABLE
struct _PREFIX_TABLE_ENTRY PREFIX_TABLE_ENTRY
union Alignment_ Alignment
struct _OSVERSIONINFOA * LPOSVERSIONINFOA
struct _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW
#define _IRQL_requires_same_
struct _OSVERSIONINFOW * LPOSVERSIONINFOW
SIZE_T VirtualMemoryThreshold
_Reserved_ PVOID Reserved
struct _RTL_AVL_TABLE RTL_AVL_TABLE
struct _OSVERSIONINFOW RTL_OSVERSIONINFOW
ULONG dwOSVersionInfoSize
struct _OSVERSIONINFOEXA OSVERSIONINFOEXA
struct _RTL_DYNAMIC_HASH_TABLE_ENTRY RTL_DYNAMIC_HASH_TABLE_ENTRY
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
BOOLEAN * NlsMbOemCodePageTag
struct _TIME_FIELDS TIME_FIELDS
#define __drv_allocatesMem(kind)
struct _RTL_SPLAY_LINKS * LeftChild
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
ULONG dwOSVersionInfoSize
_IRQL_requires_same_ _In_ PVOID _In_ PVOID SecondStruct
BOOLEAN(* PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(_In_ ULONG Version)
_Inout_ PVOID * CommitAddress
SLIST_HEADER * PSLIST_HEADER32
ULONG dwOSVersionInfoSize
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
_RTL_GENERIC_COMPARE_RESULTS
ULONG WhichOrderedElement
ULONG NumberGenericTableElements
NTSTATUS(* PRTL_HEAP_COMMIT_ROUTINE)(IN PVOID Base, IN OUT PVOID *CommitAddress, IN OUT PULONG CommitSize)
_In_ GUID _In_ PVOID ValueData
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
struct _UNICODE_PREFIX_TABLE_ENTRY * PUNICODE_PREFIX_TABLE_ENTRY
struct _COMPRESSED_DATA_INFO COMPRESSED_DATA_INFO
IN PVOID IN PVOID IN USHORT Version
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine
struct _OSVERSIONINFOW OSVERSIONINFOW
struct _RTL_HEAP_PARAMETERS * PRTL_HEAP_PARAMETERS
$endif(_WDMDDK_) $if(_NTDDK_) typedef union _RTL_RUN_ONCE
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
$if(_WDMDDK_) typedef struct _RTL_BITMAP
struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE
PPREFIX_TABLE_ENTRY NextPrefixTree
ULONG NumberGenericTableElements
struct _RTL_BALANCED_LINKS * LeftChild
PRTL_SPLAY_LINKS TableRoot
PRTL_GENERIC_FREE_ROUTINE FreeRoutine
DWORD WINAPI RTL_RUN_ONCE_INIT_FN(PRTL_RUN_ONCE, PVOID, PVOID *)
_IRQL_requires_same_ _In_ PVOID FirstStruct
_In_ ULONG _In_reads_bytes_opt_(ValueLength) PVOID ValueData
struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT RTL_DYNAMIC_HASH_TABLE_CONTEXT
PRTL_AVL_COMPARE_ROUTINE CompareRoutine
struct _EXCEPTION_RECORD32 * PEXCEPTION_RECORD32
SIZE_T DeCommitFreeBlockThreshold
USHORT CompressionFormatAndEngine
PRTL_AVL_FREE_ROUTINE FreeRoutine
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry
struct _OSVERSIONINFOEXW OSVERSIONINFOEXW
#define _ANONYMOUS_STRUCT
struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR RTL_DYNAMIC_HASH_TABLE_ENUMERATOR
_IRQL_requires_same_ _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer)
union _SLIST_HEADER * PSLIST_HEADER
struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR * PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR
struct _EXCEPTION_RECORD * ExceptionRecord
struct _RTL_GENERIC_TABLE RTL_GENERIC_TABLE
typedef BOOLEAN(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(PVOID Context
NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine
struct _RTL_SPLAY_LINKS RTL_SPLAY_LINKS
#define EXCEPTION_MAXIMUM_PARAMETERS
struct _PREFIX_TABLE * PPREFIX_TABLE
#define _IRQL_requires_max_(irql)
struct _OSVERSIONINFOEXA * LPOSVERSIONINFOEXA
struct _OSVERSIONINFOA OSVERSIONINFOA
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine
struct _OSVERSIONINFOA * POSVERSIONINFOA
struct _OSVERSIONINFOW * PRTL_OSVERSIONINFOW
struct _RTL_AVL_TABLE * PRTL_AVL_TABLE
_IRQL_requires_same_ _In_ PVOID _In_ PVOID MatchData
struct _TIME_FIELDS * PTIME_FIELDS
struct _EXCEPTION_RECORD64 * PEXCEPTION_RECORD64
struct _OSVERSIONINFOEXW * PRTL_OSVERSIONINFOEXW
union _SLIST_HEADER SLIST_HEADER
struct _RTL_SPLAY_LINKS * RightChild
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
struct _EXCEPTION_RECORD32 EXCEPTION_RECORD32
SLIST_ENTRY * PSLIST_ENTRY32
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS
struct _OSVERSIONINFOEXA * POSVERSIONINFOEXA
BOOLEAN(* PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(_In_ ULONG Version)
PLIST_ENTRY OrderedPointer
LPOSVERSIONINFOA LPOSVERSIONINFO
OSVERSIONINFOEXA OSVERSIONINFOEX
_IRQL_requires_same_ _In_ PVOID UserData
PRTL_BALANCED_LINKS RestartKey
PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree
struct _UNICODE_PREFIX_TABLE_ENTRY UNICODE_PREFIX_TABLE_ENTRY
_In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID EntryContext
LIST_ENTRY InsertOrderList
VOID(NTAPI * PRTL_FREE_STRING_ROUTINE)(_In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer)
struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT * PRTL_DYNAMIC_HASH_TABLE_CONTEXT
PEXCEPTION_RECORD ExceptionRecord
SIZE_T MaximumAllocationSize
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
ULONG WhichOrderedElement
struct _UNICODE_PREFIX_TABLE_ENTRY * CaseMatch
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS
POSVERSIONINFOEXA POSVERSIONINFOEX
_In_ ULONG _In_ ULONG ValueLength
_IRQL_requires_same_ _In_ CLONG ByteSize
UCHAR CompressionUnitShift
struct _EXCEPTION_RECORD EXCEPTION_RECORD
LPOSVERSIONINFOEXA LPOSVERSIONINFOEX
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength