6#define FAST_FAIL_LEGACY_GS_VIOLATION 0
7#define FAST_FAIL_VTGUARD_CHECK_FAILURE 1
8#define FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2
9#define FAST_FAIL_CORRUPT_LIST_ENTRY 3
10#define FAST_FAIL_INCORRECT_STACK 4
11#define FAST_FAIL_INVALID_ARG 5
12#define FAST_FAIL_GS_COOKIE_INIT 6
13#define FAST_FAIL_FATAL_APP_EXIT 7
14#define FAST_FAIL_RANGE_CHECK_FAILURE 8
15#define FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9
16#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10
17#define FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11
18#define FAST_FAIL_INVALID_FIBER_SWITCH 12
19#define FAST_FAIL_INVALID_SET_OF_CONTEXT 13
20#define FAST_FAIL_INVALID_REFERENCE_COUNT 14
21#define FAST_FAIL_INVALID_JUMP_BUFFER 18
22#define FAST_FAIL_MRDATA_MODIFIED 19
23#define FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF
34#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && (defined(_M_CEE_PURE) || defined(_M_CEE_SAFE))
35#define NO_KERNEL_LIST_ENTRY_CHECKS
38#if !defined(EXTRA_KERNEL_LIST_ENTRY_CHECKS) && defined(__REACTOS__)
39#define EXTRA_KERNEL_LIST_ENTRY_CHECKS
42#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
44#define RTL_STATIC_LIST_HEAD(x) LIST_ENTRY x = { &x, &x }
51 ListHead->Flink = ListHead->Blink = ListHead;
60 return (
BOOLEAN)(ListHead->Flink == ListHead);
71 OldFlink =
Entry->Flink;
72 OldBlink =
Entry->Blink;
73 OldFlink->
Blink = OldBlink;
74 OldBlink->
Flink = OldFlink;
75 return (
BOOLEAN)(OldFlink == OldBlink);
78#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
111 OldFlink =
Entry->Flink;
112 OldBlink =
Entry->Blink;
113#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
114#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
121 OldFlink->
Blink = OldBlink;
122 OldBlink->
Flink = OldFlink;
123 return (
BOOLEAN)(OldFlink == OldBlink);
134#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
136#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
137 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
141 Entry = ListHead->Flink;
142 Flink =
Entry->Flink;
143#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
147 ListHead->Flink = Flink;
148 Flink->
Blink = ListHead;
160#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
162#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
163 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
167 Entry = ListHead->Blink;
168 Blink =
Entry->Blink;
169#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
173 ListHead->Blink = Blink;
174 Blink->
Flink = ListHead;
185#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
188 OldBlink = ListHead->
Blink;
189 Entry->Flink = ListHead;
190 Entry->Blink = OldBlink;
191#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
192 if (OldBlink->
Flink != ListHead)
196 ListHead->Blink =
Entry;
206#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
209 OldFlink = ListHead->
Flink;
210 Entry->Flink = OldFlink;
211 Entry->Blink = ListHead;
212#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
213 if (OldFlink->
Blink != ListHead)
217 ListHead->Flink =
Entry;
228#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
232 ListHead->Blink->Flink = ListToAppend;
233 ListHead->Blink = ListToAppend->Blink;
234 ListToAppend->Blink->Flink = ListHead;
244 FirstEntry = ListHead->
Next;
245 if (FirstEntry !=
NULL) {
257 Entry->Next = ListHead->Next;
258 ListHead->Next =
Entry;
279#define RtlCopyMemory(Destination, Source, Length) \
280 memcpy(Destination, Source, Length)
282#define RtlCopyBytes RtlCopyMemory
293#define RtlCopyMemoryNonTemporal RtlCopyMemory
301#define RtlEqualLuid(Luid1, Luid2) \
302 (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
310#define RtlEqualMemory(Destination, Source, Length) \
311 (!memcmp(Destination, Source, Length))
319#define RtlFillMemory(Destination, Length, Fill) \
320 memset(Destination, Fill, Length)
322#define RtlFillBytes RtlFillMemory
362#define RtlMoveMemory(Destination, Source, Length) \
363 memmove(Destination, Source, Length)
380#define RtlZeroMemory(Destination, Length) \
381 memset(Destination, 0, Length)
383#define RtlZeroBytes RtlZeroMemory
386#if (NTDDI_VERSION >= NTDDI_WIN2K)
426#define RtlAnsiStringToUnicodeSize(String) ( \
427 NLS_MB_CODE_PAGE_TAG ? \
428 RtlxAnsiStringToUnicodeSize(String) : \
429 ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
567#if !defined(_AMD64_) && !defined(_IA64_)
584#if defined(_X86_) || defined(_IA64_)
750#define RtlIntPtrToUnicodeString(Value, Base, String) \
751 RtlInt64ToUnicodeString(Value, Base, String)
753#define RtlIntPtrToUnicodeString(Value, Base, String) \
754 RtlIntegerToUnicodeString(Value, Base, String)
761#define RtlIsZeroLuid(_L1) \
762 ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
795#define SHORT_SIZE (sizeof(USHORT))
796#define SHORT_MASK (SHORT_SIZE - 1)
797#define LONG_SIZE (sizeof(LONG))
798#define LONGLONG_SIZE (sizeof(LONGLONG))
799#define LONG_MASK (LONG_SIZE - 1)
800#define LONGLONG_MASK (LONGLONG_SIZE - 1)
801#define LOWBYTE_MASK 0x00FF
803#define FIRSTBYTE(VALUE) ((VALUE) & LOWBYTE_MASK)
804#define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK)
805#define THIRDBYTE(VALUE) (((VALUE) >> 16) & LOWBYTE_MASK)
806#define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK)
838#if defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86)
845#define RtlStoreUlong(Address,Value) \
846 *(ULONG UNALIGNED *)(Address) = (Value)
853#define RtlStoreUlonglong(Address,Value) \
854 *(ULONGLONG UNALIGNED *)(Address) = (Value)
861#define RtlStoreUshort(Address,Value) \
862 *(USHORT UNALIGNED *)(Address) = (Value)
869#define RtlRetrieveUshort(DestAddress,SrcAddress) \
870 *(USHORT*)(DestAddress) = *(USHORT UNALIGNED *)(SrcAddress)
877#define RtlRetrieveUlong(DestAddress,SrcAddress) \
878 *(ULONG*)(DestAddress) = *(ULONG UNALIGNED *)(SrcAddress)
882#define RtlStoreUlong(Address,Value) \
883 if ((ULONG_PTR)(Address) & LONG_MASK) { \
884 ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
885 ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
886 ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
887 ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT] = (UCHAR)(FOURTHBYTE(Value)); \
890 *((PULONG)(Address)) = (ULONG) (Value); \
893#define RtlStoreUlonglong(Address,Value) \
894 if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
895 RtlStoreUlong((ULONG_PTR)(Address), \
896 (ULONGLONG)(Value) & 0xFFFFFFFF); \
897 RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
898 (ULONGLONG)(Value) >> 32); \
900 *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
903#define RtlStoreUshort(Address,Value) \
904 if ((ULONG_PTR)(Address) & SHORT_MASK) { \
905 ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
906 ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
909 *((PUSHORT) (Address)) = (USHORT)Value; \
912#define RtlRetrieveUshort(DestAddress,SrcAddress) \
913 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
915 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
916 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
920 *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
923#define RtlRetrieveUlong(DestAddress,SrcAddress) \
924 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
926 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
927 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
928 ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
929 ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
933 *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
944#define RtlStoreUlongPtr(Address,Value) RtlStoreUlonglong(Address,Value)
946#define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
1019#define RtlUnicodeStringToAnsiSize(String) ( \
1020 NLS_MB_CODE_PAGE_TAG ? \
1021 RtlxUnicodeStringToAnsiSize(String) : \
1022 ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
1095#ifndef RTL_USE_AVL_TABLES
1190#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT 8
1281RtlVolumeDeviceToDosName(
1455RtlUnicodeStringToCountedOemString(
1591#if (NTDDI_VERSION >= NTDDI_VISTASP1)
2001#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
2012#if (NTDDI_VERSION >= NTDDI_WINXP)
2358#if defined(_M_AMD64)
2368 if ((
Length /= 4) != 0) {
2371 if ((
Length -= 1) == 0) {
2382#define RtlFillMemoryUlonglong(Destination, Length, Pattern) \
2383 __stosq((PULONG64)(Destination), Pattern, (Length) / 8)
2409#if (NTDDI_VERSION >= NTDDI_WS03)
2419#if (NTDDI_VERSION >= NTDDI_WS03SP1)
2478#if (NTDDI_VERSION >= NTDDI_VISTA)
2484RtlNumberOfSetBitsUlongPtr(
2650#if (NTDDI_VERSION >= NTDDI_WIN7)
2845#if !defined(MIDL_PASS)
2855 ret.QuadPart = SignedInteger;
2867 ret.QuadPart = UnsignedInteger;
2881 Result.QuadPart = LargeInteger.QuadPart << ShiftCount;
2895 Result.QuadPart = (
ULONG64)LargeInteger.QuadPart >> ShiftCount;
2922 Difference.
QuadPart = -Subtrahend.QuadPart;
2936 Difference.
QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
2971RtlInitEmptyAnsiString(
2986RtlInitEmptyUnicodeString(
2999#if defined(_AMD64_) || defined(_IA64_)
3011 ret.QuadPart = Multiplicand.QuadPart * Multiplier;
3052#if (NTDDI_VERSION >= NTDDI_WIN2K)
3070#define MultiplyHigh __mulh
3071#define UnsignedMultiplyHigh __umulh
3085 Pos = (Dividend.QuadPart >= 0);
3086 ret64 = UnsignedMultiplyHigh(
Pos ? Dividend.QuadPart : -Dividend.QuadPart,
3087 MagicDivisor.QuadPart);
3088 ret64 >>= ShiftCount;
3113#define RtlLargeIntegerAnd(Result, Source, Mask) \
3114 Result.QuadPart = Source.QuadPart & Mask.QuadPart
3125 ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
3134#define RtlLargeIntegerEqualTo(X,Y) \
3135 (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
3143 volatile char* vptr = (
volatile char*)Pointer;
3144#if defined(_M_AMD64)
3147 char * endptr = (
char *)vptr +
Size;
3148 while (vptr < endptr) {
3155#if defined(_M_AMD64)
3166#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
3169#define RtlLargeIntegerGreaterThan(X,Y) ( \
3170 (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
3171 ((X).HighPart > (Y).HighPart) \
3174#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) ( \
3175 (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
3176 ((X).HighPart > (Y).HighPart) \
3179#define RtlLargeIntegerNotEqualTo(X,Y) ( \
3180 (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
3183#define RtlLargeIntegerLessThan(X,Y) ( \
3184 (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
3185 ((X).HighPart < (Y).HighPart) \
3188#define RtlLargeIntegerLessThanOrEqualTo(X,Y) ( \
3189 (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
3190 ((X).HighPart < (Y).HighPart) \
3193#define RtlLargeIntegerGreaterThanZero(X) ( \
3194 (((X).HighPart == 0) && ((X).LowPart > 0)) || \
3195 ((X).HighPart > 0 ) \
3198#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
3200#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
3202#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
3204#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
3206#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
3211#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
3212#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
3213#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
3215#if defined(_MSC_VER) && !defined(__clang__)
3216# define __assert_annotationA(msg) __annotation(L"Debug", L"AssertFail", L ## msg)
3217# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
3219# define __assert_annotationA(msg) \
3220 DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)
3221# define __assert_annotationW(msg) \
3222 DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)
3226# define NT_ANALYSIS_ASSUME(_exp) _Analysis_assume_(_exp)
3228# define NT_ANALYSIS_ASSUME(_exp) ((void)0)
3230# define NT_ANALYSIS_ASSUME(_exp) __noop(_exp)
3233#define NT_ASSERT_ACTION(exp) \
3234 (NT_ANALYSIS_ASSUME(exp), \
3236 (__assert_annotationA(#exp), \
3237 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3239#define NT_ASSERTMSG_ACTION(msg, exp) \
3240 (NT_ANALYSIS_ASSUME(exp), \
3242 (__assert_annotationA(msg), \
3243 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3245#define NT_ASSERTMSGW_ACTION(msg, exp) \
3246 (NT_ANALYSIS_ASSUME(exp), \
3248 (__assert_annotationW(msg), \
3249 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3253#define RTL_VERIFY(exp) \
3255 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
3257#define RTL_VERIFYMSG(msg, exp) \
3259 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
3261#define RTL_SOFT_VERIFY(exp) \
3263 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
3265#define RTL_SOFT_VERIFYMSG(msg, exp) \
3267 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
3270#define ASSERT (void)RTL_VERIFY
3271#define ASSERTMSG (void)RTL_VERIFYMSG
3272#define RTL_SOFT_ASSERT (void)RTL_SOFT_VERIFY
3273#define RTL_SOFT_ASSERTMSG (void)RTL_SOFT_VERIFYMSG
3275#define NT_VERIFY NT_ASSERT_ACTION
3276#define NT_VERIFYMSG NT_ASSERTMSG_ACTION
3277#define NT_VERIFYMSGW NT_ASSERTMSGW_ACTION
3279#define NT_ASSERT_ASSUME (void)NT_ASSERT_ACTION
3280#define NT_ASSERTMSG_ASSUME (void)NT_ASSERTMSG_ACTION
3281#define NT_ASSERTMSGW_ASSUME (void)NT_ASSERTMSGW_ACTION
3283#define NT_ASSERT_NOASSUME (void)NT_ASSERT_ACTION
3284#define NT_ASSERTMSG_NOASSUME (void)NT_ASSERTMSG_ACTION
3285#define NT_ASSERTMSGW_NOASSUME (void)NT_ASSERTMSGW_ACTION
3289#define ASSERT(exp) ((void)0)
3290#define ASSERTMSG(msg, exp) ((void)0)
3292#define RTL_SOFT_ASSERT(exp) ((void)0)
3293#define RTL_SOFT_ASSERTMSG(msg, exp) ((void)0)
3295#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
3296#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3298#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
3299#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3301#define NT_VERIFY(exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3302#define NT_VERIFYMSG(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3303#define NT_VERIFYMSGW(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3305#define NT_ASSERT_ASSUME(exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3306#define NT_ASSERTMSG_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3307#define NT_ASSERTMSGW_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3309#define NT_ASSERT_NOASSUME(exp) ((void)0)
3310#define NT_ASSERTMSG_NOASSUME(msg, exp) ((void)0)
3311#define NT_ASSERTMSGW_NOASSUME(msg, exp) ((void)0)
3315#define NT_FRE_ASSERT (void)NT_ASSERT_ACTION
3316#define NT_FRE_ASSERTMSG (void)NT_ASSERTMSG_ACTION
3317#define NT_FRE_ASSERTMSGW (void)NT_ASSERTMSGW_ACTION
3319#ifdef NT_ASSERT_ALWAYS_ASSUMES
3320# define NT_ASSERT NT_ASSERT_ASSUME
3321# define NT_ASSERTMSG NT_ASSERTMSG_ASSUME
3322# define NT_ASSERTMSGW NT_ASSERTMSGW_ASSUME
3324# define NT_ASSERT NT_ASSERT_NOASSUME
3325# define NT_ASSERTMSG NT_ASSERTMSG_NOASSUME
3326# define NT_ASSERTMSGW NT_ASSERTMSGW_NOASSUME
3329#if defined(_MSC_VER) && (defined(__REACTOS__) || defined(ASSERT_ALWAYS_NT_ASSERT)) && !defined(_BLDR_)
3331#define ASSERT NT_ASSERT
3333#define ASSERTMSG NT_ASSERTMSG
3335#define ASSERTMSGW NT_ASSERTMSGW
3337#define RTL_VERIFY NT_VERIFY
3340#define InitializeListHead32(ListHead) (\
3341 (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
3343#if !defined(_WINBASE_)
3345#if defined(_WIN64) && !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || !defined(_NTOSP_))
3369 if (((
ULONG_PTR)SListHead & 0xf) != 0) {
3373 SListHead->Region = (
ULONG_PTR)SListHead & VRN_MASK;
3375 SListHead->Region = 0;
3378 SListHead->Alignment = 0;
3398#define InterlockedFlushSList(SListHead) \
3399 ExInterlockedFlushSList(SListHead)
3403#define InterlockedPushEntrySList(SListHead, SListEntry) \
3404 ExpInterlockedPushEntrySList(SListHead, SListEntry)
3406#define InterlockedPopEntrySList(SListHead) \
3407 ExpInterlockedPopEntrySList(SListHead)
3409#define InterlockedFlushSList(SListHead) \
3410 ExpInterlockedFlushSList(SListHead)
3414#define QueryDepthSList(SListHead) \
3415 ExQueryDepthSList(SListHead)
3419#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk) ((ContextEx)->Chunk.Offset)
3420#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk) ((ContextEx)->Chunk.Length)
3421#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk) \
3422 ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
3423#define RTL_CONTEXT_OFFSET(Context, Chunk) \
3424 RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
3425#define RTL_CONTEXT_LENGTH(Context, Chunk) \
3426 RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
3427#define RTL_CONTEXT_CHUNK(Context, Chunk) \
3428 RTL_CONTEXT_EX_CHUNK((PCONTEXT_EX)(Context + 1), \
3429 (PCONTEXT_EX)(Context + 1), \
3440#ifndef RtlIsNtDdiVersionAvailable
3441#define RtlIsNtDdiVersionAvailable WdmlibRtlIsNtDdiVersionAvailable
3444#ifndef RtlIsServicePackVersionInstalled
3445#define RtlIsServicePackVersionInstalled WdmlibRtlIsServicePackVersionInstalled
3448#define RtlInterlockedSetBits(Flags, Flag) \
3449 InterlockedOr((PLONG)(Flags), Flag)
3451#define RtlInterlockedAndBits(Flags, Flag) \
3452 InterlockedAnd((PLONG)(Flags), Flag)
3454#define RtlInterlockedClearBits(Flags, Flag) \
3455 RtlInterlockedAndBits(Flags, ~(Flag))
3457#define RtlInterlockedXorBits(Flags, Flag) \
3458 InterlockedXor(Flags, Flag)
3460#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \
3461 (VOID) RtlInterlockedSetBits(Flags, Flag)
3463#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \
3464 (VOID) RtlInterlockedAndBits(Flags, Flag)
3466#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \
3467 RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
3473#ifdef RTL_USE_AVL_TABLES
3475#define RtlInitializeGenericTable RtlInitializeGenericTableAvl
3476#define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl
3477#define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl
3478#define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl
3479#define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl
3480#define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl
3481#define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl
3482#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
3483#define RtlGetElementGenericTable RtlGetElementGenericTableAvl
3484#define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl
3485#define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl
3489#define RtlInitializeSplayLinks(Links) { \
3490 PRTL_SPLAY_LINKS _SplayLinks; \
3491 _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
3492 _SplayLinks->Parent = _SplayLinks; \
3493 _SplayLinks->LeftChild = NULL; \
3494 _SplayLinks->RightChild = NULL; \
3497#define RtlIsLeftChild(Links) \
3498 (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3500#define RtlIsRightChild(Links) \
3501 (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3503#define RtlRightChild(Links) \
3504 ((PRTL_SPLAY_LINKS)(Links))->RightChild
3506#define RtlIsRoot(Links) \
3507 (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
3509#define RtlLeftChild(Links) \
3510 ((PRTL_SPLAY_LINKS)(Links))->LeftChild
3512#define RtlParent(Links) \
3513 ((PRTL_SPLAY_LINKS)(Links))->Parent
3515#define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
3517 PRTL_SPLAY_LINKS _SplayParent; \
3518 PRTL_SPLAY_LINKS _SplayChild; \
3519 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3520 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3521 _SplayParent->LeftChild = _SplayChild; \
3522 _SplayChild->Parent = _SplayParent; \
3525#define RtlInsertAsRightChild(ParentLinks,ChildLinks) \
3527 PRTL_SPLAY_LINKS _SplayParent; \
3528 PRTL_SPLAY_LINKS _SplayChild; \
3529 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3530 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3531 _SplayParent->RightChild = _SplayChild; \
3532 _SplayChild->Parent = _SplayParent; \
3535#if !defined(MIDL_PASS)
3540RtlConvertLongToLuid(
3567#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
3568#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
3569 *CallersAddress = (PVOID)_ReturnAddress(); \
3570 *CallersCaller = NULL;
3572#if (NTDDI_VERSION >= NTDDI_WIN2K)
3582#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
3584#if (NTDDI_VERSION >= NTDDI_WIN7)
3603 Context->ChainHead = Enumerator->ChainHead;
3604 Context->PrevLinkage = Enumerator->HashEntry.Linkage.Blink;
3669#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1
3670#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2
3672#define RtlUnicodeStringToOemSize(STRING) (NLS_MB_OEM_CODE_PAGE_TAG ? \
3673 RtlxUnicodeStringToOemSize(STRING) : \
3674 ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
3677#define RtlOemStringToUnicodeSize(STRING) ( \
3678 NLS_MB_OEM_CODE_PAGE_TAG ? \
3679 RtlxOemStringToUnicodeSize(STRING) : \
3680 ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
3683#define RtlOemStringToCountedUnicodeSize(STRING) ( \
3684 (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
3687#define RtlOffsetToPointer(B,O) ((PCHAR)(((PCHAR)(B)) + ((ULONG_PTR)(O))))
3688#define RtlPointerToOffset(B,P) ((ULONG)(((PCHAR)(P)) - ((PCHAR)(B))))
NTSYSAPI VOID NTAPI RtlGenerate8dot3Name(_In_ PCUNICODE_STRING Name, _In_ BOOLEAN AllowExtendedCharacters, _Inout_ PGENERATE_NAME_CONTEXT Context, _Inout_ PUNICODE_STRING Name8dot3)
static GENERIC_MAPPING GenericMapping
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 LineNumber
VOID NTAPI RtlInitializeGenericTableAvl(IN OUT PRTL_AVL_TABLE Table, IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine, IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine, IN PRTL_AVL_FREE_ROUTINE FreeRoutine, IN PVOID TableContext)
static WCHAR ServiceName[]
NTSYSAPI ULONG NTAPI RtlRandomEx(PULONG Seed)
OSVERSIONINFOW VersionInfo
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RtlInitializeBitMap
#define RtlFindNextForwardRunClear
#define RtlFindLastBackwardRunClear
#define RtlFindClearBitsAndSet
#define RtlNumberOfSetBits
#define RtlFindNextForwardRunSet
#define RtlFindLongestRunClear
#define RtlFindFirstRunClear
#define RtlFindSetBitsAndClear
#define RtlNumberOfClearBits
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
static const WCHAR Signature[]
static const WCHAR Message[]
BOOLEAN NTAPI RtlIsValidOemCharacter(IN PWCHAR Char)
#define __drv_freesMem(kind)
#define _IRQL_requires_max_(irql)
#define __drv_allocatesMem(kind)
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define RtlCompareMemory(s1, s2, l)
#define RemoveTailList(ListHead)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
_In_ ULONG FramesToCapture
_In_ ULONG _Out_opt_ PULONG BackTraceHash
VOID NTAPI RtlInitializeGenericTable(IN PRTL_GENERIC_TABLE Table, IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine, IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine, IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine, IN PVOID TableContext)
_In_ GUID _In_ PVOID ValueData
VOID NTAPI RtlFreeOemString(POEM_STRING OemString)
BOOLEAN NTAPI RtlTimeToSecondsSince1970(PLARGE_INTEGER Time, PULONG ElapsedSeconds)
BOOLEAN NTAPI RtlIsNameLegalDOS8Dot3(_In_ PUNICODE_STRING Name, _Inout_opt_ POEM_STRING OemName, _Inout_opt_ PBOOLEAN NameContainsSpaces)
NTSYSAPI NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS)
NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING *, const UNICODE_STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG, PCWSTR, PCWSTR, ULONG, PVOID, ULONG)
NTSYSAPI NTSTATUS WINAPI RtlVerifyVersionInfo(const RTL_OSVERSIONINFOEXW *, DWORD, DWORDLONG)
NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR)
NTSYSAPI CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG)
NTSYSAPI NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING, PCSZ)
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
NTSYSAPI UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG, UINT, UINT *)
NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG, LONGLONG, INT)
NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG)
NTSYSAPI NTSTATUS WINAPI RtlInitUnicodeStringEx(PUNICODE_STRING, PCWSTR)
NTSYSAPI NTSTATUS WINAPI RtlInt64ToUnicodeString(ULONGLONG, ULONG, UNICODE_STRING *)
NTSYSAPI BOOLEAN WINAPI RtlPrefixString(const STRING *, const STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING *, const UNICODE_STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
NTSYSAPI NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR, PSID, BOOLEAN)
NTSYSAPI ULONGLONG WINAPI RtlLargeIntegerDivide(ULONGLONG, ULONGLONG, ULONGLONG *)
NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *, LPDWORD)
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSYSAPI CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG)
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG, LONGLONG)
NTSYSAPI NTSTATUS WINAPI RtlDuplicateUnicodeString(int, const UNICODE_STRING *, UNICODE_STRING *)
NTSYSAPI BOOLEAN WINAPI RtlValidRelativeSecurityDescriptor(PSECURITY_DESCRIPTOR, ULONG, SECURITY_INFORMATION)
NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToCountedOemString(STRING *, const UNICODE_STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR)
NTSYSAPI NTSTATUS WINAPI RtlDecompressBuffer(USHORT, PUCHAR, ULONG, PUCHAR, ULONG, PULONG)
NTSYSAPI NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
NTSYSAPI ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT, UINT)
NTSYSAPI LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT, INT)
NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR, BOOLEAN, PACL, BOOLEAN)
NTSYSAPI LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG, INT, INT *)
NTSYSAPI NTSTATUS WINAPI RtlAppendStringToString(STRING *, const STRING *)
NTSYSAPI void WINAPI RtlCopyLuid(PLUID, const LUID *)
NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD, PSID, PSID)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPSETSTG *rgelt, [out] ULONG *pceltFetched)
PPC_QUAL void __stosb(unsigned char *Dest, const unsigned char Data, unsigned long Count)
NTSTATUS NTAPI RtlUnicodeToUTF8N(CHAR *utf8_dest, ULONG utf8_bytes_max, ULONG *utf8_bytes_written, const WCHAR *uni_src, ULONG uni_bytes)
#define RtlFillMemoryUlong(dst, len, val)
unsigned __int64 * PULONG64
static PTIME_FIELDS TimeFields
DWORD SECURITY_INFORMATION
#define _In_reads_bytes_(size)
#define _Out_writes_bytes_(size)
#define _Out_writes_bytes_to_(size, count)
#define _Out_range_(lb, ub)
#define _Out_writes_bytes_all_(size)
#define _Writable_bytes_(size)
#define _Out_writes_(size)
#define _Outptr_opt_result_maybenull_
#define _Post_equal_to_(expr)
#define _At_(target, annos)
#define _Must_inspect_result_
#define _Inout_updates_bytes_(size)
#define _Out_writes_bytes_to_opt_(size, count)
#define _In_reads_bytes_opt_(size)
#define _Post_writable_byte_size_(size)
#define _Pre_readable_size_(size)
#define _Post_satisfies_(cond)
#define _Out_writes_to_(size, count)
#define _In_range_(lb, ub)
#define _Out_writes_bytes_opt_(size)
#define _Maybe_raises_SEH_exception_
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
NTSYSAPI NTSTATUS NTAPI RtlCreateRegistryKey(_In_ ULONG RelativeTo, _In_ PWSTR Path)
NTSYSAPI NTSTATUS NTAPI RtlAddAce(_Inout_ PACL Acl, _In_ ULONG AceRevision, _In_ ULONG StartingAceIndex, _In_reads_bytes_(AceListLength) PVOID AceList, _In_ ULONG AceListLength)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL Dacl
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID _Inout_ PULONG OwnerSize
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
_In_ const STRING * String2
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
_Must_inspect_result_ NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeString(_When_(AllocateDestinationString, _Out_ _At_(DestinationString->Buffer, __drv_allocatesMem(Mem))) _When_(!AllocateDestinationString, _Inout_) PUNICODE_STRING DestinationString, _In_ PCUNICODE_STRING SourceString, _In_ BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlCompressBuffer(_In_ USHORT CompressionFormatAndEngine, _In_reads_bytes_(UncompressedBufferSize) PUCHAR UncompressedBuffer, _In_ ULONG UncompressedBufferSize, _Out_writes_bytes_to_(CompressedBufferSize, *FinalCompressedSize) PUCHAR CompressedBuffer, _In_ ULONG CompressedBufferSize, _In_ ULONG UncompressedChunkSize, _Out_ PULONG FinalCompressedSize, _In_ PVOID WorkSpace)
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlHashUnicodeString(_In_ CONST UNICODE_STRING *String, _In_ BOOLEAN CaseInSensitive, _In_ ULONG HashAlgorithm, _Out_ PULONG HashValue)
_When_(Status< 0, _Out_range_(>, 0)) _When_(Status >=0
_Out_ PLARGE_INTEGER Time
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID _Inout_ PULONG _Out_writes_bytes_to_opt_ PrimaryGroupSize PSID PrimaryGroup
_In_ const STRING _In_ BOOLEAN CaseInSensitive
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
NTSYSAPI NTSTATUS NTAPI RtlGetCompressionWorkSpaceSize(_In_ USHORT CompressionFormatAndEngine, _Out_ PULONG CompressBufferWorkSpaceSize, _Out_ PULONG CompressFragmentWorkSpaceSize)
_Out_ PCPTABLEINFO CodePageTable
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteSize(PULONG MbSize, PCWCH UnicodeString, ULONG UnicodeSize)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG SaclSize
_Inout_opt_ POEM_STRING _Out_opt_ PBOOLEAN NameContainsSpaces
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlGetAce(PACL Acl, ULONG AceIndex, PVOID *Ace)
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG BytesInUnicodeString
_In_ const STRING _In_ BOOLEAN CaseInsensitive
_In_ ULONG _In_ ULONG AceFlags
_In_opt_ PSID _In_opt_ BOOLEAN GroupDefaulted
_In_ PSID _In_ BOOLEAN AllocateDestinationString
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
_Must_inspect_result_ NTSYSAPI LONG NTAPI RtlCompareUnicodeStrings(_In_reads_(String1Length) PCWCH String1, _In_ SIZE_T String1Length, _In_reads_(String2Length) PCWCH String2, _In_ SIZE_T String2Length, _In_ BOOLEAN CaseInSensitive)
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE _In_opt_ PVOID _In_opt_ PVOID Environment
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI ULONG NTAPI RtlxAnsiStringToUnicodeSize(PCANSI_STRING AnsiString)
NTSYSAPI LONG NTAPI RtlCompareUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInsensitive)
NTSYSAPI NTSTATUS NTAPI RtlGetSaclSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PBOOLEAN SaclPresent, _Out_ PACL *Sacl, _Out_ PBOOLEAN SaclDefaulted)
NTSYSAPI BOOLEAN NTAPI RtlValidSid(IN PSID Sid)
NTSYSAPI CHAR NTAPI RtlUpperChar(CHAR Source)
NTSYSAPI BOOLEAN NTAPI RtlEqualPrefixSid(PSID Sid1, PSID Sid2)
_In_ ULONG _In_ ULONGLONG ConditionMask
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(_Out_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_ ULONG Revision)
NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
_Out_writes_bytes_to_opt_ BufferLength PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteN(PCHAR MbString, ULONG MbSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
NTSYSAPI NTSTATUS NTAPI RtlValidateUnicodeString(_In_ ULONG Flags, _In_ PCUNICODE_STRING String)
_In_opt_ PSID _In_opt_ BOOLEAN OwnerDefaulted
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL Sacl
_Out_ _Inout_ POEM_STRING DestinationString
_In_ ULONG _In_ SECURITY_INFORMATION RequiredInformation
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(_In_ PSID Sid)
_In_ ULONG _In_ ULONG CompressedBufferSize
_In_ ULONG _In_ ULONG _Out_ PULONG FinalUncompressedSize
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PCUNICODE_STRING Source)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID _Inout_ PULONG _Out_writes_bytes_to_opt_ PrimaryGroupSize PSID _Inout_ PULONG PrimaryGroupSize
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSYSAPI NTSTATUS NTAPI RtlGetGroupSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PSID *Group, _Out_ PBOOLEAN GroupDefaulted)
NTSYSAPI PVOID NTAPI RtlFreeSid(_In_ _Post_invalid_ PSID Sid)
NTSYSAPI VOID NTAPI RtlTimeToTimeFields(PLARGE_INTEGER Time, PTIME_FIELDS TimeFields)
NTSYSAPI ULONG NTAPI RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString)
_Out_ PULONG ElapsedSeconds
_Must_inspect_result_ NTSYSAPI NTSTATUS NTAPI RtlAllocateAndInitializeSid(_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, _In_ UCHAR SubAuthorityCount, _In_ ULONG SubAuthority0, _In_ ULONG SubAuthority1, _In_ ULONG SubAuthority2, _In_ ULONG SubAuthority3, _In_ ULONG SubAuthority4, _In_ ULONG SubAuthority5, _In_ ULONG SubAuthority6, _In_ ULONG SubAuthority7, _Outptr_ PSID *Sid)
NTSYSAPI ULONG NTAPI RtlWalkFrameChain(_Out_writes_(Count -(Flags > > RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT)) PVOID *Callers, _In_ ULONG Count, _In_ ULONG Flags)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG AbsoluteSecurityDescriptorSize
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
_In_ ULONG SecurityDescriptorLength
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString(PUNICODE_STRING Destination, PCWSTR Source)
NTSYSAPI NTSTATUS NTAPI RtlDeleteAce(PACL Acl, ULONG AceIndex)
NTSYSAPI VOID NTAPI RtlMapGenericMask(PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping)
_In_ const STRING * Source
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI ULONG NTAPI RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString)
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptorRelative(_Out_ PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor, _In_ ULONG Revision)
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInMultiByteString
NTSYSAPI NTSTATUS NTAPI RtlGetDaclSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PBOOLEAN DaclPresent, _Out_ PACL *Dacl, _Out_ PBOOLEAN DaclDefaulted)
NTSYSAPI NTSTATUS NTAPI RtlGetOwnerSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PSID *Owner, _Out_ PBOOLEAN OwnerDefaulted)
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeToOemN(PCHAR OemString, ULONG OemSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
_Inout_opt_ POEM_STRING OemName
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG DaclSize
_In_ ULONG UncompressedBufferSize
NTSYSAPI VOID NTAPI RtlCopyString(_Out_ PSTRING DestinationString, _In_opt_ const STRING *SourceString)
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(_In_ PSID Sid1, _In_ PSID Sid2)
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PCUNICODE_STRING SourceString)
_In_ ULONG _In_ ACCESS_MASK AccessMask
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToOemN(PCHAR OemString, ULONG OemSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInsensitive)
NTSYSAPI VOID NTAPI RtlCaptureContext(_Out_ PCONTEXT ContextRecord)
NTSYSAPI BOOLEAN NTAPI RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor)
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInOemString
#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT
NTSYSAPI WCHAR NTAPI RtlDowncaseUnicodeChar(IN WCHAR Source)
NTSYSAPI VOID NTAPI RtlSecondsSince1970ToTime(_In_ ULONG SecondsSince1970, _Out_ PLARGE_INTEGER Time)
NTSYSAPI ULONG NTAPI RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString)
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
_In_ BOOLEAN _In_opt_ PACL _In_opt_ BOOLEAN DaclDefaulted
*BytesInUnicodeString PWCH _In_ ULONG MaxBytesInUnicodeString
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PCANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeToMultiByteN(PCHAR MbString, ULONG MbSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
NTSYSAPI NTSTATUS NTAPI RtlCharToInteger(PCSZ String, ULONG Base, PULONG Value)
NTSYSAPI WCHAR NTAPI RtlUpcaseUnicodeChar(WCHAR Source)
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeN(_Out_ PWCH UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH MbString, _In_ ULONG MbSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlOemToUnicodeN(_Out_ PWCHAR UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH OemString, _In_ ULONG OemSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeSize(_Out_ PULONG UnicodeSize, _In_ PCCH MbString, _In_ ULONG MbSize)
NTSYSAPI PVOID NTAPI RtlDestroyHeap(IN PVOID HeapHandle)
NTSYSAPI VOID NTAPI RtlFreeAnsiString(PANSI_STRING AnsiString)
NTSYSAPI VOID NTAPI RtlInitString(PSTRING DestinationString, PCSZ SourceString)
ACCESS_MASK * PACCESS_MASK
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI PVOID NTAPI RtlCreateHeap(IN ULONG Flags, IN PVOID HeapBase OPTIONAL, IN ULONG ReserveSize OPTIONAL, IN ULONG CommitSize OPTIONAL, IN PVOID Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(PUNICODE_STRING String, ULONG Base, PULONG Value)
NTSYSAPI NTSTATUS NTAPI RtlIntegerToUnicodeString(ULONG Value, ULONG Base, PUNICODE_STRING String)
NTSYSAPI LONG NTAPI RtlCompareString(PSTRING String1, PSTRING String2, BOOLEAN CaseInSensitive)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSYSAPI BOOLEAN NTAPI RtlEqualString(PSTRING String1, PSTRING String2, BOOLEAN CaseInSensitive)
NTSYSAPI BOOLEAN NTAPI RtlPrefixUnicodeString(IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive)
NTSYSAPI VOID NTAPI RtlUpperString(PSTRING DestinationString, PSTRING SourceString)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
#define DECLSPEC_NORETURN
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSYSAPI NTSTATUS NTAPI RtlSetGroupSecurityDescriptor(IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID Group, IN BOOLEAN GroupDefaulted)
NTSYSAPI NTSTATUS NTAPI RtlConvertSidToUnicodeString(OUT PUNICODE_STRING DestinationString, IN PVOID Sid, IN BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlAbsoluteToSelfRelativeSD(IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor, IN OUT PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor, IN PULONG BufferLength)
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
VOID FASTCALL RtlPrefetchMemoryNonTemporal(IN PVOID Source, IN SIZE_T Length)
#define STATUS_DATATYPE_MISALIGNMENT
VOID NTAPI PfxInitialize(IN PPREFIX_TABLE PrefixTable)
PPREFIX_TABLE_ENTRY NTAPI PfxFindPrefix(IN PPREFIX_TABLE PrefixTable, IN PSTRING FullName)
VOID NTAPI PfxRemovePrefix(IN PPREFIX_TABLE PrefixTable, IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
BOOLEAN NTAPI PfxInsertPrefix(IN PPREFIX_TABLE PrefixTable, IN PSTRING Prefix, IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
#define RtlUTF8ToUnicodeN
VOID NTAPI RtlAssert(IN PVOID FailedAssertion, IN PVOID FileName, IN ULONG LineNumber, IN PCHAR Message OPTIONAL)
NTSTATUS NTAPI RtlDecompressChunks(OUT PUCHAR UncompressedBuffer, IN ULONG UncompressedBufferSize, IN PUCHAR CompressedBuffer, IN ULONG CompressedBufferSize, IN PUCHAR CompressedTail, IN ULONG CompressedTailSize, IN PCOMPRESSED_DATA_INFO CompressedDataInfo)
NTSTATUS NTAPI RtlDescribeChunk(IN USHORT CompressionFormat, IN OUT PUCHAR *CompressedBuffer, IN PUCHAR EndOfCompressedBufferPlus1, OUT PUCHAR *ChunkBuffer, OUT PULONG ChunkSize)
NTSTATUS NTAPI RtlReserveChunk(IN USHORT CompressionFormat, IN OUT PUCHAR *CompressedBuffer, IN PUCHAR EndOfCompressedBufferPlus1, OUT PUCHAR *ChunkBuffer, IN ULONG ChunkSize)
NTSTATUS NTAPI RtlDecompressFragment(IN USHORT format, OUT PUCHAR uncompressed, IN ULONG uncompressed_size, IN PUCHAR compressed, IN ULONG compressed_size, IN ULONG offset, OUT PULONG final_size, IN PVOID workspace)
NTSTATUS NTAPI RtlCompressChunks(IN PUCHAR UncompressedBuffer, IN ULONG UncompressedBufferSize, OUT PUCHAR CompressedBuffer, IN ULONG CompressedBufferSize, IN OUT PCOMPRESSED_DATA_INFO CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN PVOID WorkSpace)
VOID NTAPI RtlInitCodePageTable(IN PUSHORT TableBase, OUT PCPTABLEINFO CodePageTable)
NTSTATUS NTAPI RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP, OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize OPTIONAL, IN PCHAR CustomString, IN ULONG CustomSize)
NTSTATUS NTAPI RtlUpcaseUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
NTSTATUS NTAPI RtlUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
VOID NTAPI RtlRunOnceInitialize(_Out_ PRTL_RUN_ONCE RunOnce)
_Maybe_raises_SEH_exception_ NTSTATUS NTAPI RtlRunOnceExecuteOnce(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ PVOID *Context)
NTSTATUS NTAPI RtlRunOnceComplete(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ ULONG Flags, _In_opt_ PVOID Context)
_Must_inspect_result_ NTSTATUS NTAPI RtlRunOnceBeginInitialize(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ ULONG Flags, _Outptr_opt_result_maybenull_ PVOID *Context)
NTSTATUS NTAPI RtlOemStringToCountedUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
#define __analysis_noreturn
base of all file and directory entries
root entry for file system trees
struct _LIST_ENTRY * Blink
struct _LIST_ENTRY * Flink
struct _SINGLE_LIST_ENTRY * Next
unsigned short MaximumLength
NTSTATUS NTAPI RtlCreateSystemVolumeInformationFolder(IN PUNICODE_STRING VolumeRootPath)
CONST STRING * PCOEM_STRING
VOID NTAPI RtlRemoveUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable, PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry)
BOOLEAN NTAPI RtlInsertUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable, PUNICODE_STRING Prefix, PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry)
PUNICODE_PREFIX_TABLE_ENTRY NTAPI RtlFindUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable, PUNICODE_STRING FullName, ULONG CaseInsensitiveIndex)
PUNICODE_PREFIX_TABLE_ENTRY NTAPI RtlNextUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable, BOOLEAN Restart)
VOID NTAPI RtlInitializeUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable)
struct _LARGE_INTEGER::@2299 u
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_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
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY ListEnd
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
NTSYSAPI BOOLEAN NTAPI RtlDeleteElementGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer)
_In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInCustomCPString
_In_ PUNICODE_STRING _In_ ULONG CaseInsensitiveIndex
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG UTF8StringActualByteCount
NTSYSAPI BOOLEAN NTAPI RtlInitWeakEnumerationHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Out_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG _In_ ULONG UTF8StringByteCount
NTSYSAPI NTSTATUS NTAPI RtlCreateServiceSid(_In_ PUNICODE_STRING ServiceName, _Out_writes_bytes_opt_(*ServiceSidLength) PSID ServiceSid, _Inout_ PULONG ServiceSidLength)
_In_ LARGE_INTEGER Divisor
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
FORCEINLINE ULONG NTAPI RtlTotalBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement)
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG _In_ ULONG UnicodeStringByteCount
#define RtlUlongByteSwap(_x)
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTableFull(_In_ PRTL_GENERIC_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement, _In_ PVOID NodeOrParent, _In_ TABLE_SEARCH_RESULT SearchResult)
FORCEINLINE VOID NTAPI RtlInitHashTableContextFromEnumerator(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context, _In_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
FORCEINLINE PVOID RtlSecureZeroMemory(_Out_writes_bytes_all_(Size) PVOID Pointer, _In_ SIZE_T Size)
#define RtlUlonglongByteSwap(_x)
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn
*UTF8StringActualByteCount PCHAR _In_ ULONG UTF8StringMaxByteCount
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(_In_ ULONG OSMajorVersion, _In_ ULONG OSMinorVersion, _In_ ULONG SpMajorVersion, _In_ ULONG SpMinorVersion, _Out_ PULONG ReturnedProductType)
NTSYSAPI NTSTATUS NTAPI RtlIsNormalizedString(_In_ ULONG NormForm, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_ PBOOLEAN Normalized)
$endif(_WDMDDK_) $if(_WDMDDK_) _Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlAreBitsClear(_In_ PRTL_BITMAP BitMapHeader
_In_ ULONG _In_ ULONG _In_ ULONG _In_ PCOMPRESSED_DATA_INFO CompressedDataInfo
FORCEINLINE ULONG NTAPI RtlTotalEntriesHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
NTSYSAPI PVOID NTAPI RtlLookupElementGenericTableFullAvl(_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer, _Out_ PVOID *NodeOrParent, _Out_ TABLE_SEARCH_RESULT *SearchResult)
NTSYSAPI BOOLEAN NTAPI RtlContractHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
NTSYSAPI NTSTATUS NTAPI RtlIoEncodeMemIoResource(_In_ struct _IO_RESOURCE_DESCRIPTOR *Descriptor, _In_ UCHAR Type, _In_ ULONGLONG Length, _In_ ULONGLONG Alignment, _In_ ULONGLONG MinimumAddress, _In_ ULONGLONG MaximumAddress)
FORCEINLINE LUID NTAPI_INLINE RtlConvertUlongToLuid(_In_ ULONG Val)
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlLookupEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _In_ ULONG_PTR Signature, _Out_opt_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
FORCEINLINE ULONG NTAPI RtlNonEmptyBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupFirstMatchingElementGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer, _Out_ PVOID *RestartKey)
_In_ ULONG _In_ ULONG _In_ ULONG CompressedTailSize
_Inout_ PUCHAR * CompressedBuffer
_Ret_range_(<, MAXLONG) NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
_In_ ULONG MaxBytesInCustomCPString
NTSYSAPI ULONGLONG NTAPI RtlIoDecodeMemIoResource(_In_ struct _IO_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Alignment, _Out_opt_ PULONGLONG MinimumAddress, _Out_opt_ PULONGLONG MaximumAddress)
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreeSuccessor(_In_ PRTL_SPLAY_LINKS Links)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableLikeADirectory(_In_ PRTL_AVL_TABLE Table, _In_opt_ PRTL_AVL_MATCH_FUNCTION MatchFunction, _In_opt_ PVOID MatchData, _In_ ULONG NextFlag, _Inout_ PVOID *RestartKey, _Inout_ PULONG DeleteCount, _In_ PVOID Buffer)
_Out_ PBOOLEAN SaclPresent
FORCEINLINE VOID NTAPI RtlReleaseHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
NTSYSAPI VOID NTAPI RtlEndWeakEnumerationHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
*UnicodeStringActualByteCount PWSTR _In_ ULONG UnicodeStringMaxByteCount
NTSYSAPI USHORT NTAPI RtlCaptureStackBackTrace(_In_ ULONG FramesToSkip, _In_ ULONG FramesToCapture, _Out_writes_to_(FramesToCapture, return) PVOID *BackTrace, _Out_opt_ PULONG BackTraceHash)
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmpty(_In_ PRTL_GENERIC_TABLE Table)
_In_ SIZE_T _In_ SIZE_T String2Length
FORCEINLINE BOOLEAN RemoveEntryListUnsafe(_In_ PLIST_ENTRY Entry)
NTSYSAPI VOID NTAPI RtlSecondsSince1980ToTime(_In_ ULONG ElapsedSeconds, _Out_ PLARGE_INTEGER Time)
NTSYSAPI PVOID NTAPI RtlLookupElementGenericTableFull(_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer, _Out_ PVOID *NodeOrParent, _Out_ TABLE_SEARCH_RESULT *SearchResult)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_ BOOLEAN Restart)
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR _Out_ PULONG ChunkSize
_In_ ULONG _In_ ULONG HintIndex
_In_ ULONG _In_ ULONG _In_ ULONG AceListLength
_In_ BOOLEAN _In_ ULONG HashAlgorithm
_In_ ULONG _In_ ULONG _Out_ PULONG _In_ PVOID WorkSpace
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplayingAvl(_In_ PRTL_AVL_TABLE Table, _Inout_ PVOID *RestartKey)
_In_ LARGE_INTEGER _Out_opt_ PLARGE_INTEGER Remainder
_In_ PCWSTR _In_ LONG SourceStringLength
_Out_ PBOOLEAN _Out_ PACL _Out_ PBOOLEAN SaclDefaulted
#define InterlockedPushEntrySList(SListHead, SListEntry)
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlWeaklyEnumerateEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
FORCEINLINE ULONG NTAPI RtlActiveEnumeratorsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply(_In_ LARGE_INTEGER Multiplicand, _In_ LONG Multiplier)
_In_opt_ PVOID _In_opt_ SIZE_T ReserveSize
FORCEINLINE VOID FatalListEntryError(_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
NTSYSAPI ULONG64 NTAPI RtlGetEnabledExtendedFeatures(IN ULONG64 FeatureMask)
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerSubtract(_In_ LARGE_INTEGER Minuend, _In_ LARGE_INTEGER Subtrahend)
_In_ BOOLEAN _Inout_ PGENERATE_NAME_CONTEXT _Inout_ PUNICODE_STRING Name8dot3
static __inline LARGE_INTEGER NTAPI_INLINE RtlConvertUlongToLargeInteger(_In_ ULONG UnsignedInteger)
_In_ PSID _In_ PSID NewSid
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlRealPredecessor(_In_ PRTL_SPLAY_LINKS Links)
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
*BytesInOemString PCHAR OemString
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerNegate(_In_ LARGE_INTEGER Subtrahend)
NTSYSAPI NTSTATUS NTAPI RtlIdnToUnicode(IN ULONG Flags, IN PCWSTR SourceString, IN LONG SourceStringLength, OUT PWSTR DestinationString, IN OUT PLONG DestinationStringLength)
#define RtlIsServicePackVersionInstalled
#define RtlUshortByteSwap(_x)
NTSYSAPI VOID NTAPI RtlFillMemoryUlonglong(_Out_writes_bytes_all_(Length) PVOID Destination, _In_ SIZE_T Length, _In_ ULONGLONG Pattern)
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTableFullAvl(_In_ PRTL_AVL_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement, _In_ PVOID NodeOrParent, _In_ TABLE_SEARCH_RESULT SearchResult)
NTSYSAPI ULONGLONG NTAPI RtlCmDecodeMemIoResource(_In_ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Start)
_Out_ PUNICODE_STRING DosName
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSplay(_Inout_ PRTL_SPLAY_LINKS Links)
NTSYSAPI BOOLEAN NTAPI RtlRemoveEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _In_ PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry, _Inout_opt_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlGetElementGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_ ULONG I)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupElementGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer)
NTSYSAPI VOID NTAPI RtlGetCallersAddress(_Out_ PVOID *CallersAddress, _Out_ PVOID *CallersCaller)
NTSYSAPI ULONG NTAPI RtlNumberGenericTableElements(_In_ PRTL_GENERIC_TABLE Table)
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlEnumerateEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
*UnicodeStringActualByteCount PWSTR UnicodeStringDestination
FORCEINLINE ULONG NTAPI RtlEmptyBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
#define RtlCopyMemoryNonTemporal
_In_ SIZE_T String1Length
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE _In_opt_ PVOID TableContext
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE FreeRoutine
NTSYSAPI BOOLEAN NTAPI RtlDeleteElementGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer)
NTSYSAPI VOID NTAPI RtlEndEnumerationHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerArithmeticShift(_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
#define InterlockedPopEntrySList(SListHead)
FORCEINLINE VOID NTAPI RtlInitHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement)
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
*BytesInMultiByteString PCHAR _In_ ULONG MaxBytesInMultiByteString
NTSYSAPI NTSTATUS NTAPI RtlIdnToAscii(_In_ ULONG Flags, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_writes_to_(*DestinationStringLength, *DestinationStringLength) PWSTR DestinationString, _Inout_ PLONG DestinationStringLength)
_In_ ULONG _In_ ULONG AclRevision
NTSYSAPI LONG NTAPI RtlCompareAltitudes(_In_ PCUNICODE_STRING Altitude1, _In_ PCUNICODE_STRING Altitude2)
NTSYSAPI NTSTATUS NTAPI RtlIdnToNameprepUnicode(_In_ ULONG Flags, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_writes_to_(*DestinationStringLength, *DestinationStringLength) PWSTR DestinationString, _Inout_ PLONG DestinationStringLength)
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerShiftLeft(_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
NTSYSAPI VOID NTAPI RtlDeleteHashTable(_In_ _When_((HashTable->Flags &RTL_HASH_ALLOCATED_HEADER), __drv_freesMem(Mem) _Post_invalid_) PRTL_DYNAMIC_HASH_TABLE HashTable)
NTSYSAPI NTSTATUS NTAPI RtlCmEncodeMemIoResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _In_ UCHAR Type, _In_ ULONGLONG Length, _In_ ULONGLONG Start)
_In_ ULONG UncompressedFragmentSize
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmptyAvl(_In_ PRTL_AVL_TABLE Table)
NTSYSAPI NTSTATUS NTAPI RtlFindClosestEncodableLength(_In_ ULONGLONG SourceLength, _Out_ PULONGLONG TargetLength)
_In_ LARGE_INTEGER Addend2
_In_ ULONG _In_ ULONG StartingAceIndex
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
_In_ __drv_aliasesMem PSTRING Prefix
_In_ PSID _In_ PSID _Out_ ULONG * NumChanges
FORCEINLINE VOID InitializeSListHead(_Out_ PSLIST_HEADER SListHead)
*UTF8StringActualByteCount PCHAR UTF8StringDestination
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG UnicodeStringActualByteCount
*BytesInMultiByteString PCHAR MultiByteString
NTSYSAPI NTSTATUS NTAPI RtlCreateVirtualAccountSid(_In_ PCUNICODE_STRING Name, _In_ ULONG BaseSubAuthority, _Out_writes_bytes_(*SidLength) PSID Sid, _Inout_ PULONG SidLength)
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlDelete(_In_ PRTL_SPLAY_LINKS Links)
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_ BOOLEAN Restart)
FORCEINLINE VOID AppendTailList(_Inout_ PLIST_ENTRY ListHead, _Inout_ PLIST_ENTRY ListToAppend)
#define RtlIsNtDdiVersionAvailable
_Inout_ PUCHAR _In_ PUCHAR EndOfCompressedBufferPlus1
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
_Must_inspect_result_ NTSYSAPI SIZE_T NTAPI RtlCompareMemoryUlong(_In_reads_bytes_(Length) PVOID Source, _In_ SIZE_T Length, _In_ ULONG Pattern)
$if(_WDMDDK_) DECLSPEC_NORETURN FORCEINLINE VOID RtlFailFast(_In_ ULONG Code)
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T CommitSize
*BytesInOemString PCHAR _In_ ULONG MaxBytesInOemString
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupElementGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer)
NTSYSAPI ULONG NTAPI RtlNumberGenericTableElementsAvl(_In_ PRTL_AVL_TABLE Table)
_In_ PCWSTR _In_ LONG _Out_writes_to_ DestinationStringLength PWSTR _Inout_ PLONG DestinationStringLength
_In_ PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplaying(_In_ PRTL_GENERIC_TABLE Table, _Inout_ PVOID *RestartKey)
NTSYSAPI BOOLEAN NTAPI RtlInsertEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _In_ __drv_aliasesMem PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry, _In_ ULONG_PTR Signature, _Inout_opt_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
_In_ __drv_aliasesMem PSTRING _Out_ PPREFIX_TABLE_ENTRY PrefixTableEntry
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreePredecessor(_In_ PRTL_SPLAY_LINKS Links)
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR * ChunkBuffer
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlGetElementGenericTableAvl(_In_ PRTL_AVL_TABLE Table, _In_ ULONG I)
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlGetNextEntryHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _In_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
#define FAST_FAIL_CORRUPT_LIST_ENTRY
NTSYSAPI BOOLEAN NTAPI RtlInitEnumerationHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Out_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerShiftRight(_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
NTSYSAPI VOID NTAPI RtlDeleteNoSplay(_In_ PRTL_SPLAY_LINKS Links, _Inout_ PRTL_SPLAY_LINKS *Root)
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlRealSuccessor(_In_ PRTL_SPLAY_LINKS Links)
NTSYSAPI BOOLEAN NTAPI RtlExpandHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
_In_ BOOLEAN AllowExtendedCharacters
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
_IRQL_requires_same_ _In_ PVOID _In_ PVOID MatchData
RTL_GENERIC_FREE_ROUTINE * PRTL_GENERIC_FREE_ROUTINE
#define RTL_HASH_ALLOCATED_HEADER
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
_Inout_opt_ PVOID Parameter
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
RTL_GENERIC_COMPARE_ROUTINE * PRTL_GENERIC_COMPARE_ROUTINE
RTL_GENERIC_ALLOCATE_ROUTINE * PRTL_GENERIC_ALLOCATE_ROUTINE
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
* PSID_IDENTIFIER_AUTHORITY
#define SECURITY_MAX_SID_SIZE