ReactOS 0.4.17-dev-970-gcf0f1a6
rtlfuncs.h
Go to the documentation of this file.
1/******************************************************************************
2 * Runtime Library Functions *
3 ******************************************************************************/
4
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
24
27
30VOID
31RtlFailFast(
33{
35}
36
37#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && (defined(_M_CEE_PURE) || defined(_M_CEE_SAFE))
38#define NO_KERNEL_LIST_ENTRY_CHECKS
39#endif
40
41#if !defined(EXTRA_KERNEL_LIST_ENTRY_CHECKS) && defined(__REACTOS__)
42#define EXTRA_KERNEL_LIST_ENTRY_CHECKS
43#endif
44
45#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
46
47#define RTL_STATIC_LIST_HEAD(x) LIST_ENTRY x = { &x, &x }
48
50VOID
52 _Out_ PLIST_ENTRY ListHead)
53{
54 ListHead->Flink = ListHead->Blink = ListHead;
55}
56
61 _In_ const LIST_ENTRY * ListHead)
62{
63 return (BOOLEAN)(ListHead->Flink == ListHead);
64}
65
70{
71 PLIST_ENTRY OldFlink;
72 PLIST_ENTRY OldBlink;
73
74 OldFlink = Entry->Flink;
75 OldBlink = Entry->Blink;
76 OldFlink->Blink = OldBlink;
77 OldBlink->Flink = OldFlink;
78 return (BOOLEAN)(OldFlink == OldBlink);
79}
80
81#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
83VOID
85 _In_ PVOID P1,
86 _In_ PVOID P2,
87 _In_ PVOID P3)
88{
92
94}
95
97VOID
100{
101 if (Entry->Flink->Blink != Entry || Entry->Blink->Flink != Entry)
102 FatalListEntryError(Entry->Blink, Entry, Entry->Flink);
103}
104#endif
105
110{
111 PLIST_ENTRY OldFlink;
112 PLIST_ENTRY OldBlink;
113
114 OldFlink = Entry->Flink;
115 OldBlink = Entry->Blink;
116#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
117#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
118 if (OldFlink == Entry || OldBlink == Entry)
119 FatalListEntryError(OldBlink, Entry, OldFlink);
120#endif
121 if (OldFlink->Blink != Entry || OldBlink->Flink != Entry)
122 FatalListEntryError(OldBlink, Entry, OldFlink);
123#endif
124 OldFlink->Blink = OldBlink;
125 OldBlink->Flink = OldFlink;
126 return (BOOLEAN)(OldFlink == OldBlink);
127}
128
132 _Inout_ PLIST_ENTRY ListHead)
133{
134 PLIST_ENTRY Flink;
136
137#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
138 RtlpCheckListEntry(ListHead);
139#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
140 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
141 FatalListEntryError(ListHead->Blink, ListHead, ListHead->Flink);
142#endif
143#endif
144 Entry = ListHead->Flink;
145 Flink = Entry->Flink;
146#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
147 if (Entry->Blink != ListHead || Flink->Blink != Entry)
148 FatalListEntryError(ListHead, Entry, Flink);
149#endif
150 ListHead->Flink = Flink;
151 Flink->Blink = ListHead;
152 return Entry;
153}
154
158 _Inout_ PLIST_ENTRY ListHead)
159{
160 PLIST_ENTRY Blink;
162
163#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
164 RtlpCheckListEntry(ListHead);
165#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
166 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
167 FatalListEntryError(ListHead->Blink, ListHead, ListHead->Flink);
168#endif
169#endif
170 Entry = ListHead->Blink;
171 Blink = Entry->Blink;
172#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
173 if (Blink->Flink != Entry || Entry->Flink != ListHead)
174 FatalListEntryError(Blink, Entry, ListHead);
175#endif
176 ListHead->Blink = Blink;
177 Blink->Flink = ListHead;
178 return Entry;
179}
180
182VOID
184 _Inout_ PLIST_ENTRY ListHead,
186{
187 PLIST_ENTRY OldBlink;
188#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
189 RtlpCheckListEntry(ListHead);
190#endif
191 OldBlink = ListHead->Blink;
192 Entry->Flink = ListHead;
193 Entry->Blink = OldBlink;
194#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
195 if (OldBlink->Flink != ListHead)
196 FatalListEntryError(OldBlink->Blink, OldBlink, ListHead);
197#endif
198 OldBlink->Flink = Entry;
199 ListHead->Blink = Entry;
200}
201
203VOID
205 _Inout_ PLIST_ENTRY ListHead,
207{
208 PLIST_ENTRY OldFlink;
209#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
210 RtlpCheckListEntry(ListHead);
211#endif
212 OldFlink = ListHead->Flink;
213 Entry->Flink = OldFlink;
214 Entry->Blink = ListHead;
215#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
216 if (OldFlink->Blink != ListHead)
217 FatalListEntryError(ListHead, OldFlink, OldFlink->Flink);
218#endif
219 OldFlink->Blink = Entry;
220 ListHead->Flink = Entry;
221}
222
224VOID
226 _Inout_ PLIST_ENTRY ListHead,
227 _Inout_ PLIST_ENTRY ListToAppend)
228{
229 PLIST_ENTRY ListEnd = ListHead->Blink;
230
231#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
232 RtlpCheckListEntry(ListHead);
233 RtlpCheckListEntry(ListToAppend);
234#endif
235 ListHead->Blink->Flink = ListToAppend;
236 ListHead->Blink = ListToAppend->Blink;
237 ListToAppend->Blink->Flink = ListHead;
238 ListToAppend->Blink = ListEnd;
239}
240
245{
246 PSINGLE_LIST_ENTRY FirstEntry;
247 FirstEntry = ListHead->Next;
248 if (FirstEntry != NULL) {
249 ListHead->Next = FirstEntry->Next;
250 }
251 return FirstEntry;
252}
253
255VOID
259{
260 Entry->Next = ListHead->Next;
261 ListHead->Next = Entry;
262}
263
264#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
265
268VOID
269NTAPI
271 _In_ PVOID FailedAssertion,
275
276/* VOID
277 * RtlCopyMemory(
278 * IN VOID UNALIGNED *Destination,
279 * IN CONST VOID UNALIGNED *Source,
280 * IN SIZE_T Length)
281 */
282#define RtlCopyMemory(Destination, Source, Length) \
283 memcpy(Destination, Source, Length)
284
285#define RtlCopyBytes RtlCopyMemory
286
287#if defined(_M_AMD64)
289VOID
290NTAPI
295#else
296#define RtlCopyMemoryNonTemporal RtlCopyMemory
297#endif
298
299/* BOOLEAN
300 * RtlEqualLuid(
301 * IN PLUID Luid1,
302 * IN PLUID Luid2)
303 */
304#define RtlEqualLuid(Luid1, Luid2) \
305 (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
306
307/* LOGICAL
308 * RtlEqualMemory(
309 * IN VOID UNALIGNED *Destination,
310 * IN CONST VOID UNALIGNED *Source,
311 * IN SIZE_T Length)
312 */
313#define RtlEqualMemory(Destination, Source, Length) \
314 (!memcmp(Destination, Source, Length))
315
316/* VOID
317 * RtlFillMemory(
318 * IN VOID UNALIGNED *Destination,
319 * IN SIZE_T Length,
320 * IN UCHAR Fill)
321 */
322#define RtlFillMemory(Destination, Length, Fill) \
323 memset(Destination, Fill, Length)
324
325#define RtlFillBytes RtlFillMemory
326
329VOID
330NTAPI
334
339NTAPI
343
347_At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) * sizeof(WCHAR)))
353VOID
354NTAPI
358
359/* VOID
360 * RtlMoveMemory(
361 * IN VOID UNALIGNED *Destination,
362 * IN CONST VOID UNALIGNED *Source,
363 * IN SIZE_T Length)
364 */
365#define RtlMoveMemory(Destination, Source, Length) \
366 memmove(Destination, Source, Length)
367
372NTAPI
377
378/* VOID
379 * RtlZeroMemory(
380 * IN VOID UNALIGNED *Destination,
381 * IN SIZE_T Length)
382 */
383#define RtlZeroMemory(Destination, Length) \
384 memset(Destination, 0, Length)
385
386#define RtlZeroBytes RtlZeroMemory
388
389#if (NTDDI_VERSION >= NTDDI_WIN2K)
390
395NTAPI
397 _In_ PRTL_BITMAP BitMapHeader,
400
404NTAPI
406 _In_ PRTL_BITMAP BitMapHeader,
409
414NTAPI
421
424ULONG
425NTAPI
428
429#define RtlAnsiStringToUnicodeSize(String) ( \
430 NLS_MB_CODE_PAGE_TAG ? \
431 RtlxAnsiStringToUnicodeSize(String) : \
432 ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
433)
434
440 _At_(return, _Out_range_(==, 0)))
443 _At_(return, _Out_range_(<, 0)))
446NTAPI
450
451_Success_(1)
454/* _When_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR) <= Destination->MaximumLength,
455 _At_(Destination->Length, _Post_equal_to_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR)))
456 _At_(return, _Out_range_(==, 0)))
457_When_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR) > Destination->MaximumLength,
458 _Unchanged_(Destination->Length)
459 _At_(return, _Out_range_(<, 0))) */
462NTAPI
466
471NTAPI
473 _In_ ULONG RelativeTo,
475
477VOID
478NTAPI
480 _In_ PRTL_BITMAP BitMapHeader);
481
483VOID
484NTAPI
486 _In_ PRTL_BITMAP BitMapHeader,
487 _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToClear) ULONG StartingIndex,
488 _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToClear);
489
492SIZE_T
493NTAPI
495 _In_ const VOID *Source1,
496 _In_ const VOID *Source2,
498
502LONG
503NTAPI
505 _In_ PCUNICODE_STRING String1,
508
512LONG
513NTAPI
520
529VOID
530NTAPI
534
538NTAPI
540 _In_ ULONG RelativeTo,
541 _In_ PWSTR Path);
542
546NTAPI
550
554NTAPI
556 _In_ ULONG RelativeTo,
559
564NTAPI
566 _In_ CONST UNICODE_STRING *String1,
569
570#if !defined(_AMD64_) && !defined(_IA64_)
573NTAPI
575 _In_ LARGE_INTEGER Multiplicand,
576 _In_ LONG Multiplier);
577
580NTAPI
582 _In_ LARGE_INTEGER Dividend,
585#endif
586
587#if defined(_X86_) || defined(_IA64_)
590NTAPI
592 _In_ LARGE_INTEGER Dividend,
593 _In_ LARGE_INTEGER MagicDivisor,
594 _In_ CCHAR ShiftCount);
595#endif
596
599VOID
600NTAPI
604
605_Success_(return != -1)
608ULONG
609NTAPI
611 _In_ PRTL_BITMAP BitMapHeader,
614
615_Success_(return != -1)
617ULONG
618NTAPI
620 _In_ PRTL_BITMAP BitMapHeader,
623
625ULONG
626NTAPI
628 _In_ PRTL_BITMAP BitMapHeader,
630
632ULONG
633NTAPI
635 _In_ PRTL_BITMAP BitMapHeader,
636 _Out_writes_to_(SizeOfRunArray, return) PRTL_BITMAP_RUN RunArray,
637 _In_range_(>, 0) ULONG SizeOfRunArray,
638 _In_ BOOLEAN LocateLongestRuns);
639
641ULONG
642NTAPI
644 _In_ PRTL_BITMAP BitMapHeader,
645 _In_ ULONG FromIndex,
646 _Out_ PULONG StartingRunIndex);
647
648_Success_(return != -1)
651CCHAR
652NTAPI
655
657ULONG
658NTAPI
660 _In_ PRTL_BITMAP BitMapHeader,
662
663_Success_(return != -1)
666CCHAR
667NTAPI
670
672ULONG
673NTAPI
675 _In_ PRTL_BITMAP BitMapHeader,
676 _In_ ULONG FromIndex,
677 _Out_ PULONG StartingRunIndex);
678
680ULONG
681NTAPI
683 _In_ PRTL_BITMAP BitMapHeader,
684 _In_ ULONG FromIndex,
685 _Out_ PULONG StartingRunIndex);
686
687_Success_(return != -1)
690ULONG
691NTAPI
693 _In_ PRTL_BITMAP BitMapHeader,
696
697_Success_(return != -1)
699ULONG
700NTAPI
702 _In_ PRTL_BITMAP BitMapHeader,
705
708VOID
709NTAPI
713
714_At_(BitMapHeader->SizeOfBitMap, _Post_equal_to_(SizeOfBitMap))
715_At_(BitMapHeader->Buffer, _Post_equal_to_(BitMapBuffer))
717VOID
718NTAPI
720 _Out_ PRTL_BITMAP BitMapHeader,
721 _In_opt_ __drv_aliasesMem PULONG BitMapBuffer,
722 _In_opt_ ULONG SizeOfBitMap);
723
726VOID
727NTAPI
731
736NTAPI
741
746NTAPI
751
752#ifdef _WIN64
753#define RtlIntPtrToUnicodeString(Value, Base, String) \
754 RtlInt64ToUnicodeString(Value, Base, String)
755#else
756#define RtlIntPtrToUnicodeString(Value, Base, String) \
757 RtlIntegerToUnicodeString(Value, Base, String)
758#endif
759
760/* BOOLEAN
761 * RtlIsZeroLuid(
762 * IN PLUID L1);
763 */
764#define RtlIsZeroLuid(_L1) \
765 ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
766
769ULONG
770NTAPI
773
775ULONG
776NTAPI
778 _In_ PRTL_BITMAP BitMapHeader);
779
781ULONG
782NTAPI
784 _In_ PRTL_BITMAP BitMapHeader);
785
789NTAPI
791 _In_ ULONG RelativeTo,
793 _Inout_ _At_(*(*QueryTable).EntryContext, _Pre_unknown_)
797
798#define SHORT_SIZE (sizeof(USHORT))
799#define SHORT_MASK (SHORT_SIZE - 1)
800#define LONG_SIZE (sizeof(LONG))
801#define LONGLONG_SIZE (sizeof(LONGLONG))
802#define LONG_MASK (LONG_SIZE - 1)
803#define LONGLONG_MASK (LONGLONG_SIZE - 1)
804#define LOWBYTE_MASK 0x00FF
805
806#define FIRSTBYTE(VALUE) ((VALUE) & LOWBYTE_MASK)
807#define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK)
808#define THIRDBYTE(VALUE) (((VALUE) >> 16) & LOWBYTE_MASK)
809#define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK)
810
812VOID
813NTAPI
815 _In_ PRTL_BITMAP BitMapHeader);
816
818VOID
819NTAPI
821 _In_ PRTL_BITMAP BitMapHeader,
822 _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToSet) ULONG StartingIndex,
823 _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToSet);
824
828NTAPI
834
835//
836// These functions are really bad and shouldn't be used.
837// They have no type checking and can easily overwrite the target
838// variable or only set half of it.
839// Use Read/WriteUnalignedU16/U32/U64 from reactos/unaligned.h instead.
840//
841#if defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86)
842
843/* VOID
844 * RtlStoreUlong(
845 * IN PULONG Address,
846 * IN ULONG Value);
847 */
848#define RtlStoreUlong(Address,Value) \
849 *(ULONG UNALIGNED *)(Address) = (Value)
850
851/* VOID
852 * RtlStoreUlonglong(
853 * IN OUT PULONGLONG Address,
854 * ULONGLONG Value);
855 */
856#define RtlStoreUlonglong(Address,Value) \
857 *(ULONGLONG UNALIGNED *)(Address) = (Value)
858
859/* VOID
860 * RtlStoreUshort(
861 * IN PUSHORT Address,
862 * IN USHORT Value);
863 */
864#define RtlStoreUshort(Address,Value) \
865 *(USHORT UNALIGNED *)(Address) = (Value)
866
867/* VOID
868 * RtlRetrieveUshort(
869 * PUSHORT DestinationAddress,
870 * PUSHORT SourceAddress);
871 */
872#define RtlRetrieveUshort(DestAddress,SrcAddress) \
873 *(USHORT*)(DestAddress) = *(USHORT UNALIGNED *)(SrcAddress)
874
875/* VOID
876 * RtlRetrieveUlong(
877 * PULONG DestinationAddress,
878 * PULONG SourceAddress);
879 */
880#define RtlRetrieveUlong(DestAddress,SrcAddress) \
881 *(ULONG*)(DestAddress) = *(ULONG UNALIGNED *)(SrcAddress)
882
883#else
884
885#define RtlStoreUlong(Address,Value) \
886 if ((ULONG_PTR)(Address) & LONG_MASK) { \
887 ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
888 ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
889 ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
890 ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT] = (UCHAR)(FOURTHBYTE(Value)); \
891 } \
892 else { \
893 *((PULONG)(Address)) = (ULONG) (Value); \
894 }
895
896#define RtlStoreUlonglong(Address,Value) \
897 if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
898 RtlStoreUlong((ULONG_PTR)(Address), \
899 (ULONGLONG)(Value) & 0xFFFFFFFF); \
900 RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
901 (ULONGLONG)(Value) >> 32); \
902 } else { \
903 *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
904 }
905
906#define RtlStoreUshort(Address,Value) \
907 if ((ULONG_PTR)(Address) & SHORT_MASK) { \
908 ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
909 ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
910 } \
911 else { \
912 *((PUSHORT) (Address)) = (USHORT)Value; \
913 }
914
915#define RtlRetrieveUshort(DestAddress,SrcAddress) \
916 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
917 { \
918 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
919 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
920 } \
921 else \
922 { \
923 *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
924 }
925
926#define RtlRetrieveUlong(DestAddress,SrcAddress) \
927 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
928 { \
929 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
930 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
931 ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
932 ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
933 } \
934 else \
935 { \
936 *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
937 }
938
939#endif /* defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86) */
940
941#ifdef _WIN64
942/* VOID
943 * RtlStoreUlongPtr(
944 * IN OUT PULONG_PTR Address,
945 * IN ULONG_PTR Value);
946 */
947#define RtlStoreUlongPtr(Address,Value) RtlStoreUlonglong(Address,Value)
948#else
949#define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
950#endif /* _WIN64 */
951
952_Success_(return != FALSE)
955NTAPI
959
961VOID
962NTAPI
966
968USHORT
972
974ULONG
978
984
987 _Out_range_(<=, (SourceString->MaximumLength / sizeof(WCHAR)))))
995NTAPI
1002
1007NTAPI
1014
1017ULONG
1018NTAPI
1021
1022#define RtlUnicodeStringToAnsiSize(String) ( \
1023 NLS_MB_CODE_PAGE_TAG ? \
1024 RtlxUnicodeStringToAnsiSize(String) : \
1025 ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
1026)
1027
1031NTAPI
1036
1039WCHAR
1040NTAPI
1042 _In_ WCHAR SourceCharacter);
1043
1047BOOLEAN
1048NTAPI
1053
1057BOOLEAN
1058NTAPI
1061
1065NTAPI
1067 _Out_
1068 _At_(lpVersionInformation->dwOSVersionInfoSize, _Pre_ _Valid_)
1069 _When_(lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOEXW),
1072
1077NTAPI
1082
1086NTAPI
1088 _In_ ULONG RelativeTo,
1094
1096$if (_NTDDK_)
1097
1098#ifndef RTL_USE_AVL_TABLES
1099
1101VOID
1102NTAPI
1109
1111PVOID
1112NTAPI
1117 _Out_opt_ PBOOLEAN NewElement);
1118
1120PVOID
1121NTAPI
1126 _Out_opt_ PBOOLEAN NewElement,
1127 _In_ PVOID NodeOrParent,
1128 _In_ TABLE_SEARCH_RESULT SearchResult);
1129
1131BOOLEAN
1132NTAPI
1135 _In_ PVOID Buffer);
1136
1139PVOID
1140NTAPI
1143 _In_ PVOID Buffer);
1144
1146PVOID
1147NTAPI
1151 _Out_ PVOID *NodeOrParent,
1152 _Out_ TABLE_SEARCH_RESULT *SearchResult);
1153
1156PVOID
1157NTAPI
1161
1164PVOID
1165NTAPI
1168 _Inout_ PVOID *RestartKey);
1169
1172PVOID
1173NTAPI
1176 _In_ ULONG I);
1177
1179ULONG
1180NTAPI
1183
1186BOOLEAN
1187NTAPI
1190
1191#endif /* !RTL_USE_AVL_TABLES */
1192
1193#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT 8
1194
1197NTAPI
1200
1203NTAPI
1205 _In_ PRTL_SPLAY_LINKS Links);
1206
1208VOID
1209NTAPI
1211 _In_ PRTL_SPLAY_LINKS Links,
1213
1217NTAPI
1219 _In_ PRTL_SPLAY_LINKS Links);
1220
1224NTAPI
1226 _In_ PRTL_SPLAY_LINKS Links);
1227
1231NTAPI
1233 _In_ PRTL_SPLAY_LINKS Links);
1234
1238NTAPI
1240 _In_ PRTL_SPLAY_LINKS Links);
1241
1245BOOLEAN
1246NTAPI
1248 _In_ PCUNICODE_STRING String1,
1251
1254VOID
1255NTAPI
1258 _In_ const STRING *SourceString);
1259
1264NTAPI
1271
1274VOID
1275NTAPI
1279
1283NTAPI
1284RtlVolumeDeviceToDosName(
1285 _In_ PVOID VolumeDeviceObject,
1287
1291LONG
1292NTAPI
1294 _In_ const STRING *String1,
1295 _In_ const STRING *String2,
1297
1299VOID
1300NTAPI
1304
1308BOOLEAN
1309NTAPI
1311 _In_ const STRING *String1,
1312 _In_ const STRING *String2,
1314
1318NTAPI
1323
1326CHAR
1327NTAPI
1329 _In_ CHAR Character);
1330
1332ULONG
1333NTAPI
1336 PVOID *Callers,
1338 _In_ ULONG Flags);
1339
1341$if (_NTIFS_)
1342
1347PVOID
1348NTAPI
1350 _In_ HANDLE HeapHandle,
1353
1354_Success_(return != 0)
1356BOOLEAN
1357NTAPI
1359 _In_ PVOID HeapHandle,
1362
1364VOID
1365NTAPI
1368
1371ULONG
1372NTAPI
1373RtlRandom(
1374 _Inout_ PULONG Seed);
1375
1377_Success_(return != 0)
1380BOOLEAN
1381NTAPI
1386
1390BOOLEAN
1391NTAPI
1393 _In_ const STRING *String1,
1396
1400NTAPI
1404
1409NTAPI
1416
1421NTAPI
1428
1433NTAPI
1440
1445NTAPI
1452
1457NTAPI
1458RtlUnicodeStringToCountedOemString(
1464
1469NTAPI
1476
1481NTAPI
1485 PUNICODE_STRING UniDest,
1486 _In_ PCUNICODE_STRING UniSource,
1488
1491VOID
1492NTAPI
1495
1498ULONG
1499NTAPI
1502
1505ULONG
1506NTAPI
1509
1513NTAPI
1520
1524NTAPI
1529
1533NTAPI
1538
1542NTAPI
1549
1553NTAPI
1560
1564NTAPI
1571
1575NTAPI
1582
1586NTAPI
1593
1594#if (NTDDI_VERSION >= NTDDI_VISTASP1)
1598NTAPI
1604#else
1607VOID
1608NTAPI
1614#endif
1615
1619BOOLEAN
1620NTAPI
1625
1629BOOLEAN
1630NTAPI
1632 _Inout_ PWCHAR Char);
1633
1636VOID
1637NTAPI
1639 _Out_ PPREFIX_TABLE PrefixTable);
1640
1643BOOLEAN
1644NTAPI
1646 _In_ PPREFIX_TABLE PrefixTable,
1649
1652VOID
1653NTAPI
1655 _In_ PPREFIX_TABLE PrefixTable,
1657
1662NTAPI
1664 _In_ PPREFIX_TABLE PrefixTable,
1666
1669VOID
1670NTAPI
1672 _Out_ PUNICODE_PREFIX_TABLE PrefixTable);
1673
1676BOOLEAN
1677NTAPI
1679 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1682
1685VOID
1686NTAPI
1688 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1690
1695NTAPI
1697 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1700
1705NTAPI
1707 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1709
1712SIZE_T
1713NTAPI
1717 _In_ ULONG Pattern);
1718
1719_Success_(return != 0)
1721BOOLEAN
1722NTAPI
1726
1728VOID
1729NTAPI
1733
1734_Success_(return != 0)
1736BOOLEAN
1737NTAPI
1741
1743VOID
1744NTAPI
1748
1752BOOLEAN
1753NTAPI
1755 _In_ PSID Sid);
1756
1759BOOLEAN
1760NTAPI
1762 _In_ PSID Sid1,
1763 _In_ PSID Sid2);
1764
1768BOOLEAN
1769NTAPI
1771 _In_ PSID Sid1,
1773
1776ULONG
1777NTAPI
1780
1782PVOID
1783NTAPI
1786
1790NTAPI
1794 _In_ ULONG SubAuthority0,
1795 _In_ ULONG SubAuthority1,
1796 _In_ ULONG SubAuthority2,
1797 _In_ ULONG SubAuthority3,
1798 _In_ ULONG SubAuthority4,
1799 _In_ ULONG SubAuthority5,
1800 _In_ ULONG SubAuthority6,
1801 _In_ ULONG SubAuthority7,
1802 _Outptr_ PSID *Sid);
1803
1807NTAPI
1809 _Out_ PSID Sid,
1812
1814PULONG
1815NTAPI
1817 _In_ PSID Sid,
1818 _In_ ULONG SubAuthority);
1819
1822ULONG
1823NTAPI
1825 _In_ PSID Sid);
1826
1830NTAPI
1832 _In_ ULONG DestinationSidLength,
1833 _Out_writes_bytes_(DestinationSidLength) PSID DestinationSid,
1835
1839NTAPI
1844
1847VOID
1848NTAPI
1850 _Out_ PLUID DestinationLuid,
1852
1856NTAPI
1861
1865NTAPI
1866RtlAddAce(
1867 _Inout_ PACL Acl,
1872
1876NTAPI
1878 _Inout_ PACL Acl,
1880
1883NTAPI
1885 _In_ PACL Acl,
1887 _Outptr_ PVOID *Ace);
1888
1892NTAPI
1894 _Inout_ PACL Acl,
1897 _In_ PSID Sid);
1898
1902NTAPI
1904 _Inout_ PACL Acl,
1908 _In_ PSID Sid);
1909
1913NTAPI
1917
1920NTAPI
1924 _Out_ PACL *Dacl,
1926
1930NTAPI
1935
1939NTAPI
1942 _Out_ PSID *Owner,
1944
1947_When_(Status >= 0, _Out_range_(==, 0))
1949ULONG
1950NTAPI
1953
1957NTAPI
1959 _In_ PCPTABLEINFO CustomCP,
1965
1969NTAPI
1971 _In_ PCPTABLEINFO CustomCP,
1977
1981NTAPI
1983 _In_ PCPTABLEINFO CustomCP,
1989
1992VOID
1993NTAPI
1995 _In_ PUSHORT TableBase,
1997
1999
2000#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
2001
2002$if (_WDMDDK_)
2003
2004#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
2006VOID
2011#endif
2012
2014
2015#if (NTDDI_VERSION >= NTDDI_WINXP)
2016
2017$if (_WDMDDK_)
2018
2020VOID
2021NTAPI
2023 _In_ PRTL_BITMAP BitMapHeader,
2024 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2025
2028WCHAR
2029NTAPI
2031 _In_ WCHAR SourceCharacter);
2032
2034VOID
2035NTAPI
2037 _In_ PRTL_BITMAP BitMapHeader,
2038 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2039
2042BOOLEAN
2043NTAPI
2045 _In_ PRTL_BITMAP BitMapHeader,
2046 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2047
2051NTAPI
2057
2059
2060$if (_NTDDK_)
2061
2063VOID
2064NTAPI
2071
2073PVOID
2074NTAPI
2079 _Out_opt_ PBOOLEAN NewElement);
2080
2082PVOID
2083NTAPI
2088 _Out_opt_ PBOOLEAN NewElement,
2089 _In_ PVOID NodeOrParent,
2090 _In_ TABLE_SEARCH_RESULT SearchResult);
2091
2093BOOLEAN
2094NTAPI
2097 _In_ PVOID Buffer);
2098
2101PVOID
2102NTAPI
2105 _In_ PVOID Buffer);
2106
2108PVOID
2109NTAPI
2113 _Out_ PVOID *NodeOrParent,
2114 _Out_ TABLE_SEARCH_RESULT *SearchResult);
2115
2118PVOID
2119NTAPI
2123
2126PVOID
2127NTAPI
2130 _Inout_ PVOID *RestartKey);
2131
2134PVOID
2135NTAPI
2139 _Out_ PVOID *RestartKey);
2140
2143PVOID
2144NTAPI
2147 _In_opt_ PRTL_AVL_MATCH_FUNCTION MatchFunction,
2149 _In_ ULONG NextFlag,
2150 _Inout_ PVOID *RestartKey,
2151 _Inout_ PULONG DeleteCount,
2152 _In_ PVOID Buffer);
2153
2156PVOID
2157NTAPI
2160 _In_ ULONG I);
2161
2163ULONG
2164NTAPI
2167
2170BOOLEAN
2171NTAPI
2174
2176$if (_NTIFS_)
2177
2180PVOID
2181NTAPI
2189
2191PVOID
2192NTAPI
2194 _In_ _Post_invalid_ PVOID HeapHandle);
2195
2197USHORT
2198NTAPI
2200 _In_ ULONG FramesToSkip,
2202 _Out_writes_to_(FramesToCapture, return) PVOID *BackTrace,
2204
2207ULONG
2208NTAPI
2210 _Inout_ PULONG Seed);
2211
2215NTAPI
2219
2223NTAPI
2227
2232NTAPI
2237
2240NTAPI
2242 _In_ USHORT CompressionFormatAndEngine,
2243 _Out_ PULONG CompressBufferWorkSpaceSize,
2244 _Out_ PULONG CompressFragmentWorkSpaceSize);
2245
2248NTAPI
2250 _In_ USHORT CompressionFormatAndEngine,
2255 _In_ ULONG UncompressedChunkSize,
2256 _Out_ PULONG FinalCompressedSize,
2258
2262NTAPI
2264 _In_ USHORT CompressionFormat,
2270
2274NTAPI
2276 _In_ USHORT CompressionFormat,
2284
2288NTAPI
2290 _In_ USHORT CompressionFormat,
2295
2299NTAPI
2301 _In_ USHORT CompressionFormat,
2306
2310NTAPI
2319
2323NTAPI
2332
2336NTAPI
2338 _In_ PSID Sid);
2339
2341PUCHAR
2342NTAPI
2344 _In_ PSID Sid);
2345
2347_When_(Status >= 0, _Out_range_(==, 0))
2349ULONG
2350NTAPI
2353
2357NTAPI
2359 _In_ PCUNICODE_STRING VolumeRootPath);
2360
2361#if defined(_M_AMD64)
2362
2364VOID
2368 _In_ ULONG Pattern)
2369{
2371 if ((Length /= 4) != 0) {
2372 if (((ULONG64)Address & 4) != 0) {
2373 *Address = Pattern;
2374 if ((Length -= 1) == 0) {
2375 return;
2376 }
2377 Address += 1;
2378 }
2379 __stosq((PULONG64)(Address), Pattern | ((ULONG64)Pattern << 32), Length / 2);
2380 if ((Length & 1) != 0) Address[Length - 1] = Pattern;
2381 }
2382 return;
2383}
2384
2385#define RtlFillMemoryUlonglong(Destination, Length, Pattern) \
2386 __stosq((PULONG64)(Destination), Pattern, (Length) / 8)
2387
2388#else
2389
2391VOID
2392NTAPI
2396 _In_ ULONG Pattern);
2397
2399VOID
2400NTAPI
2404 _In_ ULONGLONG Pattern);
2405
2406#endif /* defined(_M_AMD64) */
2408
2409#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
2410
2411$if (_NTIFS_)
2412#if (NTDDI_VERSION >= NTDDI_WS03)
2416NTAPI
2420#endif
2421
2422#if (NTDDI_VERSION >= NTDDI_WS03SP1)
2423
2427NTAPI
2433
2437NTAPI
2442
2446NTAPI
2449 _Out_ PSID *Group,
2451
2455NTAPI
2460
2464NTAPI
2477
2478#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
2480
2481#if (NTDDI_VERSION >= NTDDI_VISTA)
2482
2483$if (_WDMDDK_)
2485ULONG
2486NTAPI
2487RtlNumberOfSetBitsUlongPtr(
2489
2491$if (_NTDDK_)
2492
2495VOID
2496NTAPI
2498 _Out_ PRTL_RUN_ONCE RunOnce);
2499
2504NTAPI
2506 _Inout_ PRTL_RUN_ONCE RunOnce,
2510
2515NTAPI
2517 _Inout_ PRTL_RUN_ONCE RunOnce,
2520
2524NTAPI
2526 _Inout_ PRTL_RUN_ONCE RunOnce,
2529
2531BOOLEAN
2532NTAPI
2534 _In_ ULONG OSMajorVersion,
2535 _In_ ULONG OSMinorVersion,
2536 _In_ ULONG SpMajorVersion,
2537 _In_ ULONG SpMinorVersion,
2538 _Out_ PULONG ReturnedProductType);
2539
2541$if (_NTIFS_)
2544NTAPI
2546 _In_ ULONG NormForm,
2551
2554NTAPI
2556 _In_ ULONG NormForm,
2559 _Out_ PBOOLEAN Normalized);
2560
2563NTAPI
2570
2573NTAPI
2575 IN ULONG Flags,
2580
2583NTAPI
2590
2593NTAPI
2596 _Out_writes_bytes_opt_(*ServiceSidLength) PSID ServiceSid,
2597 _Inout_ PULONG ServiceSidLength);
2598
2600LONG
2601NTAPI
2603 _In_ PCUNICODE_STRING Altitude1,
2604 _In_ PCUNICODE_STRING Altitude2);
2605
2607
2608#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
2609
2610#if (NTDDI_VERSION >= NTDDI_VISTA) || defined(__REACTOS__)
2611
2612$if (_WDMDDK_)
2615NTAPI
2619
2622NTAPI
2625 _In_ UCHAR Type,
2628
2631NTAPI
2637
2640NTAPI
2643 _In_ UCHAR Type,
2648
2651NTAPI
2653 _In_ ULONGLONG SourceLength,
2655
2657
2658#endif /* (NTDDI_VERSION >= NTDDI_VISTA) || defined(__REACTOS__) */
2659
2660#if (NTDDI_VERSION >= NTDDI_WIN7)
2661
2662$if (_WDMDDK_)
2667NTAPI
2675
2680NTAPI
2688
2690ULONG64
2691NTAPI
2693 IN ULONG64 FeatureMask);
2694
2696$if (_NTDDK_)
2697
2700BOOLEAN
2701NTAPI
2702RtlCreateHashTable(
2707
2709VOID
2710NTAPI
2714
2716BOOLEAN
2717NTAPI
2723
2725BOOLEAN
2726NTAPI
2731
2735NTAPI
2740
2744NTAPI
2748
2750BOOLEAN
2751NTAPI
2755
2759NTAPI
2763
2765VOID
2766NTAPI
2770
2772BOOLEAN
2773NTAPI
2777
2781NTAPI
2785
2787VOID
2788NTAPI
2792
2794BOOLEAN
2795NTAPI
2798
2800BOOLEAN
2801NTAPI
2804
2806$if (_NTIFS_)
2811NTAPI
2816 _In_reads_bytes_(UnicodeStringByteCount) PCWCH UnicodeStringSource,
2818
2823NTAPI
2828 _In_reads_bytes_(UTF8StringByteCount) PCCH UTF8StringSource,
2830
2834NTAPI
2835RtlReplaceSidInSd(
2840
2843NTAPI
2846 _In_ ULONG BaseSubAuthority,
2847 _Out_writes_bytes_(*SidLength) PSID Sid,
2848 _Inout_ PULONG SidLength);
2850
2851#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
2852
2853$if (_WDMDDK_)
2854
2855#if !defined(MIDL_PASS)
2856/* inline funftions */
2857//DECLSPEC_DEPRECATED_DDK_WINXP
2858static __inline
2862 _In_ LONG SignedInteger)
2863{
2865 ret.QuadPart = SignedInteger;
2866 return ret;
2867}
2868
2869//DECLSPEC_DEPRECATED_DDK_WINXP
2870static __inline
2874 _In_ ULONG UnsignedInteger)
2875{
2877 ret.QuadPart = UnsignedInteger;
2878 return ret;
2879}
2880
2881//DECLSPEC_DEPRECATED_DDK_WINXP
2882static __inline
2886 _In_ LARGE_INTEGER LargeInteger,
2887 _In_ CCHAR ShiftCount)
2888{
2890
2891 Result.QuadPart = LargeInteger.QuadPart << ShiftCount;
2892 return Result;
2893}
2894
2895//DECLSPEC_DEPRECATED_DDK_WINXP
2896static __inline
2900 _In_ LARGE_INTEGER LargeInteger,
2901 _In_ CCHAR ShiftCount)
2902{
2904
2905 Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount;
2906 return Result;
2907}
2908
2909//DECLSPEC_DEPRECATED_DDK
2910static __inline
2911ULONG
2914 _In_ ULARGE_INTEGER Dividend,
2917{
2918 if (Remainder)
2919 *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
2920 return (ULONG)(Dividend.QuadPart / Divisor);
2921}
2922
2923//DECLSPEC_DEPRECATED_DDK
2924static __inline
2928 _In_ LARGE_INTEGER Subtrahend)
2929{
2930 LARGE_INTEGER Difference;
2931
2932 Difference.QuadPart = -Subtrahend.QuadPart;
2933 return Difference;
2934}
2935
2936//DECLSPEC_DEPRECATED_DDK
2937static __inline
2941 _In_ LARGE_INTEGER Minuend,
2942 _In_ LARGE_INTEGER Subtrahend)
2943{
2944 LARGE_INTEGER Difference;
2945
2946 Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
2947 return Difference;
2948}
2949
2950//DECLSPEC_DEPRECATED_DDK
2951static __inline
2955 _In_ ULONG Multiplicand,
2956 _In_ ULONG Multiplier)
2957{
2959 ret.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
2960 return ret;
2961}
2962
2963//DECLSPEC_DEPRECATED_DDK
2964static __inline
2968 _In_ LONG Multiplicand,
2969 _In_ LONG Multiplier)
2970{
2972 ret.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
2973 return ret;
2974}
2975
2977_At_(AnsiString->Length, _Post_equal_to_(0))
2980VOID
2981RtlInitEmptyAnsiString(
2985{
2986 AnsiString->Length = 0;
2987 AnsiString->MaximumLength = BufferSize;
2988 AnsiString->Buffer = Buffer;
2989}
2990
2995VOID
2996RtlInitEmptyUnicodeString(
3002{
3003 UnicodeString->Length = 0;
3004 UnicodeString->MaximumLength = BufferSize;
3005 UnicodeString->Buffer = Buffer;
3006}
3008
3009#if defined(_AMD64_) || defined(_IA64_)
3010
3011$if (_WDMDDK_)
3012
3013static __inline
3017 _In_ LARGE_INTEGER Multiplicand,
3018 _In_ LONG Multiplier)
3019{
3021 ret.QuadPart = Multiplicand.QuadPart * Multiplier;
3022 return ret;
3023}
3024
3025static __inline
3029 _In_ LARGE_INTEGER Dividend,
3032{
3034 ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
3035 if (Remainder)
3036 *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
3037 return ret;
3038}
3039
3041
3042$if (_NTDDK_)
3043
3044//DECLSPEC_DEPRECATED_DDK_WINXP
3049 _In_ LARGE_INTEGER Dividend,
3052{
3054 ret.QuadPart = Dividend.QuadPart / Divisor.QuadPart;
3055 if (Remainder)
3056 Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart;
3057 return ret;
3058}
3059
3060#else
3061
3062#if (NTDDI_VERSION >= NTDDI_WIN2K)
3065NTAPI
3067 _In_ LARGE_INTEGER Dividend,
3070#endif
3071
3073
3074#endif /* defined(_AMD64_) || defined(_IA64_) */
3075
3076$if (_WDMDDK_)
3077
3078#if defined(_AMD64_)
3079
3080#define MultiplyHigh __mulh
3081#define UnsignedMultiplyHigh __umulh
3082
3083//DECLSPEC_DEPRECATED_DDK
3084static __inline
3088 _In_ LARGE_INTEGER Dividend,
3089 _In_ LARGE_INTEGER MagicDivisor,
3090 _In_ CCHAR ShiftCount)
3091{
3093 ULONG64 ret64;
3094 BOOLEAN Pos;
3095 Pos = (Dividend.QuadPart >= 0);
3096 ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart,
3097 MagicDivisor.QuadPart);
3098 ret64 >>= ShiftCount;
3099 ret.QuadPart = Pos ? ret64 : -(LONG64)ret64;
3100 return ret;
3101}
3102#endif
3103
3104//DECLSPEC_DEPRECATED_DDK
3105static __inline
3109 _In_ LARGE_INTEGER Addend1,
3111{
3113 ret.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
3114 return ret;
3115}
3116
3117/* VOID
3118 * RtlLargeIntegerAnd(
3119 * IN OUT LARGE_INTEGER Result,
3120 * IN LARGE_INTEGER Source,
3121 * IN LARGE_INTEGER Mask);
3122 */
3123#define RtlLargeIntegerAnd(Result, Source, Mask) \
3124 Result.QuadPart = Source.QuadPart & Mask.QuadPart
3125
3126//DECLSPEC_DEPRECATED_DDK
3127static __inline
3131 _In_ LARGE_INTEGER LargeInteger,
3132 _In_ CCHAR ShiftCount)
3133{
3135 ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
3136 return ret;
3137}
3138
3139/* BOOLEAN
3140 * RtlLargeIntegerEqualTo(
3141 * IN LARGE_INTEGER Operand1,
3142 * IN LARGE_INTEGER Operand2);
3143 */
3144#define RtlLargeIntegerEqualTo(X,Y) \
3145 (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
3146
3148PVOID
3152{
3153 volatile char* vptr = (volatile char*)Pointer;
3154#if defined(_M_AMD64)
3155 __stosb((PUCHAR)vptr, 0, Size);
3156#else
3157 char * endptr = (char *)vptr + Size;
3158 while (vptr < endptr) {
3159 *vptr = 0; vptr++;
3160 }
3161#endif
3162 return Pointer;
3163}
3164
3165#if defined(_M_AMD64)
3168BOOLEAN
3170 _In_ PRTL_BITMAP BitMapHeader,
3171 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitPosition)
3172{
3173 return BitTest64((LONG64 CONST*)BitMapHeader->Buffer, (LONG64)BitPosition);
3174}
3175#else
3176#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
3177#endif /* defined(_M_AMD64) */
3178
3179#define RtlLargeIntegerGreaterThan(X,Y) ( \
3180 (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
3181 ((X).HighPart > (Y).HighPart) \
3182)
3183
3184#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) ( \
3185 (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
3186 ((X).HighPart > (Y).HighPart) \
3187)
3188
3189#define RtlLargeIntegerNotEqualTo(X,Y) ( \
3190 (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
3191)
3192
3193#define RtlLargeIntegerLessThan(X,Y) ( \
3194 (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
3195 ((X).HighPart < (Y).HighPart) \
3196)
3197
3198#define RtlLargeIntegerLessThanOrEqualTo(X,Y) ( \
3199 (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
3200 ((X).HighPart < (Y).HighPart) \
3201)
3202
3203#define RtlLargeIntegerGreaterThanZero(X) ( \
3204 (((X).HighPart == 0) && ((X).LowPart > 0)) || \
3205 ((X).HighPart > 0 ) \
3206)
3207
3208#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
3209
3210#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
3211
3212#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
3213
3214#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
3215
3216#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
3217
3218#endif /* !defined(MIDL_PASS) */
3219
3220/* Byte Swap Functions */
3221#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
3222#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
3223#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
3224
3225#if defined(_MSC_VER) && !defined(__clang__)
3226# define __assert_annotationA(msg) __annotation(L"Debug", L"AssertFail", L ## msg)
3227# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
3228#else
3229# define __assert_annotationA(msg) \
3230 DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)
3231# define __assert_annotationW(msg) \
3232 DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)
3233#endif
3234
3235#ifdef _PREFAST_
3236# define NT_ANALYSIS_ASSUME(_exp) _Analysis_assume_(_exp)
3237#elif DBG
3238# define NT_ANALYSIS_ASSUME(_exp) ((void)0)
3239#else
3240# define NT_ANALYSIS_ASSUME(_exp) __noop(_exp)
3241#endif
3242
3243#define NT_ASSERT_ACTION(exp) \
3244 (NT_ANALYSIS_ASSUME(exp), \
3245 ((!(exp)) ? \
3246 (__assert_annotationA(#exp), \
3247 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3248
3249#define NT_ASSERTMSG_ACTION(msg, exp) \
3250 (NT_ANALYSIS_ASSUME(exp), \
3251 ((!(exp)) ? \
3252 (__assert_annotationA(msg), \
3253 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3254
3255#define NT_ASSERTMSGW_ACTION(msg, exp) \
3256 (NT_ANALYSIS_ASSUME(exp), \
3257 ((!(exp)) ? \
3258 (__assert_annotationW(msg), \
3259 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3260
3261#if DBG
3262
3263#define RTL_VERIFY(exp) \
3264 ((!(exp)) ? \
3265 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
3266
3267#define RTL_VERIFYMSG(msg, exp) \
3268 ((!(exp)) ? \
3269 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
3270
3271#define RTL_SOFT_VERIFY(exp) \
3272 ((!(exp)) ? \
3273 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
3274
3275#define RTL_SOFT_VERIFYMSG(msg, exp) \
3276 ((!(exp)) ? \
3277 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
3278
3279/* The ASSERTs must be cast to void to avoid warnings about unused results. */
3280#define ASSERT (void)RTL_VERIFY
3281#define ASSERTMSG (void)RTL_VERIFYMSG
3282#define RTL_SOFT_ASSERT (void)RTL_SOFT_VERIFY
3283#define RTL_SOFT_ASSERTMSG (void)RTL_SOFT_VERIFYMSG
3284
3285#define NT_VERIFY NT_ASSERT_ACTION
3286#define NT_VERIFYMSG NT_ASSERTMSG_ACTION
3287#define NT_VERIFYMSGW NT_ASSERTMSGW_ACTION
3288
3289#define NT_ASSERT_ASSUME (void)NT_ASSERT_ACTION
3290#define NT_ASSERTMSG_ASSUME (void)NT_ASSERTMSG_ACTION
3291#define NT_ASSERTMSGW_ASSUME (void)NT_ASSERTMSGW_ACTION
3292
3293#define NT_ASSERT_NOASSUME (void)NT_ASSERT_ACTION
3294#define NT_ASSERTMSG_NOASSUME (void)NT_ASSERTMSG_ACTION
3295#define NT_ASSERTMSGW_NOASSUME (void)NT_ASSERTMSGW_ACTION
3296
3297#else /* !DBG */
3298
3299#define ASSERT(exp) ((void)0)
3300#define ASSERTMSG(msg, exp) ((void)0)
3301
3302#define RTL_SOFT_ASSERT(exp) ((void)0)
3303#define RTL_SOFT_ASSERTMSG(msg, exp) ((void)0)
3304
3305#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
3306#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3307
3308#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
3309#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3310
3311#define NT_VERIFY(exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3312#define NT_VERIFYMSG(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3313#define NT_VERIFYMSGW(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3314
3315#define NT_ASSERT_ASSUME(exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3316#define NT_ASSERTMSG_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3317#define NT_ASSERTMSGW_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3318
3319#define NT_ASSERT_NOASSUME(exp) ((void)0)
3320#define NT_ASSERTMSG_NOASSUME(msg, exp) ((void)0)
3321#define NT_ASSERTMSGW_NOASSUME(msg, exp) ((void)0)
3322
3323#endif /* DBG */
3324
3325#define NT_FRE_ASSERT (void)NT_ASSERT_ACTION
3326#define NT_FRE_ASSERTMSG (void)NT_ASSERTMSG_ACTION
3327#define NT_FRE_ASSERTMSGW (void)NT_ASSERTMSGW_ACTION
3328
3329#ifdef NT_ASSERT_ALWAYS_ASSUMES
3330# define NT_ASSERT NT_ASSERT_ASSUME
3331# define NT_ASSERTMSG NT_ASSERTMSG_ASSUME
3332# define NT_ASSERTMSGW NT_ASSERTMSGW_ASSUME
3333#else
3334# define NT_ASSERT NT_ASSERT_NOASSUME
3335# define NT_ASSERTMSG NT_ASSERTMSG_NOASSUME
3336# define NT_ASSERTMSGW NT_ASSERTMSGW_NOASSUME
3337#endif /* NT_ASSERT_ALWAYS_ASSUMES */
3338
3339#if defined(_MSC_VER) && (defined(__REACTOS__) || defined(ASSERT_ALWAYS_NT_ASSERT)) && !defined(_BLDR_)
3340#undef ASSERT
3341#define ASSERT NT_ASSERT
3342#undef ASSERTMSG
3343#define ASSERTMSG NT_ASSERTMSG
3344#undef ASSERTMSGW
3345#define ASSERTMSGW NT_ASSERTMSGW
3346#undef RTL_VERIFY
3347#define RTL_VERIFY NT_VERIFY
3348#endif
3349
3350#define InitializeListHead32(ListHead) (\
3351 (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
3352
3353#if !defined(_WINBASE_)
3354
3355#if defined(_WIN64) && !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || !defined(_NTOSP_))
3356
3358VOID
3360 _Out_ PSLIST_HEADER SListHead);
3361
3362#else /* defined(_WIN64) && ... */
3363
3364/* HACK */
3368VOID
3369NTAPI
3372
3374VOID
3376 _Out_ PSLIST_HEADER SListHead)
3377{
3378#if defined(_WIN64)
3379 if (((ULONG_PTR)SListHead & 0xf) != 0) {
3381 }
3382#if defined(_IA64_)
3383 SListHead->Region = (ULONG_PTR)SListHead & VRN_MASK;
3384#else
3385 SListHead->Region = 0;
3386#endif /* _IA64_ */
3387#endif /* _WIN64 */
3388 SListHead->Alignment = 0;
3389}
3390
3391#endif /* defined(_WIN64) && ... */
3392
3393#ifdef _X86_
3394
3399 _Inout_ PSLIST_HEADER SListHead,
3401
3406 _Inout_ PSLIST_HEADER SListHead);
3407
3408#define InterlockedFlushSList(SListHead) \
3409 ExInterlockedFlushSList(SListHead)
3410
3411#else /* !_X86_ */
3412
3413#define InterlockedPushEntrySList(SListHead, SListEntry) \
3414 ExpInterlockedPushEntrySList(SListHead, SListEntry)
3415
3416#define InterlockedPopEntrySList(SListHead) \
3417 ExpInterlockedPopEntrySList(SListHead)
3418
3419#define InterlockedFlushSList(SListHead) \
3420 ExpInterlockedFlushSList(SListHead)
3421
3422#endif /* _X86_ */
3423
3424#define QueryDepthSList(SListHead) \
3425 ExQueryDepthSList(SListHead)
3426
3427#endif /* !defined(_WINBASE_) */
3428
3429#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk) ((ContextEx)->Chunk.Offset)
3430#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk) ((ContextEx)->Chunk.Length)
3431#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk) \
3432 ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
3433#define RTL_CONTEXT_OFFSET(Context, Chunk) \
3434 RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
3435#define RTL_CONTEXT_LENGTH(Context, Chunk) \
3436 RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
3437#define RTL_CONTEXT_CHUNK(Context, Chunk) \
3438 RTL_CONTEXT_EX_CHUNK((PCONTEXT_EX)(Context + 1), \
3439 (PCONTEXT_EX)(Context + 1), \
3440 Chunk)
3441
3442BOOLEAN
3445
3446BOOLEAN
3449
3450#ifndef RtlIsNtDdiVersionAvailable
3451#define RtlIsNtDdiVersionAvailable WdmlibRtlIsNtDdiVersionAvailable
3452#endif
3453
3454#ifndef RtlIsServicePackVersionInstalled
3455#define RtlIsServicePackVersionInstalled WdmlibRtlIsServicePackVersionInstalled
3456#endif
3457
3458#define RtlInterlockedSetBits(Flags, Flag) \
3459 InterlockedOr((PLONG)(Flags), Flag)
3460
3461#define RtlInterlockedAndBits(Flags, Flag) \
3462 InterlockedAnd((PLONG)(Flags), Flag)
3463
3464#define RtlInterlockedClearBits(Flags, Flag) \
3465 RtlInterlockedAndBits(Flags, ~(Flag))
3466
3467#define RtlInterlockedXorBits(Flags, Flag) \
3468 InterlockedXor(Flags, Flag)
3469
3470#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \
3471 (VOID) RtlInterlockedSetBits(Flags, Flag)
3472
3473#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \
3474 (VOID) RtlInterlockedAndBits(Flags, Flag)
3475
3476#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \
3477 RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
3478
3480
3481$if (_NTDDK_)
3482
3483#ifdef RTL_USE_AVL_TABLES
3484
3485#define RtlInitializeGenericTable RtlInitializeGenericTableAvl
3486#define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl
3487#define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl
3488#define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl
3489#define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl
3490#define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl
3491#define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl
3492#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
3493#define RtlGetElementGenericTable RtlGetElementGenericTableAvl
3494#define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl
3495#define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl
3496
3497#endif /* RTL_USE_AVL_TABLES */
3498
3499#define RtlInitializeSplayLinks(Links) { \
3500 PRTL_SPLAY_LINKS _SplayLinks; \
3501 _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
3502 _SplayLinks->Parent = _SplayLinks; \
3503 _SplayLinks->LeftChild = NULL; \
3504 _SplayLinks->RightChild = NULL; \
3505}
3506
3507#define RtlIsLeftChild(Links) \
3508 (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3509
3510#define RtlIsRightChild(Links) \
3511 (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3512
3513#define RtlRightChild(Links) \
3514 ((PRTL_SPLAY_LINKS)(Links))->RightChild
3515
3516#define RtlIsRoot(Links) \
3517 (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
3518
3519#define RtlLeftChild(Links) \
3520 ((PRTL_SPLAY_LINKS)(Links))->LeftChild
3521
3522#define RtlParent(Links) \
3523 ((PRTL_SPLAY_LINKS)(Links))->Parent
3524
3525#define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
3526 { \
3527 PRTL_SPLAY_LINKS _SplayParent; \
3528 PRTL_SPLAY_LINKS _SplayChild; \
3529 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3530 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3531 _SplayParent->LeftChild = _SplayChild; \
3532 _SplayChild->Parent = _SplayParent; \
3533 }
3534
3535#define RtlInsertAsRightChild(ParentLinks,ChildLinks) \
3536 { \
3537 PRTL_SPLAY_LINKS _SplayParent; \
3538 PRTL_SPLAY_LINKS _SplayChild; \
3539 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3540 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3541 _SplayParent->RightChild = _SplayChild; \
3542 _SplayChild->Parent = _SplayParent; \
3543 }
3544
3545#if !defined(MIDL_PASS)
3546
3548LUID
3550RtlConvertLongToLuid(
3551 _In_ LONG Val)
3552{
3553 LUID Luid;
3554 LARGE_INTEGER Temp;
3555
3556 Temp.QuadPart = Val;
3557 Luid.LowPart = Temp.u.LowPart;
3558 Luid.HighPart = Temp.u.HighPart;
3559 return Luid;
3560}
3561
3563LUID
3566 _In_ ULONG Val)
3567{
3568 LUID Luid;
3569
3570 Luid.LowPart = Val;
3571 Luid.HighPart = 0;
3572 return Luid;
3573}
3574
3575#endif /* !defined(MIDL_PASS) */
3576
3577#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
3578#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
3579 *CallersAddress = (PVOID)_ReturnAddress(); \
3580 *CallersCaller = NULL;
3581#else
3582#if (NTDDI_VERSION >= NTDDI_WIN2K)
3584VOID
3585NTAPI
3587 _Out_ PVOID *CallersAddress,
3588 _Out_ PVOID *CallersCaller);
3589#endif
3590#endif
3591
3592#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
3593
3594#if (NTDDI_VERSION >= NTDDI_WIN7)
3595
3597VOID
3598NTAPI
3601{
3602 Context->ChainHead = NULL;
3603 Context->PrevLinkage = NULL;
3604}
3605
3607VOID
3608NTAPI
3612{
3613 Context->ChainHead = Enumerator->ChainHead;
3614 Context->PrevLinkage = Enumerator->HashEntry.Linkage.Blink;
3615}
3616
3618VOID
3619NTAPI
3622{
3624 return;
3625}
3626
3628ULONG
3629NTAPI
3632{
3633 return HashTable->TableSize;
3634}
3635
3637ULONG
3638NTAPI
3641{
3642 return HashTable->NonEmptyBuckets;
3643}
3644
3646ULONG
3647NTAPI
3650{
3651 return HashTable->TableSize - HashTable->NonEmptyBuckets;
3652}
3653
3655ULONG
3656NTAPI
3659{
3660 return HashTable->NumEntries;
3661}
3662
3664ULONG
3665NTAPI
3668{
3669 return HashTable->NumEnumerators;
3670}
3671
3672#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
3673
3674#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
3675
3677$if (_NTIFS_)
3678
3679#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1
3680#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2
3681
3682#define RtlUnicodeStringToOemSize(STRING) (NLS_MB_OEM_CODE_PAGE_TAG ? \
3683 RtlxUnicodeStringToOemSize(STRING) : \
3684 ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
3685)
3686
3687#define RtlOemStringToUnicodeSize(STRING) ( \
3688 NLS_MB_OEM_CODE_PAGE_TAG ? \
3689 RtlxOemStringToUnicodeSize(STRING) : \
3690 ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
3691)
3692
3693#define RtlOemStringToCountedUnicodeSize(STRING) ( \
3694 (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
3695)
3696
3697#define RtlOffsetToPointer(B,O) ((PCHAR)(((PCHAR)(B)) + ((ULONG_PTR)(O))))
3698#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 _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MinimumAddress
static _Out_opt_ PULONGLONG Start
static _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MaximumAddress
static _Out_ PULONGLONG TargetLength
static GENERIC_MAPPING GenericMapping
Definition: SeInheritance.c:11
Type
Definition: Type.h:7
#define __inline
Definition: _wctype.cpp:15
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
Definition: acpixf.h:1220
unsigned char BOOLEAN
Definition: actypes.h:127
ULONGLONG NTAPI RtlCmDecodeMemIoResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _Out_opt_ PULONGLONG Start)
Definition: memres.c:58
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)
Definition: avltable.c:26
LONG NTSTATUS
Definition: precomp.h:26
static WCHAR ServiceName[]
Definition: browser.c:20
NTSYSAPI ULONG NTAPI RtlRandomEx(PULONG Seed)
OSVERSIONINFOW VersionInfo
Definition: wkssvc.c:40
#define NTSYSAPI
Definition: ntoskrnl.h:12
VOID NTAPI RtlAssert(IN PVOID FailedAssertion, IN PVOID FileName, IN ULONG LineNumber, IN PCHAR Message OPTIONAL)
Definition: debug.c:509
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:616
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:634
#define __drv_aliasesMem
Definition: btrfs_drv.h:203
@ Ace
Definition: card.h:12
return
Definition: dirsup.c:529
Definition: bufpool.h:45
#define RtlAreBitsSet
Definition: dbgbitmap.h:328
#define RtlFindClearBits
Definition: dbgbitmap.h:332
#define RtlClearBits
Definition: dbgbitmap.h:331
#define RtlAreBitsClear
Definition: dbgbitmap.h:327
#define RtlInitializeBitMap
Definition: dbgbitmap.h:326
#define RtlFindNextForwardRunClear
Definition: dbgbitmap.h:338
#define RtlClearAllBits
Definition: dbgbitmap.h:329
#define RtlFindLastBackwardRunClear
Definition: dbgbitmap.h:336
#define RtlClearBit
Definition: dbgbitmap.h:330
#define RtlFindClearBitsAndSet
Definition: dbgbitmap.h:333
#define RtlTestBit
Definition: dbgbitmap.h:347
#define RtlNumberOfSetBits
Definition: dbgbitmap.h:343
#define RtlFindNextForwardRunSet
Definition: dbgbitmap.h:339
#define RtlSetAllBits
Definition: dbgbitmap.h:346
#define RtlCheckBit
Definition: dbgbitmap.h:349
#define RtlFindLongestRunClear
Definition: dbgbitmap.h:337
#define RtlFindClearRuns
Definition: dbgbitmap.h:335
#define RtlFindFirstRunClear
Definition: dbgbitmap.h:334
#define RtlSetBit
Definition: dbgbitmap.h:344
#define RtlFindSetBitsAndClear
Definition: dbgbitmap.h:341
#define RtlNumberOfClearBits
Definition: dbgbitmap.h:342
#define RtlSetBits
Definition: dbgbitmap.h:345
#define RtlFindSetBits
Definition: dbgbitmap.h:340
ush Pos
Definition: deflate.h:92
#define BufferSize
Definition: mmc.h:75
LPWSTR Name
Definition: desk.c:124
_In_ ULONG BufferSize
Definition: dispmprt.h:490
_In_ HANDLE _In_ CONST PDXGKMDT_OPM_GET_INFO_PARAMETERS Parameters
Definition: dispmprt.h:321
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
Definition: version.c:182
#define DECLSPEC_NORETURN
Definition: corecrt.h:131
static const WCHAR Signature[]
Definition: parser.c:141
static const WCHAR Message[]
Definition: register.c:74
@ AnsiString
Definition: dnslib.h:19
BOOLEAN NTAPI RtlIsValidOemCharacter(IN PWCHAR Char)
Definition: unicode.c:514
return ret
Definition: mutex.c:147
#define ULONG_PTR
Definition: config.h:101
#define __drv_freesMem(kind)
Definition: driverspecs.h:272
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define __drv_allocatesMem(kind)
Definition: driverspecs.h:257
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
#define RemoveEntryList(Entry)
Definition: env_spec_w32.h:986
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define RtlCompareMemory(s1, s2, l)
Definition: env_spec_w32.h:465
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define RemoveTailList(ListHead)
Definition: env_spec_w32.h:975
#define RemoveHeadList(ListHead)
Definition: env_spec_w32.h:964
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
std::wstring STRING
Definition: fontsub.cpp:33
_In_ ULONG FramesToCapture
_In_ ULONG _Out_opt_ PULONG BackTraceHash
Status
Definition: gdiplustypes.h:24
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)
Definition: generictable.c:100
ASMGENDATA Table[]
Definition: genincdata.c:61
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:312
#define _NTIFS_
Definition: ifssupp.h:20
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)
Definition: intrin_ppc.h:306
__fastfail(FAST_FAIL_INVALID_ARG)
#define I(s)
LARGE_INTEGER NTAPI RtlLargeIntegerDivide(LARGE_INTEGER Dividend, LARGE_INTEGER Divisor, PLARGE_INTEGER Remainder)
Definition: largeint.c:273
if(dx< 0)
Definition: linetemp.h:194
#define RtlFillMemoryUlong(dst, len, val)
Definition: mkhive.h:55
unsigned __int64 ULONG64
Definition: imports.h:198
unsigned __int64 * PULONG64
Definition: imports.h:198
static PWSTR GuidString
Definition: apphelp.c:93
static PTIME_FIELDS TimeFields
Definition: time.c:36
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
#define _Unchanged_(e)
Definition: ms_sal.h:582
#define __inner_callback
Definition: ms_sal.h:2636
@ Root
Definition: cmtypes.h:261
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize _Pre_valid_ PVOID * BaseAddress
Definition: mmfuncs.h:408
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
Definition: rtlfuncs.h:1625
_In_ PLUID SourceLuid
Definition: rtlfuncs.h:1349
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
Definition: rtlfuncs.h:1623
_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
Definition: rtlfuncs.h:1630
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
_In_ const STRING * String2
Definition: rtlfuncs.h:2404
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
Definition: rtlfuncs.h:1957
_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)
Definition: sid.c:54
_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
Definition: rtlfuncs.h:1629
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
*BytesInUnicodeString PWCH UnicodeString
Definition: rtlfuncs.h:2080
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
Definition: rtlfuncs.h:4660
_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
Definition: rtlfuncs.h:1631
_In_ const STRING _In_ BOOLEAN CaseInSensitive
Definition: rtlfuncs.h:2437
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
Definition: rtlfuncs.h:1547
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
Definition: rtlfuncs.h:4339
_In_ ULONG TypeMask
Definition: rtlfuncs.h:4697
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
Definition: rtlfuncs.h:4231
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
Definition: rtlfuncs.h:1628
_Inout_opt_ POEM_STRING _Out_opt_ PBOOLEAN NameContainsSpaces
Definition: rtlfuncs.h:3138
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
Definition: rtlfuncs.h:2082
_In_ const STRING _In_ BOOLEAN CaseInsensitive
Definition: rtlfuncs.h:2406
_In_ ULONG _In_ ULONG AceFlags
Definition: rtlfuncs.h:1174
_In_opt_ PSID _In_opt_ BOOLEAN GroupDefaulted
Definition: rtlfuncs.h:1680
_In_ PSID _In_ BOOLEAN AllocateDestinationString
Definition: rtlfuncs.h:1381
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
Definition: sid.c:150
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051
_In_ PSID SourceSid
Definition: rtlfuncs.h:1391
_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
Definition: rtlfuncs.h:4234
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
_In_ BOOLEAN DaclPresent
Definition: rtlfuncs.h:1667
NTSYSAPI ULONG NTAPI RtlxAnsiStringToUnicodeSize(PCANSI_STRING AnsiString)
NTSYSAPI LONG NTAPI RtlCompareUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInsensitive)
Definition: string_lib.cpp:31
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2486
NTSYSAPI NTSTATUS NTAPI RtlGetSaclSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PBOOLEAN SaclPresent, _Out_ PACL *Sacl, _Out_ PBOOLEAN SaclDefaulted)
NTSYSAPI BOOLEAN NTAPI RtlValidSid(IN PSID Sid)
Definition: sid.c:21
NTSYSAPI CHAR NTAPI RtlUpperChar(CHAR Source)
NTSYSAPI BOOLEAN NTAPI RtlEqualPrefixSid(PSID Sid1, PSID Sid2)
_In_ ULONG _In_ ULONGLONG ConditionMask
Definition: rtlfuncs.h:4699
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
Definition: rtlfuncs.h:1152
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)
Definition: unicode.c:2558
_In_opt_ PSID _In_opt_ BOOLEAN OwnerDefaulted
Definition: rtlfuncs.h:1704
_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
Definition: rtlfuncs.h:1627
_Out_ _Inout_ POEM_STRING DestinationString
Definition: rtlfuncs.h:1956
_In_ ULONG _In_ SECURITY_INFORMATION RequiredInformation
Definition: rtlfuncs.h:1748
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(_In_ PSID Sid)
_In_ ULONG _In_ ULONG CompressedBufferSize
Definition: rtlfuncs.h:3329
_In_ ULONG _In_ ULONG _Out_ PULONG FinalUncompressedSize
Definition: rtlfuncs.h:3331
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
Definition: rtlfuncs.h:1633
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1165
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)
Definition: unicode.c:1091
_Out_ PULONG ElapsedSeconds
Definition: rtlfuncs.h:4669
_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
Definition: rtlfuncs.h:1624
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
_In_ ULONG SecurityDescriptorLength
Definition: rtlfuncs.h:1746
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString(PUNICODE_STRING Destination, PCWSTR Source)
NTSYSAPI NTSTATUS NTAPI RtlDeleteAce(PACL Acl, ULONG AceIndex)
_In_ ULONG Revision
Definition: rtlfuncs.h:1162
NTSYSAPI VOID NTAPI RtlMapGenericMask(PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping)
_In_ const STRING * Source
Definition: rtlfuncs.h:2465
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI ULONG NTAPI RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString)
Definition: unicode.c:2177
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptorRelative(_Out_ PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor, _In_ ULONG Revision)
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInMultiByteString
Definition: rtlfuncs.h:2623
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
Definition: rtlfuncs.h:3136
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG DaclSize
Definition: rtlfuncs.h:1626
_In_ ULONG UncompressedBufferSize
Definition: rtlfuncs.h:3327
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
Definition: rtlfuncs.h:1163
_In_opt_ PSID Group
Definition: rtlfuncs.h:1678
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)
Definition: sd.c:1054
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInOemString
Definition: rtlfuncs.h:2085
#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT
Definition: rtlfuncs.h:840
NTSYSAPI WCHAR NTAPI RtlDowncaseUnicodeChar(IN WCHAR Source)
Definition: nls.c:131
NTSYSAPI VOID NTAPI RtlSecondsSince1970ToTime(_In_ ULONG SecondsSince1970, _Out_ PLARGE_INTEGER Time)
NTSYSAPI ULONG NTAPI RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString)
Definition: unicode.c:2124
_In_ PWSTR Path
Definition: rtlfuncs.h:4197
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
Definition: rtlfuncs.h:1545
_In_ BOOLEAN _In_opt_ PACL _In_opt_ BOOLEAN DaclDefaulted
Definition: rtlfuncs.h:1670
*BytesInUnicodeString PWCH _In_ ULONG MaxBytesInUnicodeString
Definition: rtlfuncs.h:2081
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)
Definition: unicode.c:261
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)
Definition: nlsboot.c:63
_Use_decl_annotations_ NTSTATUS NTAPI RtlOemToUnicodeN(_Out_ PWCHAR UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH OemString, _In_ ULONG OemSize)
Definition: nlsboot.c:283
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeSize(_Out_ PULONG UnicodeSize, _In_ PCCH MbString, _In_ ULONG MbSize)
Definition: nlsboot.c:94
#define _Pre_unknown_
Definition: no_sal2.h:98
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Out_opt_
Definition: no_sal2.h:214
#define _Notnull_
Definition: no_sal2.h:54
#define _Inout_
Definition: no_sal2.h:162
#define _Ret_maybenull_
Definition: no_sal2.h:328
#define _Success_(c)
Definition: no_sal2.h:84
#define _At_(t, a)
Definition: no_sal2.h:40
#define _In_z_
Definition: no_sal2.h:164
#define _Pre_maybenull_
Definition: no_sal2.h:514
#define _In_opt_z_
Definition: no_sal2.h:218
#define _Outptr_
Definition: no_sal2.h:262
#define _Out_range_(l, h)
Definition: no_sal2.h:370
#define _Post_writable_byte_size_(s)
Definition: no_sal2.h:542
#define _Outptr_opt_result_maybenull_
Definition: no_sal2.h:268
#define _Out_writes_bytes_opt_(s)
Definition: no_sal2.h:228
#define _Valid_
Definition: no_sal2.h:80
#define _Out_writes_bytes_to_(s, c)
Definition: no_sal2.h:190
#define _Post_invalid_
Definition: no_sal2.h:524
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_writes_(s)
Definition: no_sal2.h:176
#define _Post_satisfies_(e)
Definition: no_sal2.h:66
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _Out_writes_bytes_all_(s)
Definition: no_sal2.h:194
#define _In_opt_
Definition: no_sal2.h:212
#define _Writable_bytes_(s)
Definition: no_sal2.h:70
#define _Out_writes_bytes_to_opt_(s, c)
Definition: no_sal2.h:240
#define _Const_
Definition: no_sal2.h:58
#define _Reserved_
Definition: no_sal2.h:504
#define _Post_equal_to_(e)
Definition: no_sal2.h:384
#define _Out_writes_to_(s, c)
Definition: no_sal2.h:188
#define _In_range_(l, h)
Definition: no_sal2.h:368
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _Pre_readable_size_(s)
Definition: no_sal2.h:528
#define _Maybe_raises_SEH_exception_
Definition: no_sal2.h:396
#define _Pre_
Definition: no_sal2.h:46
#define _In_reads_bytes_opt_(s)
Definition: no_sal2.h:224
int Count
Definition: noreturn.cpp:7
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
Definition: nt_native.h:41
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
ULONG ACCESS_MASK
Definition: nt_native.h:40
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)
#define FASTCALL
Definition: nt_native.h:50
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)
WCHAR * PWCH
Definition: ntbasedef.h:422
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
Definition: ntbasedef.h:666
CHAR * PCH
Definition: ntbasedef.h:403
CONST WCHAR * PCWCH
Definition: ntbasedef.h:423
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:395
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
CONST CHAR * PCCH
Definition: ntbasedef.h:404
#define _NTDDK_
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
NTSYSAPI NTSTATUS NTAPI RtlSetGroupSecurityDescriptor(IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID Group, IN BOOLEAN GroupDefaulted)
Definition: sd.c:410
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)
Definition: sd.c:626
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
#define ExRaiseStatus
Definition: ntoskrnl.h:114
VOID FASTCALL RtlPrefetchMemoryNonTemporal(IN PVOID Source, IN SIZE_T Length)
Definition: misc.c:214
#define STATUS_DATATYPE_MISALIGNMENT
Definition: ntstatus.h:263
static BOOL Set
Definition: pageheap.c:10
#define UNALIGNED
Definition: pecoff.h:347
#define CONST
Definition: pedump.c:81
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
static WCHAR Address[46]
Definition: ping.c:68
VOID NTAPI PfxInitialize(IN PPREFIX_TABLE PrefixTable)
Definition: prefix.c:17
PPREFIX_TABLE_ENTRY NTAPI PfxFindPrefix(IN PPREFIX_TABLE PrefixTable, IN PSTRING FullName)
Definition: prefix.c:42
VOID NTAPI PfxRemovePrefix(IN PPREFIX_TABLE PrefixTable, IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
Definition: prefix.c:34
BOOLEAN NTAPI PfxInsertPrefix(IN PPREFIX_TABLE PrefixTable, IN PSTRING Prefix, IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
Definition: prefix.c:24
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)
#define RtlUTF8ToUnicodeN
Definition: reactos.cpp:12
@ Restart
Definition: sacdrv.h:269
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)
Definition: compress.c:326
NTSTATUS NTAPI RtlDescribeChunk(IN USHORT CompressionFormat, IN OUT PUCHAR *CompressedBuffer, IN PUCHAR EndOfCompressedBufferPlus1, OUT PUCHAR *ChunkBuffer, OUT PULONG ChunkSize)
Definition: compress.c:389
NTSTATUS NTAPI RtlReserveChunk(IN USHORT CompressionFormat, IN OUT PUCHAR *CompressedBuffer, IN PUCHAR EndOfCompressedBufferPlus1, OUT PUCHAR *ChunkBuffer, IN ULONG ChunkSize)
Definition: compress.c:429
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)
Definition: compress.c:310
VOID NTAPI RtlRunOnceInitialize(_Out_ PRTL_RUN_ONCE RunOnce)
Definition: runonce.c:11
_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)
Definition: runonce.c:121
NTSTATUS NTAPI RtlRunOnceComplete(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ ULONG Flags, _In_opt_ PVOID Context)
Definition: runonce.c:73
_Must_inspect_result_ NTSTATUS NTAPI RtlRunOnceBeginInitialize(_Inout_ PRTL_RUN_ONCE RunOnce, _In_ ULONG Flags, _Outptr_opt_result_maybenull_ PVOID *Context)
Definition: runonce.c:22
NTSTATUS NTAPI RtlOemStringToCountedUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
Definition: unicode.c:1473
Entry
Definition: section.c:5216
#define __analysis_noreturn
Definition: specstrings.h:262
_In_ PVOID Context
Definition: storport.h:2269
Definition: hash.c:67
Definition: scsiwmi.h:51
Definition: typedefs.h:120
struct _LIST_ENTRY * Blink
Definition: typedefs.h:122
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
LONG HighPart
DWORD LowPart
Definition: rtltypes.h:626
Definition: rtltypes.h:528
Definition: ntbasedef.h:640
struct _SINGLE_LIST_ENTRY * Next
Definition: ntbasedef.h:641
unsigned short Length
Definition: sprintf.c:451
void * Buffer
Definition: sprintf.c:453
unsigned short MaximumLength
Definition: sprintf.c:452
Definition: rtltypes.h:640
NTSTATUS NTAPI RtlCreateSystemVolumeInformationFolder(IN PUNICODE_STRING VolumeRootPath)
Definition: sysvol.c:551
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
char * PSTR
Definition: typedefs.h:51
const uint16_t * PCWSTR
Definition: typedefs.h:57
int64_t LONG64
Definition: typedefs.h:68
unsigned char UCHAR
Definition: typedefs.h:53
unsigned char * PBOOLEAN
Definition: typedefs.h:53
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint64_t ULONGLONG
Definition: typedefs.h:67
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint16_t * PWCHAR
Definition: typedefs.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char CCHAR
Definition: typedefs.h:51
char * PCHAR
Definition: typedefs.h:51
ULONG CLONG
Definition: umtypes.h:126
CONST STRING * PCOEM_STRING
Definition: umtypes.h:207
#define MAXLONG
Definition: umtypes.h:116
#define NTAPI_INLINE
Definition: umtypes.h:68
CONST char * PCSZ
Definition: umtypes.h:125
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)
LONGLONG QuadPart
Definition: typedefs.h:114
struct _LARGE_INTEGER::@2741 u
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
Definition: wdfdevice.h:1707
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2439
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
Definition: wdfregistry.h:282
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
Definition: wdfregistry.h:275
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
#define FORCEINLINE
Definition: wdftypes.h:67
#define _WDMDDK_
Definition: wdm.template.h:26
#define NTKERNELAPI
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 void WINAPI RtlInitCodePageTable(USHORT *, CPTABLEINFO *)
NTSYSAPI CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG)
Definition: bitmap.c:211
NTSYSAPI NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING, PCSZ)
NTSYSAPI NTSTATUS WINAPI RtlNormalizeString(ULONG, const WCHAR *, INT, WCHAR *, INT *)
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
NTSYSAPI NTSTATUS WINAPI RtlUnicodeToUTF8N(LPSTR, DWORD, LPDWORD, LPCWSTR, DWORD)
NTSYSAPI UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG, UINT, UINT *)
NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG, LONGLONG, INT)
NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG)
Definition: largeint.c:31
NTSYSAPI NTSTATUS WINAPI RtlInitUnicodeStringEx(PUNICODE_STRING, PCWSTR)
NTSYSAPI NTSTATUS WINAPI RtlInt64ToUnicodeString(ULONGLONG, ULONG, UNICODE_STRING *)
NTSYSAPI BOOLEAN WINAPI RtlPrefixString(const STRING *, const STRING *, BOOLEAN)
Definition: unicode.c:886
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 NTSTATUS WINAPI RtlDecompressFragment(USHORT, PUCHAR, ULONG, PUCHAR, ULONG, ULONG, PULONG, PVOID)
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)
Definition: bitmap.c:235
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG, LONGLONG)
NTSYSAPI NTSTATUS WINAPI RtlDuplicateUnicodeString(int, const UNICODE_STRING *, UNICODE_STRING *)
NTSYSAPI NTSTATUS WINAPI RtlUnicodeToCustomCPN(CPTABLEINFO *, char *, DWORD, DWORD *, const WCHAR *, DWORD)
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 NTSTATUS WINAPI RtlUpcaseUnicodeToCustomCPN(CPTABLEINFO *, char *, DWORD, DWORD *, const WCHAR *, DWORD)
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)
NTSYSAPI NTSTATUS WINAPI RtlCustomCPToUnicodeN(CPTABLEINFO *, WCHAR *, DWORD, DWORD *, const char *, DWORD)
_In_ DWORD _In_ int _In_ int _In_opt_ LPNLSVERSIONINFO lpVersionInformation
Definition: winnls.h:1278
#define _WINNT_
_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
Definition: wsk.h:191
_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
Definition: wsk.h:409
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY ListEnd
Definition: exfuncs.h:1224
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
Definition: iotypes.h:1659
NTSYSAPI BOOLEAN NTAPI RtlDeleteElementGenericTable(_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer)
_In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInCustomCPString
Definition: rtlfuncs.h:1964
_In_ PUNICODE_STRING _In_ ULONG CaseInsensitiveIndex
Definition: rtlfuncs.h:1699
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG UTF8StringActualByteCount
Definition: rtlfuncs.h:2672
_In_ ULONG Shift
Definition: rtlfuncs.h:2705
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
Definition: rtlfuncs.h:2687
NTSYSAPI NTSTATUS NTAPI RtlCreateServiceSid(_In_ PUNICODE_STRING ServiceName, _Out_writes_bytes_opt_(*ServiceSidLength) PSID ServiceSid, _Inout_ PULONG ServiceSidLength)
Definition: sid.c:412
_In_ LARGE_INTEGER Divisor
Definition: rtlfuncs.h:3068
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
Definition: rtlfuncs.h:256
FORCEINLINE ULONG NTAPI RtlTotalBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3630
_In_ PSTRING FullName
Definition: rtlfuncs.h:1665
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
Definition: rtlfuncs.h:2674
#define RtlUlongByteSwap(_x)
Definition: rtlfuncs.h:3222
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)
Definition: rtlfuncs.h:3609
FORCEINLINE PVOID RtlSecureZeroMemory(_Out_writes_bytes_all_(Size) PVOID Pointer, _In_ SIZE_T Size)
Definition: rtlfuncs.h:3149
_In_opt_ PVOID HeapBase
Definition: rtlfuncs.h:2184
#define RtlUlonglongByteSwap(_x)
Definition: rtlfuncs.h:3223
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn
Definition: rtlfuncs.h:2507
*UTF8StringActualByteCount PCHAR _In_ ULONG UTF8StringMaxByteCount
Definition: rtlfuncs.h:2671
_In_ PSID OldSid
Definition: rtlfuncs.h:2837
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(_In_ ULONG OSMajorVersion, _In_ ULONG OSMinorVersion, _In_ ULONG SpMajorVersion, _In_ ULONG SpMinorVersion, _Out_ PULONG ReturnedProductType)
Definition: product.c:17
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
Definition: rtlfuncs.h:3479
_In_ ULONG _In_ ULONG _In_ ULONG _In_ PCOMPRESSED_DATA_INFO CompressedDataInfo
Definition: rtlfuncs.h:2318
FORCEINLINE ULONG NTAPI RtlTotalEntriesHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3657
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)
_In_ ULONG NumberToFind
Definition: rtlfuncs.h:612
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)
Definition: rtlfuncs.h:3565
_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)
Definition: rtlfuncs.h:3639
_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
Definition: rtlfuncs.h:2317
_Inout_ PUCHAR * CompressedBuffer
Definition: rtlfuncs.h:2291
_Ret_range_(<, MAXLONG) NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
_In_ ULONG MaxBytesInCustomCPString
Definition: rtlfuncs.h:1973
NTSYSAPI ULONGLONG NTAPI RtlIoDecodeMemIoResource(_In_ struct _IO_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Alignment, _Out_opt_ PULONGLONG MinimumAddress, _Out_opt_ PULONGLONG MaximumAddress)
_In_ ULONG AclLength
Definition: rtlfuncs.h:1859
_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
Definition: rtlfuncs.h:2430
_In_ ULONG AceRevision
Definition: rtlfuncs.h:1868
FORCEINLINE VOID NTAPI RtlReleaseHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
Definition: rtlfuncs.h:3620
NTSYSAPI VOID NTAPI RtlEndWeakEnumerationHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
*UnicodeStringActualByteCount PWSTR _In_ ULONG UnicodeStringMaxByteCount
Definition: rtlfuncs.h:2684
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
Definition: rtlfuncs.h:518
FORCEINLINE BOOLEAN RemoveEntryListUnsafe(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:68
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
Definition: rtlfuncs.h:2294
_In_ ULONG _In_ ULONG HintIndex
Definition: rtlfuncs.h:613
_In_ ULONG _In_ ULONG _In_ ULONG AceListLength
Definition: rtlfuncs.h:1871
_In_ BOOLEAN _In_ ULONG HashAlgorithm
Definition: rtlfuncs.h:2055
_In_ ULONG _In_ ULONG _Out_ PULONG _In_ PVOID WorkSpace
Definition: rtlfuncs.h:2283
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplayingAvl(_In_ PRTL_AVL_TABLE Table, _Inout_ PVOID *RestartKey)
_In_ LARGE_INTEGER _Out_opt_ PLARGE_INTEGER Remainder
Definition: rtlfuncs.h:3069
_In_ PCWSTR _In_ LONG SourceStringLength
Definition: rtlfuncs.h:2548
_Out_ PBOOLEAN _Out_ PACL _Out_ PBOOLEAN SaclDefaulted
Definition: rtlfuncs.h:2432
#define InterlockedPushEntrySList(SListHead, SListEntry)
Definition: rtlfuncs.h:3413
_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)
Definition: rtlfuncs.h:3666
NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply(_In_ LARGE_INTEGER Multiplicand, _In_ LONG Multiplier)
_In_opt_ PVOID _In_opt_ SIZE_T ReserveSize
Definition: rtlfuncs.h:2185
FORCEINLINE VOID FatalListEntryError(_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
Definition: rtlfuncs.h:84
NTSYSAPI ULONG64 NTAPI RtlGetEnabledExtendedFeatures(IN ULONG64 FeatureMask)
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerSubtract(_In_ LARGE_INTEGER Minuend, _In_ LARGE_INTEGER Subtrahend)
Definition: rtlfuncs.h:2940
_In_ BOOLEAN _Inout_ PGENERATE_NAME_CONTEXT _Inout_ PUNICODE_STRING Name8dot3
Definition: rtlfuncs.h:1603
static __inline LARGE_INTEGER NTAPI_INLINE RtlConvertUlongToLargeInteger(_In_ ULONG UnsignedInteger)
Definition: rtlfuncs.h:2873
_In_ PSID _In_ PSID NewSid
Definition: rtlfuncs.h:2838
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlRealPredecessor(_In_ PRTL_SPLAY_LINKS Links)
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
Definition: rtlfuncs.h:243
*BytesInOemString PCHAR OemString
Definition: rtlfuncs.h:1577
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerNegate(_In_ LARGE_INTEGER Subtrahend)
Definition: rtlfuncs.h:2927
NTSYSAPI NTSTATUS NTAPI RtlIdnToUnicode(IN ULONG Flags, IN PCWSTR SourceString, IN LONG SourceStringLength, OUT PWSTR DestinationString, IN OUT PLONG DestinationStringLength)
#define RtlIsServicePackVersionInstalled
Definition: rtlfuncs.h:3455
#define RtlUshortByteSwap(_x)
Definition: rtlfuncs.h:3221
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)
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1286
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSplay(_Inout_ PRTL_SPLAY_LINKS Links)
_In_ ULONG StartingIndex
Definition: rtlfuncs.h:398
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)
Definition: except.c:22
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
Definition: rtlfuncs.h:2683
FORCEINLINE ULONG NTAPI RtlEmptyBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3648
#define RtlCopyMemoryNonTemporal
Definition: rtlfuncs.h:296
_In_ SIZE_T String1Length
Definition: rtlfuncs.h:516
$if(_WDMDDK_||_WINNT_) $endif(_WDMDDK_||_WINNT_) $if(_WDMDDK_) DECLSPEC_NORETURN FORCEINLINE VOID RtlFailFast(_In_ ULONG Code)
Definition: rtlfuncs.h:5
_In_ PSID Sid2
Definition: rtlfuncs.h:1772
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE _In_opt_ PVOID TableContext
Definition: rtlfuncs.h:1108
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE FreeRoutine
Definition: rtlfuncs.h:1107
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)
Definition: rtlfuncs.h:3130
#define InterlockedPopEntrySList(SListHead)
Definition: rtlfuncs.h:3416
FORCEINLINE VOID NTAPI RtlInitHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
Definition: rtlfuncs.h:3599
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
Definition: rtlfuncs.h:1106
*BytesInMultiByteString PCHAR _In_ ULONG MaxBytesInMultiByteString
Definition: rtlfuncs.h:1545
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
Definition: rtlfuncs.h:1860
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)
Definition: rtlfuncs.h:2885
NTSYSAPI VOID NTAPI RtlDeleteHashTable(_In_ _When_((HashTable->Flags &RTL_HASH_ALLOCATED_HEADER), __drv_freesMem(Mem) _Post_invalid_) PRTL_DYNAMIC_HASH_TABLE HashTable)
_In_ ULONG AceIndex
Definition: rtlfuncs.h:1879
NTSYSAPI NTSTATUS NTAPI RtlCmEncodeMemIoResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _In_ UCHAR Type, _In_ ULONGLONG Length, _In_ ULONGLONG Start)
Definition: memres.c:116
_In_ ULONG UncompressedFragmentSize
Definition: rtlfuncs.h:2278
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmptyAvl(_In_ PRTL_AVL_TABLE Table)
NTSYSAPI NTSTATUS NTAPI RtlFindClosestEncodableLength(_In_ ULONGLONG SourceLength, _Out_ PULONGLONG TargetLength)
Definition: memres.c:310
_In_ LARGE_INTEGER Addend2
Definition: rtlfuncs.h:3111
_In_ ULONG _In_ ULONG StartingAceIndex
Definition: rtlfuncs.h:1869
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
Definition: rtlfuncs.h:2056
_In_ __drv_aliasesMem PSTRING Prefix
Definition: rtlfuncs.h:1647
_In_ PSID _In_ PSID _Out_ ULONG * NumChanges
Definition: rtlfuncs.h:2839
FORCEINLINE VOID InitializeSListHead(_Out_ PSLIST_HEADER SListHead)
Definition: rtlfuncs.h:3375
*UTF8StringActualByteCount PCHAR UTF8StringDestination
Definition: rtlfuncs.h:2670
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG UnicodeStringActualByteCount
Definition: rtlfuncs.h:2685
*BytesInMultiByteString PCHAR MultiByteString
Definition: rtlfuncs.h:1544
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)
Definition: rtlfuncs.h:225
#define RtlIsNtDdiVersionAvailable
Definition: rtlfuncs.h:3451
_Inout_ PUCHAR _In_ PUCHAR EndOfCompressedBufferPlus1
Definition: rtlfuncs.h:2292
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:98
_Must_inspect_result_ NTSYSAPI SIZE_T NTAPI RtlCompareMemoryUlong(_In_reads_bytes_(Length) PVOID Source, _In_ SIZE_T Length, _In_ ULONG Pattern)
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T CommitSize
Definition: rtlfuncs.h:2186
*BytesInOemString PCHAR _In_ ULONG MaxBytesInOemString
Definition: rtlfuncs.h:1578
_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
Definition: rtlfuncs.h:2550
_In_ PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
Definition: rtlfuncs.h:1105
_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
Definition: rtlfuncs.h:1648
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreePredecessor(_In_ PRTL_SPLAY_LINKS Links)
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR * ChunkBuffer
Definition: rtlfuncs.h:2293
_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)
Definition: rtlfuncs.h:2899
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
Definition: rtlfuncs.h:1601
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
Definition: rtltypes.h:421
TABLE_SEARCH_RESULT
Definition: rtltypes.h:386
_IRQL_requires_same_ _In_ PVOID _In_ PVOID MatchData
Definition: rtltypes.h:429
RTL_GENERIC_FREE_ROUTINE * PRTL_GENERIC_FREE_ROUTINE
Definition: rtltypes.h:488
#define PSLIST_ENTRY
Definition: rtltypes.h:134
#define RTL_HASH_ALLOCATED_HEADER
Definition: rtltypes.h:526
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
Definition: rtltypes.h:430
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
Definition: rtltypes.h:413
RTL_GENERIC_COMPARE_ROUTINE * PRTL_GENERIC_COMPARE_ROUTINE
Definition: rtltypes.h:471
* PRTL_RUN_ONCE
Definition: rtltypes.h:327
#define RTLVERLIB_DDI(x)
Definition: rtltypes.h:226
RTL_GENERIC_ALLOCATE_ROUTINE * PRTL_GENERIC_ALLOCATE_ROUTINE
Definition: rtltypes.h:480
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
Definition: rtltypes.h:404
RTL_RUN_ONCE_INIT_FN * PRTL_RUN_ONCE_INIT_FN
Definition: rtltypes.h:338
* PSID_IDENTIFIER_AUTHORITY
Definition: setypes.h:464
#define SECURITY_MAX_SID_SIZE
Definition: setypes.h:486
#define const
Definition: zconf.h:233