48 ListHead->Flink = ListHead->Blink = ListHead;
59 OldFlink = ListHead->
Flink;
60 Entry->Flink = OldFlink;
61 Entry->Blink = ListHead;
63 ListHead->Flink =
Entry;
74 OldBlink = ListHead->
Blink;
75 Entry->Flink = ListHead;
76 Entry->Blink = OldBlink;
78 ListHead->Blink =
Entry;
88 return (
BOOLEAN)(ListHead->Flink == ListHead);
98 FirstEntry = ListHead->
Next;
99 if (FirstEntry !=
NULL) {
113 Entry->Next = ListHead->Next;
114 ListHead->Next =
Entry;
125 OldFlink =
Entry->Flink;
126 OldBlink =
Entry->Blink;
127 OldFlink->
Blink = OldBlink;
128 OldBlink->
Flink = OldFlink;
129 return (
BOOLEAN)(OldFlink == OldBlink);
140 Entry = ListHead->Flink;
141 Flink =
Entry->Flink;
142 ListHead->Flink = Flink;
143 Flink->
Blink = ListHead;
155 Entry = ListHead->Blink;
156 Blink =
Entry->Blink;
157 ListHead->Blink = Blink;
158 Blink->
Flink = ListHead;
170RtlInitEmptyUnicodeString(
185RtlInitEmptyAnsiString(
198#define RtlEqualLuid(L1, L2) (((L1)->HighPart == (L2)->HighPart) && \
199 ((L1)->LowPart == (L2)->LowPart))
219#define ASSERT( exp ) \
221 (RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ),FALSE) : \
224#define ASSERTMSG( msg, exp ) \
226 (RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ),FALSE) : \
231#define ASSERT( exp ) ((void) 0)
232#define ASSERTMSG( msg, exp ) ((void) 0)
237#ifdef NTOS_KERNEL_RUNTIME
243#define RTL_PAGED_CODE PAGED_CODE
250#define RTL_PAGED_CODE()
257#ifndef RTL_USE_AVL_TABLES
417#define RtlIsLeftChild(Links) \
418 (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
420#define RtlIsRightChild(Links) \
421 (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
423#define RtlRightChild(Links) \
424 ((PRTL_SPLAY_LINKS)(Links))->RightChild
426#define RtlIsRoot(Links) \
427 (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
429#define RtlLeftChild(Links) \
430 ((PRTL_SPLAY_LINKS)(Links))->LeftChild
432#define RtlParent(Links) \
433 ((PRTL_SPLAY_LINKS)(Links))->Parent
437#define RtlInitializeSplayLinks(Links) \
439 PRTL_SPLAY_LINKS _SplayLinks; \
440 _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
441 _SplayLinks->Parent = _SplayLinks; \
442 _SplayLinks->LeftChild = NULL; \
443 _SplayLinks->RightChild = NULL; \
446#define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
448 PRTL_SPLAY_LINKS _SplayParent; \
449 PRTL_SPLAY_LINKS _SplayChild; \
450 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
451 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
452 _SplayParent->LeftChild = _SplayChild; \
453 _SplayChild->Parent = _SplayParent; \
456#define RtlInsertAsRightChild(ParentLinks,ChildLinks) \
458 PRTL_SPLAY_LINKS _SplayParent; \
459 PRTL_SPLAY_LINKS _SplayChild; \
460 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
461 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
462 _SplayParent->RightChild = _SplayChild; \
463 _SplayChild->Parent = _SplayParent; \
595#ifdef RTL_USE_AVL_TABLES
597#define RtlInitializeGenericTable RtlInitializeGenericTableAvl
598#define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl
599#define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl
600#define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl
601#define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl
602#define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl
603#define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl
604#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
605#define RtlGetElementGenericTable RtlGetElementGenericTableAvl
606#define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl
607#define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl
808#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT 8
832 _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers
1095#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
1099#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
1550#ifdef NTOS_MODE_USER
1558 ULONG InformationLength,
1571#if (NTDDI_VERSION >= NTDDI_VISTA)
1650#ifdef NTOS_MODE_USER
1658 ULONG InformationLength,
1845#ifdef NTOS_MODE_USER
1851#pragma intrinsic(_byteswap_ushort)
1852#pragma intrinsic(_byteswap_ulong)
1853#pragma intrinsic(_byteswap_uint64)
1855#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
1856#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
1857#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
1869#ifdef NTOS_MODE_USER
1871#define RtlUnicodeStringToAnsiSize(STRING) ( \
1872 NLS_MB_CODE_PAGE_TAG ? \
1873 RtlxUnicodeStringToAnsiSize(STRING) : \
1874 ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
1928RtlUnicodeStringToCountedOemString(
1952#ifdef NTOS_MODE_USER
1954#define RtlUnicodeStringToOemSize(STRING) ( \
1955 NLS_MB_OEM_CODE_PAGE_TAG ? \
1956 RtlxUnicodeStringToOemSize(STRING) : \
1957 ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
1960#define RtlUnicodeStringToCountedOemSize(STRING) ( \
1961 (ULONG)(RtlUnicodeStringToOemSize(STRING) - sizeof(ANSI_NULL)) \
2040#ifdef NTOS_MODE_USER
2042#define RtlOemStringToUnicodeSize(STRING) ( \
2043 NLS_MB_OEM_CODE_PAGE_TAG ? \
2044 RtlxOemStringToUnicodeSize(STRING) : \
2045 ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
2048#define RtlOemStringToCountedUnicodeSize(STRING) ( \
2049 (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
2080#ifdef NTOS_MODE_USER
2082#define RtlAnsiStringToUnicodeSize(STRING) ( \
2083 NLS_MB_CODE_PAGE_TAG ? \
2084 RtlxAnsiStringToUnicodeSize(STRING) : \
2085 ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
2154#ifdef NTOS_MODE_USER
2187#if defined(_M_AMD64)
2197 if ((
Length /= 4) != 0) {
2200 if ((
Length -= 1) == 0) {
2211#define RtlFillMemoryUlonglong(Destination, Length, Pattern) \
2212 __stosq((PULONG64)(Destination), Pattern, (Length) / 8)
2254#ifndef RtlEqualMemory
2255#define RtlEqualMemory(Destination, Source, Length) \
2256 (!memcmp(Destination, Source, Length))
2259#define RtlCopyBytes RtlCopyMemory
2260#define RtlFillBytes RtlFillMemory
2261#define RtlZeroBytes RtlZeroMemory
2451#define RTL_SKIP_BUFFER_COPY 0x00000001
2462#ifdef NTOS_MODE_USER
2474 Buffer->ReservedForAllocatedSize = 0;
2697#if (NTDDI_VERSION >= NTDDI_WIN7)
2766RtlWow64GetThreadContext(
2775RtlWow64SetThreadContext(
2971#define RTL_UNCHANGED_UNK_PATH 1
2972#define RTL_CONVERTED_UNC_PATH 2
2973#define RTL_CONVERTED_NT_PATH 3
2974#define RTL_UNCHANGED_DOS_PATH 4
3026#if (NTDDI_VERSION >= NTDDI_WIN7)
3347#ifdef NTOS_MODE_USER
3554#if defined(_M_AMD64)
3565#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
3820#if defined(NTOS_MODE_USER) || defined(_NTIFS_)
3993#ifdef NTOS_MODE_USER
4024 _In_ PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame,
4040 _In_ PACTIVATION_CONTEXT_DATA ActivationContextData,
4085 _In_ PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame
4227#ifdef NTOS_MODE_USER
4325#if defined(NTOS_MODE_USER) && !defined(NO_RTL_INLINES)
4339 Result.QuadPart = SignedInteger;