ReactOS 0.4.16-dev-197-g92996da
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
27VOID
28RtlFailFast(
30{
31 __fastfail(Code);
32}
33
34#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && (defined(_M_CEE_PURE) || defined(_M_CEE_SAFE))
35#define NO_KERNEL_LIST_ENTRY_CHECKS
36#endif
37
38#if !defined(EXTRA_KERNEL_LIST_ENTRY_CHECKS) && defined(__REACTOS__)
39#define EXTRA_KERNEL_LIST_ENTRY_CHECKS
40#endif
41
42#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
43
44#define RTL_STATIC_LIST_HEAD(x) LIST_ENTRY x = { &x, &x }
45
47VOID
49 _Out_ PLIST_ENTRY ListHead)
50{
51 ListHead->Flink = ListHead->Blink = ListHead;
52}
53
58 _In_ const LIST_ENTRY * ListHead)
59{
60 return (BOOLEAN)(ListHead->Flink == ListHead);
61}
62
67{
68 PLIST_ENTRY OldFlink;
69 PLIST_ENTRY OldBlink;
70
71 OldFlink = Entry->Flink;
72 OldBlink = Entry->Blink;
73 OldFlink->Blink = OldBlink;
74 OldBlink->Flink = OldFlink;
75 return (BOOLEAN)(OldFlink == OldBlink);
76}
77
78#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
80VOID
82 _In_ PVOID P1,
83 _In_ PVOID P2,
84 _In_ PVOID P3)
85{
89
91}
92
94VOID
97{
98 if (Entry->Flink->Blink != Entry || Entry->Blink->Flink != Entry)
99 FatalListEntryError(Entry->Blink, Entry, Entry->Flink);
100}
101#endif
102
107{
108 PLIST_ENTRY OldFlink;
109 PLIST_ENTRY OldBlink;
110
111 OldFlink = Entry->Flink;
112 OldBlink = Entry->Blink;
113#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
114#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
115 if (OldFlink == Entry || OldBlink == Entry)
116 FatalListEntryError(OldBlink, Entry, OldFlink);
117#endif
118 if (OldFlink->Blink != Entry || OldBlink->Flink != Entry)
119 FatalListEntryError(OldBlink, Entry, OldFlink);
120#endif
121 OldFlink->Blink = OldBlink;
122 OldBlink->Flink = OldFlink;
123 return (BOOLEAN)(OldFlink == OldBlink);
124}
125
129 _Inout_ PLIST_ENTRY ListHead)
130{
131 PLIST_ENTRY Flink;
133
134#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
135 RtlpCheckListEntry(ListHead);
136#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
137 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
138 FatalListEntryError(ListHead->Blink, ListHead, ListHead->Flink);
139#endif
140#endif
141 Entry = ListHead->Flink;
142 Flink = Entry->Flink;
143#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
144 if (Entry->Blink != ListHead || Flink->Blink != Entry)
145 FatalListEntryError(ListHead, Entry, Flink);
146#endif
147 ListHead->Flink = Flink;
148 Flink->Blink = ListHead;
149 return Entry;
150}
151
155 _Inout_ PLIST_ENTRY ListHead)
156{
157 PLIST_ENTRY Blink;
159
160#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
161 RtlpCheckListEntry(ListHead);
162#ifdef EXTRA_KERNEL_LIST_ENTRY_CHECKS
163 if (ListHead->Flink == ListHead || ListHead->Blink == ListHead)
164 FatalListEntryError(ListHead->Blink, ListHead, ListHead->Flink);
165#endif
166#endif
167 Entry = ListHead->Blink;
168 Blink = Entry->Blink;
169#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
170 if (Blink->Flink != Entry || Entry->Flink != ListHead)
171 FatalListEntryError(Blink, Entry, ListHead);
172#endif
173 ListHead->Blink = Blink;
174 Blink->Flink = ListHead;
175 return Entry;
176}
177
179VOID
181 _Inout_ PLIST_ENTRY ListHead,
183{
184 PLIST_ENTRY OldBlink;
185#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
186 RtlpCheckListEntry(ListHead);
187#endif
188 OldBlink = ListHead->Blink;
189 Entry->Flink = ListHead;
190 Entry->Blink = OldBlink;
191#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
192 if (OldBlink->Flink != ListHead)
193 FatalListEntryError(OldBlink->Blink, OldBlink, ListHead);
194#endif
195 OldBlink->Flink = Entry;
196 ListHead->Blink = Entry;
197}
198
200VOID
202 _Inout_ PLIST_ENTRY ListHead,
204{
205 PLIST_ENTRY OldFlink;
206#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && DBG
207 RtlpCheckListEntry(ListHead);
208#endif
209 OldFlink = ListHead->Flink;
210 Entry->Flink = OldFlink;
211 Entry->Blink = ListHead;
212#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
213 if (OldFlink->Blink != ListHead)
214 FatalListEntryError(ListHead, OldFlink, OldFlink->Flink);
215#endif
216 OldFlink->Blink = Entry;
217 ListHead->Flink = Entry;
218}
219
221VOID
223 _Inout_ PLIST_ENTRY ListHead,
224 _Inout_ PLIST_ENTRY ListToAppend)
225{
226 PLIST_ENTRY ListEnd = ListHead->Blink;
227
228#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS)
229 RtlpCheckListEntry(ListHead);
230 RtlpCheckListEntry(ListToAppend);
231#endif
232 ListHead->Blink->Flink = ListToAppend;
233 ListHead->Blink = ListToAppend->Blink;
234 ListToAppend->Blink->Flink = ListHead;
235 ListToAppend->Blink = ListEnd;
236}
237
242{
243 PSINGLE_LIST_ENTRY FirstEntry;
244 FirstEntry = ListHead->Next;
245 if (FirstEntry != NULL) {
246 ListHead->Next = FirstEntry->Next;
247 }
248 return FirstEntry;
249}
250
252VOID
256{
257 Entry->Next = ListHead->Next;
258 ListHead->Next = Entry;
259}
260
261#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
262
265VOID
266NTAPI
268 _In_ PVOID FailedAssertion,
272
273/* VOID
274 * RtlCopyMemory(
275 * IN VOID UNALIGNED *Destination,
276 * IN CONST VOID UNALIGNED *Source,
277 * IN SIZE_T Length)
278 */
279#define RtlCopyMemory(Destination, Source, Length) \
280 memcpy(Destination, Source, Length)
281
282#define RtlCopyBytes RtlCopyMemory
283
284#if defined(_M_AMD64)
286VOID
287NTAPI
292#else
293#define RtlCopyMemoryNonTemporal RtlCopyMemory
294#endif
295
296/* BOOLEAN
297 * RtlEqualLuid(
298 * IN PLUID Luid1,
299 * IN PLUID Luid2)
300 */
301#define RtlEqualLuid(Luid1, Luid2) \
302 (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
303
304/* LOGICAL
305 * RtlEqualMemory(
306 * IN VOID UNALIGNED *Destination,
307 * IN CONST VOID UNALIGNED *Source,
308 * IN SIZE_T Length)
309 */
310#define RtlEqualMemory(Destination, Source, Length) \
311 (!memcmp(Destination, Source, Length))
312
313/* VOID
314 * RtlFillMemory(
315 * IN VOID UNALIGNED *Destination,
316 * IN SIZE_T Length,
317 * IN UCHAR Fill)
318 */
319#define RtlFillMemory(Destination, Length, Fill) \
320 memset(Destination, Fill, Length)
321
322#define RtlFillBytes RtlFillMemory
323
326VOID
327NTAPI
331
336NTAPI
340
344_At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) * sizeof(WCHAR)))
350VOID
351NTAPI
355
356/* VOID
357 * RtlMoveMemory(
358 * IN VOID UNALIGNED *Destination,
359 * IN CONST VOID UNALIGNED *Source,
360 * IN SIZE_T Length)
361 */
362#define RtlMoveMemory(Destination, Source, Length) \
363 memmove(Destination, Source, Length)
364
369NTAPI
374
375/* VOID
376 * RtlZeroMemory(
377 * IN VOID UNALIGNED *Destination,
378 * IN SIZE_T Length)
379 */
380#define RtlZeroMemory(Destination, Length) \
381 memset(Destination, 0, Length)
382
383#define RtlZeroBytes RtlZeroMemory
385
386#if (NTDDI_VERSION >= NTDDI_WIN2K)
387
392NTAPI
394 _In_ PRTL_BITMAP BitMapHeader,
397
401NTAPI
403 _In_ PRTL_BITMAP BitMapHeader,
406
411NTAPI
418
421ULONG
422NTAPI
425
426#define RtlAnsiStringToUnicodeSize(String) ( \
427 NLS_MB_CODE_PAGE_TAG ? \
428 RtlxAnsiStringToUnicodeSize(String) : \
429 ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
430)
431
437 _At_(return, _Out_range_(==, 0)))
440 _At_(return, _Out_range_(<, 0)))
443NTAPI
447
448_Success_(1)
451/* _When_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR) <= Destination->MaximumLength,
452 _At_(Destination->Length, _Post_equal_to_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR)))
453 _At_(return, _Out_range_(==, 0)))
454_When_(_Old_(Destination->Length) + _String_length_(Source) * sizeof(WCHAR) > Destination->MaximumLength,
455 _Unchanged_(Destination->Length)
456 _At_(return, _Out_range_(<, 0))) */
459NTAPI
463
468NTAPI
470 _In_ ULONG RelativeTo,
472
474VOID
475NTAPI
477 _In_ PRTL_BITMAP BitMapHeader);
478
480VOID
481NTAPI
483 _In_ PRTL_BITMAP BitMapHeader,
484 _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToClear) ULONG StartingIndex,
485 _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToClear);
486
489SIZE_T
490NTAPI
492 _In_ const VOID *Source1,
493 _In_ const VOID *Source2,
495
499LONG
500NTAPI
502 _In_ PCUNICODE_STRING String1,
505
509LONG
510NTAPI
517
526VOID
527NTAPI
531
535NTAPI
537 _In_ ULONG RelativeTo,
538 _In_ PWSTR Path);
539
543NTAPI
547
551NTAPI
553 _In_ ULONG RelativeTo,
556
561NTAPI
563 _In_ CONST UNICODE_STRING *String1,
566
567#if !defined(_AMD64_) && !defined(_IA64_)
570NTAPI
572 _In_ LARGE_INTEGER Multiplicand,
573 _In_ LONG Multiplier);
574
577NTAPI
579 _In_ LARGE_INTEGER Dividend,
582#endif
583
584#if defined(_X86_) || defined(_IA64_)
587NTAPI
589 _In_ LARGE_INTEGER Dividend,
590 _In_ LARGE_INTEGER MagicDivisor,
591 _In_ CCHAR ShiftCount);
592#endif
593
596VOID
601
602_Success_(return != -1)
605ULONG
606NTAPI
608 _In_ PRTL_BITMAP BitMapHeader,
611
612_Success_(return != -1)
614ULONG
615NTAPI
617 _In_ PRTL_BITMAP BitMapHeader,
620
622ULONG
623NTAPI
625 _In_ PRTL_BITMAP BitMapHeader,
627
629ULONG
630NTAPI
632 _In_ PRTL_BITMAP BitMapHeader,
633 _Out_writes_to_(SizeOfRunArray, return) PRTL_BITMAP_RUN RunArray,
634 _In_range_(>, 0) ULONG SizeOfRunArray,
635 _In_ BOOLEAN LocateLongestRuns);
636
638ULONG
639NTAPI
641 _In_ PRTL_BITMAP BitMapHeader,
642 _In_ ULONG FromIndex,
643 _Out_ PULONG StartingRunIndex);
644
645_Success_(return != -1)
648CCHAR
649NTAPI
652
654ULONG
655NTAPI
657 _In_ PRTL_BITMAP BitMapHeader,
659
660_Success_(return != -1)
663CCHAR
664NTAPI
667
669ULONG
670NTAPI
672 _In_ PRTL_BITMAP BitMapHeader,
673 _In_ ULONG FromIndex,
674 _Out_ PULONG StartingRunIndex);
675
677ULONG
678NTAPI
680 _In_ PRTL_BITMAP BitMapHeader,
681 _In_ ULONG FromIndex,
682 _Out_ PULONG StartingRunIndex);
683
684_Success_(return != -1)
687ULONG
688NTAPI
690 _In_ PRTL_BITMAP BitMapHeader,
693
694_Success_(return != -1)
696ULONG
697NTAPI
699 _In_ PRTL_BITMAP BitMapHeader,
702
705VOID
706NTAPI
710
711_At_(BitMapHeader->SizeOfBitMap, _Post_equal_to_(SizeOfBitMap))
712_At_(BitMapHeader->Buffer, _Post_equal_to_(BitMapBuffer))
714VOID
715NTAPI
717 _Out_ PRTL_BITMAP BitMapHeader,
718 _In_opt_ __drv_aliasesMem PULONG BitMapBuffer,
719 _In_opt_ ULONG SizeOfBitMap);
720
723VOID
724NTAPI
728
733NTAPI
738
743NTAPI
748
749#ifdef _WIN64
750#define RtlIntPtrToUnicodeString(Value, Base, String) \
751 RtlInt64ToUnicodeString(Value, Base, String)
752#else
753#define RtlIntPtrToUnicodeString(Value, Base, String) \
754 RtlIntegerToUnicodeString(Value, Base, String)
755#endif
756
757/* BOOLEAN
758 * RtlIsZeroLuid(
759 * IN PLUID L1);
760 */
761#define RtlIsZeroLuid(_L1) \
762 ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
763
766ULONG
767NTAPI
770
772ULONG
773NTAPI
775 _In_ PRTL_BITMAP BitMapHeader);
776
778ULONG
779NTAPI
781 _In_ PRTL_BITMAP BitMapHeader);
782
786NTAPI
788 _In_ ULONG RelativeTo,
790 _Inout_ _At_(*(*QueryTable).EntryContext, _Pre_unknown_)
794
795#define SHORT_SIZE (sizeof(USHORT))
796#define SHORT_MASK (SHORT_SIZE - 1)
797#define LONG_SIZE (sizeof(LONG))
798#define LONGLONG_SIZE (sizeof(LONGLONG))
799#define LONG_MASK (LONG_SIZE - 1)
800#define LONGLONG_MASK (LONGLONG_SIZE - 1)
801#define LOWBYTE_MASK 0x00FF
802
803#define FIRSTBYTE(VALUE) ((VALUE) & LOWBYTE_MASK)
804#define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK)
805#define THIRDBYTE(VALUE) (((VALUE) >> 16) & LOWBYTE_MASK)
806#define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK)
807
809VOID
810NTAPI
812 _In_ PRTL_BITMAP BitMapHeader);
813
815VOID
816NTAPI
818 _In_ PRTL_BITMAP BitMapHeader,
819 _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToSet) ULONG StartingIndex,
820 _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToSet);
821
825NTAPI
831
832//
833// These functions are really bad and shouldn't be used.
834// They have no type checking and can easily overwrite the target
835// variable or only set half of it.
836// Use Read/WriteUnalignedU16/U32/U64 from reactos/unaligned.h instead.
837//
838#if defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86)
839
840/* VOID
841 * RtlStoreUlong(
842 * IN PULONG Address,
843 * IN ULONG Value);
844 */
845#define RtlStoreUlong(Address,Value) \
846 *(ULONG UNALIGNED *)(Address) = (Value)
847
848/* VOID
849 * RtlStoreUlonglong(
850 * IN OUT PULONGLONG Address,
851 * ULONGLONG Value);
852 */
853#define RtlStoreUlonglong(Address,Value) \
854 *(ULONGLONG UNALIGNED *)(Address) = (Value)
855
856/* VOID
857 * RtlStoreUshort(
858 * IN PUSHORT Address,
859 * IN USHORT Value);
860 */
861#define RtlStoreUshort(Address,Value) \
862 *(USHORT UNALIGNED *)(Address) = (Value)
863
864/* VOID
865 * RtlRetrieveUshort(
866 * PUSHORT DestinationAddress,
867 * PUSHORT SourceAddress);
868 */
869#define RtlRetrieveUshort(DestAddress,SrcAddress) \
870 *(USHORT*)(DestAddress) = *(USHORT UNALIGNED *)(SrcAddress)
871
872/* VOID
873 * RtlRetrieveUlong(
874 * PULONG DestinationAddress,
875 * PULONG SourceAddress);
876 */
877#define RtlRetrieveUlong(DestAddress,SrcAddress) \
878 *(ULONG*)(DestAddress) = *(ULONG UNALIGNED *)(SrcAddress)
879
880#else
881
882#define RtlStoreUlong(Address,Value) \
883 if ((ULONG_PTR)(Address) & LONG_MASK) { \
884 ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
885 ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
886 ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
887 ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT] = (UCHAR)(FOURTHBYTE(Value)); \
888 } \
889 else { \
890 *((PULONG)(Address)) = (ULONG) (Value); \
891 }
892
893#define RtlStoreUlonglong(Address,Value) \
894 if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
895 RtlStoreUlong((ULONG_PTR)(Address), \
896 (ULONGLONG)(Value) & 0xFFFFFFFF); \
897 RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
898 (ULONGLONG)(Value) >> 32); \
899 } else { \
900 *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
901 }
902
903#define RtlStoreUshort(Address,Value) \
904 if ((ULONG_PTR)(Address) & SHORT_MASK) { \
905 ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
906 ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
907 } \
908 else { \
909 *((PUSHORT) (Address)) = (USHORT)Value; \
910 }
911
912#define RtlRetrieveUshort(DestAddress,SrcAddress) \
913 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
914 { \
915 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
916 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
917 } \
918 else \
919 { \
920 *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
921 }
922
923#define RtlRetrieveUlong(DestAddress,SrcAddress) \
924 if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
925 { \
926 ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
927 ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
928 ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
929 ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
930 } \
931 else \
932 { \
933 *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
934 }
935
936#endif /* defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86) */
937
938#ifdef _WIN64
939/* VOID
940 * RtlStoreUlongPtr(
941 * IN OUT PULONG_PTR Address,
942 * IN ULONG_PTR Value);
943 */
944#define RtlStoreUlongPtr(Address,Value) RtlStoreUlonglong(Address,Value)
945#else
946#define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
947#endif /* _WIN64 */
948
949_Success_(return != FALSE)
952NTAPI
956
958VOID
959NTAPI
963
965USHORT
969
971ULONG
975
981
984 _Out_range_(<=, (SourceString->MaximumLength / sizeof(WCHAR)))))
992NTAPI
999
1004NTAPI
1011
1014ULONG
1015NTAPI
1018
1019#define RtlUnicodeStringToAnsiSize(String) ( \
1020 NLS_MB_CODE_PAGE_TAG ? \
1021 RtlxUnicodeStringToAnsiSize(String) : \
1022 ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
1023)
1024
1028NTAPI
1033
1036WCHAR
1037NTAPI
1039 _In_ WCHAR SourceCharacter);
1040
1044BOOLEAN
1045NTAPI
1050
1054BOOLEAN
1055NTAPI
1058
1062NTAPI
1064 _Out_
1065 _At_(lpVersionInformation->dwOSVersionInfoSize, _Pre_ _Valid_)
1066 _When_(lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOEXW),
1067 _At_((PRTL_OSVERSIONINFOEXW)lpVersionInformation, _Out_))
1068 PRTL_OSVERSIONINFOW lpVersionInformation);
1069
1074NTAPI
1079
1083NTAPI
1085 _In_ ULONG RelativeTo,
1091
1093$if (_NTDDK_)
1094
1095#ifndef RTL_USE_AVL_TABLES
1096
1098VOID
1099NTAPI
1106
1108PVOID
1109NTAPI
1114 _Out_opt_ PBOOLEAN NewElement);
1115
1117PVOID
1118NTAPI
1123 _Out_opt_ PBOOLEAN NewElement,
1124 _In_ PVOID NodeOrParent,
1125 _In_ TABLE_SEARCH_RESULT SearchResult);
1126
1128BOOLEAN
1129NTAPI
1132 _In_ PVOID Buffer);
1133
1136PVOID
1137NTAPI
1140 _In_ PVOID Buffer);
1141
1143PVOID
1144NTAPI
1148 _Out_ PVOID *NodeOrParent,
1149 _Out_ TABLE_SEARCH_RESULT *SearchResult);
1150
1153PVOID
1154NTAPI
1158
1161PVOID
1162NTAPI
1165 _Inout_ PVOID *RestartKey);
1166
1169PVOID
1170NTAPI
1173 _In_ ULONG I);
1174
1176ULONG
1177NTAPI
1180
1183BOOLEAN
1184NTAPI
1187
1188#endif /* !RTL_USE_AVL_TABLES */
1189
1190#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT 8
1191
1194NTAPI
1197
1200NTAPI
1202 _In_ PRTL_SPLAY_LINKS Links);
1203
1205VOID
1206NTAPI
1208 _In_ PRTL_SPLAY_LINKS Links,
1210
1214NTAPI
1216 _In_ PRTL_SPLAY_LINKS Links);
1217
1221NTAPI
1223 _In_ PRTL_SPLAY_LINKS Links);
1224
1228NTAPI
1230 _In_ PRTL_SPLAY_LINKS Links);
1231
1235NTAPI
1237 _In_ PRTL_SPLAY_LINKS Links);
1238
1242BOOLEAN
1243NTAPI
1245 _In_ PCUNICODE_STRING String1,
1248
1251VOID
1252NTAPI
1255 _In_ const STRING *SourceString);
1256
1261NTAPI
1268
1271VOID
1272NTAPI
1276
1280NTAPI
1281RtlVolumeDeviceToDosName(
1282 _In_ PVOID VolumeDeviceObject,
1284
1288LONG
1289NTAPI
1291 _In_ const STRING *String1,
1292 _In_ const STRING *String2,
1294
1296VOID
1297NTAPI
1301
1305BOOLEAN
1306NTAPI
1308 _In_ const STRING *String1,
1309 _In_ const STRING *String2,
1311
1315NTAPI
1320
1323CHAR
1324NTAPI
1326 _In_ CHAR Character);
1327
1329ULONG
1330NTAPI
1333 PVOID *Callers,
1335 _In_ ULONG Flags);
1336
1338$if (_NTIFS_)
1339
1344PVOID
1345NTAPI
1347 _In_ HANDLE HeapHandle,
1350
1351_Success_(return != 0)
1353BOOLEAN
1354NTAPI
1356 _In_ PVOID HeapHandle,
1359
1361VOID
1362NTAPI
1365
1368ULONG
1369NTAPI
1370RtlRandom(
1371 _Inout_ PULONG Seed);
1372
1374_Success_(return != 0)
1377BOOLEAN
1378NTAPI
1383
1387BOOLEAN
1388NTAPI
1390 _In_ const STRING *String1,
1393
1397NTAPI
1401
1406NTAPI
1413
1418NTAPI
1425
1430NTAPI
1437
1442NTAPI
1449
1454NTAPI
1455RtlUnicodeStringToCountedOemString(
1461
1466NTAPI
1473
1478NTAPI
1482 PUNICODE_STRING UniDest,
1483 _In_ PCUNICODE_STRING UniSource,
1485
1488VOID
1489NTAPI
1492
1495ULONG
1496NTAPI
1499
1502ULONG
1503NTAPI
1506
1510NTAPI
1517
1521NTAPI
1526
1530NTAPI
1535
1539NTAPI
1546
1550NTAPI
1557
1561NTAPI
1568
1572NTAPI
1579
1583NTAPI
1590
1591#if (NTDDI_VERSION >= NTDDI_VISTASP1)
1595NTAPI
1601#else
1604VOID
1605NTAPI
1611#endif
1612
1616BOOLEAN
1617NTAPI
1622
1626BOOLEAN
1627NTAPI
1629 _Inout_ PWCHAR Char);
1630
1633VOID
1634NTAPI
1636 _Out_ PPREFIX_TABLE PrefixTable);
1637
1640BOOLEAN
1641NTAPI
1643 _In_ PPREFIX_TABLE PrefixTable,
1646
1649VOID
1650NTAPI
1652 _In_ PPREFIX_TABLE PrefixTable,
1654
1659NTAPI
1661 _In_ PPREFIX_TABLE PrefixTable,
1663
1666VOID
1667NTAPI
1669 _Out_ PUNICODE_PREFIX_TABLE PrefixTable);
1670
1673BOOLEAN
1674NTAPI
1676 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1679
1682VOID
1683NTAPI
1685 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1687
1692NTAPI
1694 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1697
1702NTAPI
1704 _In_ PUNICODE_PREFIX_TABLE PrefixTable,
1706
1709SIZE_T
1710NTAPI
1714 _In_ ULONG Pattern);
1715
1716_Success_(return != 0)
1718BOOLEAN
1719NTAPI
1723
1725VOID
1726NTAPI
1730
1731_Success_(return != 0)
1733BOOLEAN
1734NTAPI
1738
1740VOID
1741NTAPI
1745
1749BOOLEAN
1750NTAPI
1752 _In_ PSID Sid);
1753
1756BOOLEAN
1757NTAPI
1759 _In_ PSID Sid1,
1760 _In_ PSID Sid2);
1761
1765BOOLEAN
1766NTAPI
1768 _In_ PSID Sid1,
1770
1773ULONG
1774NTAPI
1777
1779PVOID
1780NTAPI
1783
1787NTAPI
1791 _In_ ULONG SubAuthority0,
1792 _In_ ULONG SubAuthority1,
1793 _In_ ULONG SubAuthority2,
1794 _In_ ULONG SubAuthority3,
1795 _In_ ULONG SubAuthority4,
1796 _In_ ULONG SubAuthority5,
1797 _In_ ULONG SubAuthority6,
1798 _In_ ULONG SubAuthority7,
1799 _Outptr_ PSID *Sid);
1800
1804NTAPI
1806 _Out_ PSID Sid,
1809
1811PULONG
1812NTAPI
1814 _In_ PSID Sid,
1815 _In_ ULONG SubAuthority);
1816
1819ULONG
1820NTAPI
1822 _In_ PSID Sid);
1823
1827NTAPI
1829 _In_ ULONG DestinationSidLength,
1830 _Out_writes_bytes_(DestinationSidLength) PSID DestinationSid,
1832
1836NTAPI
1841
1844VOID
1845NTAPI
1847 _Out_ PLUID DestinationLuid,
1849
1853NTAPI
1858
1862NTAPI
1863RtlAddAce(
1864 _Inout_ PACL Acl,
1869
1873NTAPI
1875 _Inout_ PACL Acl,
1877
1880NTAPI
1882 _In_ PACL Acl,
1884 _Outptr_ PVOID *Ace);
1885
1889NTAPI
1891 _Inout_ PACL Acl,
1894 _In_ PSID Sid);
1895
1899NTAPI
1901 _Inout_ PACL Acl,
1905 _In_ PSID Sid);
1906
1910NTAPI
1914
1917NTAPI
1921 _Out_ PACL *Dacl,
1923
1927NTAPI
1932
1936NTAPI
1939 _Out_ PSID *Owner,
1941
1944_When_(Status >= 0, _Out_range_(==, 0))
1946ULONG
1947NTAPI
1950
1954NTAPI
1956 _In_ PCPTABLEINFO CustomCP,
1962
1966NTAPI
1968 _In_ PCPTABLEINFO CustomCP,
1974
1978NTAPI
1980 _In_ PCPTABLEINFO CustomCP,
1986
1989VOID
1990NTAPI
1992 _In_ PUSHORT TableBase,
1994
1996
1997#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
1998
1999$if (_WDMDDK_)
2000
2001#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
2003VOID
2008#endif
2009
2011
2012#if (NTDDI_VERSION >= NTDDI_WINXP)
2013
2014$if (_WDMDDK_)
2015
2017VOID
2018NTAPI
2020 _In_ PRTL_BITMAP BitMapHeader,
2021 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2022
2025WCHAR
2026NTAPI
2028 _In_ WCHAR SourceCharacter);
2029
2031VOID
2032NTAPI
2033RtlSetBit(
2034 _In_ PRTL_BITMAP BitMapHeader,
2035 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2036
2039BOOLEAN
2040NTAPI
2042 _In_ PRTL_BITMAP BitMapHeader,
2043 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber);
2044
2048NTAPI
2054
2056
2057$if (_NTDDK_)
2058
2060VOID
2061NTAPI
2068
2070PVOID
2071NTAPI
2076 _Out_opt_ PBOOLEAN NewElement);
2077
2079PVOID
2080NTAPI
2085 _Out_opt_ PBOOLEAN NewElement,
2086 _In_ PVOID NodeOrParent,
2087 _In_ TABLE_SEARCH_RESULT SearchResult);
2088
2090BOOLEAN
2091NTAPI
2094 _In_ PVOID Buffer);
2095
2098PVOID
2099NTAPI
2102 _In_ PVOID Buffer);
2103
2105PVOID
2106NTAPI
2110 _Out_ PVOID *NodeOrParent,
2111 _Out_ TABLE_SEARCH_RESULT *SearchResult);
2112
2115PVOID
2116NTAPI
2120
2123PVOID
2124NTAPI
2127 _Inout_ PVOID *RestartKey);
2128
2131PVOID
2132NTAPI
2136 _Out_ PVOID *RestartKey);
2137
2140PVOID
2141NTAPI
2144 _In_opt_ PRTL_AVL_MATCH_FUNCTION MatchFunction,
2146 _In_ ULONG NextFlag,
2147 _Inout_ PVOID *RestartKey,
2148 _Inout_ PULONG DeleteCount,
2149 _In_ PVOID Buffer);
2150
2153PVOID
2154NTAPI
2157 _In_ ULONG I);
2158
2160ULONG
2161NTAPI
2164
2167BOOLEAN
2168NTAPI
2171
2173$if (_NTIFS_)
2174
2177PVOID
2178NTAPI
2186
2188PVOID
2189NTAPI
2191 _In_ _Post_invalid_ PVOID HeapHandle);
2192
2194USHORT
2195NTAPI
2197 _In_ ULONG FramesToSkip,
2199 _Out_writes_to_(FramesToCapture, return) PVOID *BackTrace,
2201
2204ULONG
2205NTAPI
2207 _Inout_ PULONG Seed);
2208
2212NTAPI
2216
2220NTAPI
2224
2229NTAPI
2234
2237NTAPI
2239 _In_ USHORT CompressionFormatAndEngine,
2240 _Out_ PULONG CompressBufferWorkSpaceSize,
2241 _Out_ PULONG CompressFragmentWorkSpaceSize);
2242
2245NTAPI
2247 _In_ USHORT CompressionFormatAndEngine,
2252 _In_ ULONG UncompressedChunkSize,
2253 _Out_ PULONG FinalCompressedSize,
2255
2259NTAPI
2261 _In_ USHORT CompressionFormat,
2267
2271NTAPI
2273 _In_ USHORT CompressionFormat,
2281
2285NTAPI
2287 _In_ USHORT CompressionFormat,
2292
2296NTAPI
2298 _In_ USHORT CompressionFormat,
2303
2307NTAPI
2316
2320NTAPI
2329
2333NTAPI
2335 _In_ PSID Sid);
2336
2338PUCHAR
2339NTAPI
2341 _In_ PSID Sid);
2342
2344_When_(Status >= 0, _Out_range_(==, 0))
2346ULONG
2347NTAPI
2350
2354NTAPI
2356 _In_ PCUNICODE_STRING VolumeRootPath);
2357
2358#if defined(_M_AMD64)
2359
2361VOID
2365 _In_ ULONG Pattern)
2366{
2368 if ((Length /= 4) != 0) {
2369 if (((ULONG64)Address & 4) != 0) {
2370 *Address = Pattern;
2371 if ((Length -= 1) == 0) {
2372 return;
2373 }
2374 Address += 1;
2375 }
2376 __stosq((PULONG64)(Address), Pattern | ((ULONG64)Pattern << 32), Length / 2);
2377 if ((Length & 1) != 0) Address[Length - 1] = Pattern;
2378 }
2379 return;
2380}
2381
2382#define RtlFillMemoryUlonglong(Destination, Length, Pattern) \
2383 __stosq((PULONG64)(Destination), Pattern, (Length) / 8)
2384
2385#else
2386
2388VOID
2389NTAPI
2393 _In_ ULONG Pattern);
2394
2396VOID
2397NTAPI
2401 _In_ ULONGLONG Pattern);
2402
2403#endif /* defined(_M_AMD64) */
2405
2406#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
2407
2408$if (_NTIFS_)
2409#if (NTDDI_VERSION >= NTDDI_WS03)
2413NTAPI
2417#endif
2418
2419#if (NTDDI_VERSION >= NTDDI_WS03SP1)
2420
2424NTAPI
2430
2434NTAPI
2439
2443NTAPI
2446 _Out_ PSID *Group,
2448
2452NTAPI
2457
2461NTAPI
2474
2475#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
2477
2478#if (NTDDI_VERSION >= NTDDI_VISTA)
2479
2480$if (_WDMDDK_)
2482ULONG
2483NTAPI
2484RtlNumberOfSetBitsUlongPtr(
2486
2489NTAPI
2493 _Out_opt_ PULONGLONG MinimumAddress,
2494 _Out_opt_ PULONGLONG MaximumAddress);
2495
2498NTAPI
2501 _In_ UCHAR Type,
2504 _In_ ULONGLONG MinimumAddress,
2505 _In_ ULONGLONG MaximumAddress);
2506
2509NTAPI
2513
2516NTAPI
2518 _In_ ULONGLONG SourceLength,
2519 _Out_ PULONGLONG TargetLength);
2520
2523NTAPI
2526 _In_ UCHAR Type,
2529
2531$if (_NTDDK_)
2532
2535VOID
2536NTAPI
2538 _Out_ PRTL_RUN_ONCE RunOnce);
2539
2544NTAPI
2546 _Inout_ PRTL_RUN_ONCE RunOnce,
2550
2555NTAPI
2557 _Inout_ PRTL_RUN_ONCE RunOnce,
2560
2564NTAPI
2566 _Inout_ PRTL_RUN_ONCE RunOnce,
2569
2571BOOLEAN
2572NTAPI
2574 _In_ ULONG OSMajorVersion,
2575 _In_ ULONG OSMinorVersion,
2576 _In_ ULONG SpMajorVersion,
2577 _In_ ULONG SpMinorVersion,
2578 _Out_ PULONG ReturnedProductType);
2579
2581$if (_NTIFS_)
2584NTAPI
2585RtlNormalizeString(
2586 _In_ ULONG NormForm,
2591
2594NTAPI
2596 _In_ ULONG NormForm,
2599 _Out_ PBOOLEAN Normalized);
2600
2603NTAPI
2610
2613NTAPI
2615 IN ULONG Flags,
2620
2623NTAPI
2630
2633NTAPI
2636 _Out_writes_bytes_opt_(*ServiceSidLength) PSID ServiceSid,
2637 _Inout_ PULONG ServiceSidLength);
2638
2640LONG
2641NTAPI
2643 _In_ PCUNICODE_STRING Altitude1,
2644 _In_ PCUNICODE_STRING Altitude2);
2645
2647
2648#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
2649
2650#if (NTDDI_VERSION >= NTDDI_WIN7)
2651
2652$if (_WDMDDK_)
2657NTAPI
2665
2670NTAPI
2678
2680ULONG64
2681NTAPI
2683 IN ULONG64 FeatureMask);
2684
2686$if (_NTDDK_)
2687
2690BOOLEAN
2691NTAPI
2692RtlCreateHashTable(
2697
2699VOID
2700NTAPI
2704
2706BOOLEAN
2707NTAPI
2713
2715BOOLEAN
2716NTAPI
2721
2725NTAPI
2730
2734NTAPI
2738
2740BOOLEAN
2741NTAPI
2745
2749NTAPI
2753
2755VOID
2756NTAPI
2760
2762BOOLEAN
2763NTAPI
2767
2771NTAPI
2775
2777VOID
2778NTAPI
2782
2784BOOLEAN
2785NTAPI
2788
2790BOOLEAN
2791NTAPI
2794
2796$if (_NTIFS_)
2801NTAPI
2806 _In_reads_bytes_(UnicodeStringByteCount) PCWCH UnicodeStringSource,
2808
2813NTAPI
2818 _In_reads_bytes_(UTF8StringByteCount) PCCH UTF8StringSource,
2820
2824NTAPI
2825RtlReplaceSidInSd(
2830
2833NTAPI
2836 _In_ ULONG BaseSubAuthority,
2837 _Out_writes_bytes_(*SidLength) PSID Sid,
2838 _Inout_ PULONG SidLength);
2840
2841#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
2842
2843$if (_WDMDDK_)
2844
2845#if !defined(MIDL_PASS)
2846/* inline funftions */
2847//DECLSPEC_DEPRECATED_DDK_WINXP
2848static __inline
2852 _In_ LONG SignedInteger)
2853{
2855 ret.QuadPart = SignedInteger;
2856 return ret;
2857}
2858
2859//DECLSPEC_DEPRECATED_DDK_WINXP
2860static __inline
2864 _In_ ULONG UnsignedInteger)
2865{
2867 ret.QuadPart = UnsignedInteger;
2868 return ret;
2869}
2870
2871//DECLSPEC_DEPRECATED_DDK_WINXP
2872static __inline
2876 _In_ LARGE_INTEGER LargeInteger,
2877 _In_ CCHAR ShiftCount)
2878{
2880
2881 Result.QuadPart = LargeInteger.QuadPart << ShiftCount;
2882 return Result;
2883}
2884
2885//DECLSPEC_DEPRECATED_DDK_WINXP
2886static __inline
2890 _In_ LARGE_INTEGER LargeInteger,
2891 _In_ CCHAR ShiftCount)
2892{
2894
2895 Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount;
2896 return Result;
2897}
2898
2899//DECLSPEC_DEPRECATED_DDK
2900static __inline
2901ULONG
2904 _In_ ULARGE_INTEGER Dividend,
2907{
2908 if (Remainder)
2909 *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
2910 return (ULONG)(Dividend.QuadPart / Divisor);
2911}
2912
2913//DECLSPEC_DEPRECATED_DDK
2914static __inline
2918 _In_ LARGE_INTEGER Subtrahend)
2919{
2920 LARGE_INTEGER Difference;
2921
2922 Difference.QuadPart = -Subtrahend.QuadPart;
2923 return Difference;
2924}
2925
2926//DECLSPEC_DEPRECATED_DDK
2927static __inline
2931 _In_ LARGE_INTEGER Minuend,
2932 _In_ LARGE_INTEGER Subtrahend)
2933{
2934 LARGE_INTEGER Difference;
2935
2936 Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
2937 return Difference;
2938}
2939
2940//DECLSPEC_DEPRECATED_DDK
2941static __inline
2945 _In_ ULONG Multiplicand,
2946 _In_ ULONG Multiplier)
2947{
2949 ret.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
2950 return ret;
2951}
2952
2953//DECLSPEC_DEPRECATED_DDK
2954static __inline
2958 _In_ LONG Multiplicand,
2959 _In_ LONG Multiplier)
2960{
2962 ret.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
2963 return ret;
2964}
2965
2967_At_(AnsiString->Length, _Post_equal_to_(0))
2970VOID
2971RtlInitEmptyAnsiString(
2975{
2976 AnsiString->Length = 0;
2977 AnsiString->MaximumLength = BufferSize;
2978 AnsiString->Buffer = Buffer;
2979}
2980
2985VOID
2986RtlInitEmptyUnicodeString(
2992{
2993 UnicodeString->Length = 0;
2994 UnicodeString->MaximumLength = BufferSize;
2995 UnicodeString->Buffer = Buffer;
2996}
2998
2999#if defined(_AMD64_) || defined(_IA64_)
3000
3001$if (_WDMDDK_)
3002
3003static __inline
3007 _In_ LARGE_INTEGER Multiplicand,
3008 _In_ LONG Multiplier)
3009{
3011 ret.QuadPart = Multiplicand.QuadPart * Multiplier;
3012 return ret;
3013}
3014
3015static __inline
3019 _In_ LARGE_INTEGER Dividend,
3022{
3024 ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
3025 if (Remainder)
3026 *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
3027 return ret;
3028}
3029
3031
3032$if (_NTDDK_)
3033
3034//DECLSPEC_DEPRECATED_DDK_WINXP
3039 _In_ LARGE_INTEGER Dividend,
3042{
3044 ret.QuadPart = Dividend.QuadPart / Divisor.QuadPart;
3045 if (Remainder)
3046 Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart;
3047 return ret;
3048}
3049
3050#else
3051
3052#if (NTDDI_VERSION >= NTDDI_WIN2K)
3055NTAPI
3057 _In_ LARGE_INTEGER Dividend,
3060#endif
3061
3063
3064#endif /* defined(_AMD64_) || defined(_IA64_) */
3065
3066$if (_WDMDDK_)
3067
3068#if defined(_AMD64_)
3069
3070#define MultiplyHigh __mulh
3071#define UnsignedMultiplyHigh __umulh
3072
3073//DECLSPEC_DEPRECATED_DDK
3074static __inline
3078 _In_ LARGE_INTEGER Dividend,
3079 _In_ LARGE_INTEGER MagicDivisor,
3080 _In_ CCHAR ShiftCount)
3081{
3083 ULONG64 ret64;
3084 BOOLEAN Pos;
3085 Pos = (Dividend.QuadPart >= 0);
3086 ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart,
3087 MagicDivisor.QuadPart);
3088 ret64 >>= ShiftCount;
3089 ret.QuadPart = Pos ? ret64 : -(LONG64)ret64;
3090 return ret;
3091}
3092#endif
3093
3094//DECLSPEC_DEPRECATED_DDK
3095static __inline
3099 _In_ LARGE_INTEGER Addend1,
3101{
3103 ret.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
3104 return ret;
3105}
3106
3107/* VOID
3108 * RtlLargeIntegerAnd(
3109 * IN OUT LARGE_INTEGER Result,
3110 * IN LARGE_INTEGER Source,
3111 * IN LARGE_INTEGER Mask);
3112 */
3113#define RtlLargeIntegerAnd(Result, Source, Mask) \
3114 Result.QuadPart = Source.QuadPart & Mask.QuadPart
3115
3116//DECLSPEC_DEPRECATED_DDK
3117static __inline
3121 _In_ LARGE_INTEGER LargeInteger,
3122 _In_ CCHAR ShiftCount)
3123{
3125 ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
3126 return ret;
3127}
3128
3129/* BOOLEAN
3130 * RtlLargeIntegerEqualTo(
3131 * IN LARGE_INTEGER Operand1,
3132 * IN LARGE_INTEGER Operand2);
3133 */
3134#define RtlLargeIntegerEqualTo(X,Y) \
3135 (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
3136
3138PVOID
3142{
3143 volatile char* vptr = (volatile char*)Pointer;
3144#if defined(_M_AMD64)
3145 __stosb((PUCHAR)vptr, 0, Size);
3146#else
3147 char * endptr = (char *)vptr + Size;
3148 while (vptr < endptr) {
3149 *vptr = 0; vptr++;
3150 }
3151#endif
3152 return Pointer;
3153}
3154
3155#if defined(_M_AMD64)
3158BOOLEAN
3160 _In_ PRTL_BITMAP BitMapHeader,
3161 _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitPosition)
3162{
3163 return BitTest64((LONG64 CONST*)BitMapHeader->Buffer, (LONG64)BitPosition);
3164}
3165#else
3166#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
3167#endif /* defined(_M_AMD64) */
3168
3169#define RtlLargeIntegerGreaterThan(X,Y) ( \
3170 (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
3171 ((X).HighPart > (Y).HighPart) \
3172)
3173
3174#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) ( \
3175 (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
3176 ((X).HighPart > (Y).HighPart) \
3177)
3178
3179#define RtlLargeIntegerNotEqualTo(X,Y) ( \
3180 (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
3181)
3182
3183#define RtlLargeIntegerLessThan(X,Y) ( \
3184 (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
3185 ((X).HighPart < (Y).HighPart) \
3186)
3187
3188#define RtlLargeIntegerLessThanOrEqualTo(X,Y) ( \
3189 (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
3190 ((X).HighPart < (Y).HighPart) \
3191)
3192
3193#define RtlLargeIntegerGreaterThanZero(X) ( \
3194 (((X).HighPart == 0) && ((X).LowPart > 0)) || \
3195 ((X).HighPart > 0 ) \
3196)
3197
3198#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
3199
3200#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
3201
3202#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
3203
3204#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
3205
3206#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
3207
3208#endif /* !defined(MIDL_PASS) */
3209
3210/* Byte Swap Functions */
3211#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
3212#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
3213#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
3214
3215#if defined(_MSC_VER) && !defined(__clang__)
3216# define __assert_annotationA(msg) __annotation(L"Debug", L"AssertFail", L ## msg)
3217# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
3218#else
3219# define __assert_annotationA(msg) \
3220 DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)
3221# define __assert_annotationW(msg) \
3222 DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)
3223#endif
3224
3225#ifdef _PREFAST_
3226# define NT_ANALYSIS_ASSUME(_exp) _Analysis_assume_(_exp)
3227#elif DBG
3228# define NT_ANALYSIS_ASSUME(_exp) ((void)0)
3229#else
3230# define NT_ANALYSIS_ASSUME(_exp) __noop(_exp)
3231#endif
3232
3233#define NT_ASSERT_ACTION(exp) \
3234 (NT_ANALYSIS_ASSUME(exp), \
3235 ((!(exp)) ? \
3236 (__assert_annotationA(#exp), \
3237 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3238
3239#define NT_ASSERTMSG_ACTION(msg, exp) \
3240 (NT_ANALYSIS_ASSUME(exp), \
3241 ((!(exp)) ? \
3242 (__assert_annotationA(msg), \
3243 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3244
3245#define NT_ASSERTMSGW_ACTION(msg, exp) \
3246 (NT_ANALYSIS_ASSUME(exp), \
3247 ((!(exp)) ? \
3248 (__assert_annotationW(msg), \
3249 DbgRaiseAssertionFailure(), FALSE) : TRUE))
3250
3251#if DBG
3252
3253#define RTL_VERIFY(exp) \
3254 ((!(exp)) ? \
3255 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
3256
3257#define RTL_VERIFYMSG(msg, exp) \
3258 ((!(exp)) ? \
3259 RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
3260
3261#define RTL_SOFT_VERIFY(exp) \
3262 ((!(exp)) ? \
3263 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
3264
3265#define RTL_SOFT_VERIFYMSG(msg, exp) \
3266 ((!(exp)) ? \
3267 DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
3268
3269/* The ASSERTs must be cast to void to avoid warnings about unused results. */
3270#define ASSERT (void)RTL_VERIFY
3271#define ASSERTMSG (void)RTL_VERIFYMSG
3272#define RTL_SOFT_ASSERT (void)RTL_SOFT_VERIFY
3273#define RTL_SOFT_ASSERTMSG (void)RTL_SOFT_VERIFYMSG
3274
3275#define NT_VERIFY NT_ASSERT_ACTION
3276#define NT_VERIFYMSG NT_ASSERTMSG_ACTION
3277#define NT_VERIFYMSGW NT_ASSERTMSGW_ACTION
3278
3279#define NT_ASSERT_ASSUME (void)NT_ASSERT_ACTION
3280#define NT_ASSERTMSG_ASSUME (void)NT_ASSERTMSG_ACTION
3281#define NT_ASSERTMSGW_ASSUME (void)NT_ASSERTMSGW_ACTION
3282
3283#define NT_ASSERT_NOASSUME (void)NT_ASSERT_ACTION
3284#define NT_ASSERTMSG_NOASSUME (void)NT_ASSERTMSG_ACTION
3285#define NT_ASSERTMSGW_NOASSUME (void)NT_ASSERTMSGW_ACTION
3286
3287#else /* !DBG */
3288
3289#define ASSERT(exp) ((void)0)
3290#define ASSERTMSG(msg, exp) ((void)0)
3291
3292#define RTL_SOFT_ASSERT(exp) ((void)0)
3293#define RTL_SOFT_ASSERTMSG(msg, exp) ((void)0)
3294
3295#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
3296#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3297
3298#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
3299#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
3300
3301#define NT_VERIFY(exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3302#define NT_VERIFYMSG(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3303#define NT_VERIFYMSGW(msg, exp) (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
3304
3305#define NT_ASSERT_ASSUME(exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3306#define NT_ASSERTMSG_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3307#define NT_ASSERTMSGW_ASSUME(msg, exp) (NT_ANALYSIS_ASSUME(exp), (void)0)
3308
3309#define NT_ASSERT_NOASSUME(exp) ((void)0)
3310#define NT_ASSERTMSG_NOASSUME(msg, exp) ((void)0)
3311#define NT_ASSERTMSGW_NOASSUME(msg, exp) ((void)0)
3312
3313#endif /* DBG */
3314
3315#define NT_FRE_ASSERT (void)NT_ASSERT_ACTION
3316#define NT_FRE_ASSERTMSG (void)NT_ASSERTMSG_ACTION
3317#define NT_FRE_ASSERTMSGW (void)NT_ASSERTMSGW_ACTION
3318
3319#ifdef NT_ASSERT_ALWAYS_ASSUMES
3320# define NT_ASSERT NT_ASSERT_ASSUME
3321# define NT_ASSERTMSG NT_ASSERTMSG_ASSUME
3322# define NT_ASSERTMSGW NT_ASSERTMSGW_ASSUME
3323#else
3324# define NT_ASSERT NT_ASSERT_NOASSUME
3325# define NT_ASSERTMSG NT_ASSERTMSG_NOASSUME
3326# define NT_ASSERTMSGW NT_ASSERTMSGW_NOASSUME
3327#endif /* NT_ASSERT_ALWAYS_ASSUMES */
3328
3329#if defined(_MSC_VER) && (defined(__REACTOS__) || defined(ASSERT_ALWAYS_NT_ASSERT)) && !defined(_BLDR_)
3330#undef ASSERT
3331#define ASSERT NT_ASSERT
3332#undef ASSERTMSG
3333#define ASSERTMSG NT_ASSERTMSG
3334#undef ASSERTMSGW
3335#define ASSERTMSGW NT_ASSERTMSGW
3336#undef RTL_VERIFY
3337#define RTL_VERIFY NT_VERIFY
3338#endif
3339
3340#define InitializeListHead32(ListHead) (\
3341 (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
3342
3343#if !defined(_WINBASE_)
3344
3345#if defined(_WIN64) && !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || !defined(_NTOSP_))
3346
3348VOID
3350 _Out_ PSLIST_HEADER SListHead);
3351
3352#else /* defined(_WIN64) && ... */
3353
3354/* HACK */
3358VOID
3359NTAPI
3362
3364VOID
3366 _Out_ PSLIST_HEADER SListHead)
3367{
3368#if defined(_WIN64)
3369 if (((ULONG_PTR)SListHead & 0xf) != 0) {
3371 }
3372#if defined(_IA64_)
3373 SListHead->Region = (ULONG_PTR)SListHead & VRN_MASK;
3374#else
3375 SListHead->Region = 0;
3376#endif /* _IA64_ */
3377#endif /* _WIN64 */
3378 SListHead->Alignment = 0;
3379}
3380
3381#endif /* defined(_WIN64) && ... */
3382
3383#ifdef _X86_
3384
3389 _Inout_ PSLIST_HEADER SListHead,
3391
3396 _Inout_ PSLIST_HEADER SListHead);
3397
3398#define InterlockedFlushSList(SListHead) \
3399 ExInterlockedFlushSList(SListHead)
3400
3401#else /* !_X86_ */
3402
3403#define InterlockedPushEntrySList(SListHead, SListEntry) \
3404 ExpInterlockedPushEntrySList(SListHead, SListEntry)
3405
3406#define InterlockedPopEntrySList(SListHead) \
3407 ExpInterlockedPopEntrySList(SListHead)
3408
3409#define InterlockedFlushSList(SListHead) \
3410 ExpInterlockedFlushSList(SListHead)
3411
3412#endif /* _X86_ */
3413
3414#define QueryDepthSList(SListHead) \
3415 ExQueryDepthSList(SListHead)
3416
3417#endif /* !defined(_WINBASE_) */
3418
3419#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk) ((ContextEx)->Chunk.Offset)
3420#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk) ((ContextEx)->Chunk.Length)
3421#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk) \
3422 ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
3423#define RTL_CONTEXT_OFFSET(Context, Chunk) \
3424 RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
3425#define RTL_CONTEXT_LENGTH(Context, Chunk) \
3426 RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
3427#define RTL_CONTEXT_CHUNK(Context, Chunk) \
3428 RTL_CONTEXT_EX_CHUNK((PCONTEXT_EX)(Context + 1), \
3429 (PCONTEXT_EX)(Context + 1), \
3430 Chunk)
3431
3432BOOLEAN
3435
3436BOOLEAN
3439
3440#ifndef RtlIsNtDdiVersionAvailable
3441#define RtlIsNtDdiVersionAvailable WdmlibRtlIsNtDdiVersionAvailable
3442#endif
3443
3444#ifndef RtlIsServicePackVersionInstalled
3445#define RtlIsServicePackVersionInstalled WdmlibRtlIsServicePackVersionInstalled
3446#endif
3447
3448#define RtlInterlockedSetBits(Flags, Flag) \
3449 InterlockedOr((PLONG)(Flags), Flag)
3450
3451#define RtlInterlockedAndBits(Flags, Flag) \
3452 InterlockedAnd((PLONG)(Flags), Flag)
3453
3454#define RtlInterlockedClearBits(Flags, Flag) \
3455 RtlInterlockedAndBits(Flags, ~(Flag))
3456
3457#define RtlInterlockedXorBits(Flags, Flag) \
3458 InterlockedXor(Flags, Flag)
3459
3460#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \
3461 (VOID) RtlInterlockedSetBits(Flags, Flag)
3462
3463#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \
3464 (VOID) RtlInterlockedAndBits(Flags, Flag)
3465
3466#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \
3467 RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
3468
3470
3471$if (_NTDDK_)
3472
3473#ifdef RTL_USE_AVL_TABLES
3474
3475#define RtlInitializeGenericTable RtlInitializeGenericTableAvl
3476#define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl
3477#define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl
3478#define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl
3479#define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl
3480#define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl
3481#define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl
3482#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
3483#define RtlGetElementGenericTable RtlGetElementGenericTableAvl
3484#define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl
3485#define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl
3486
3487#endif /* RTL_USE_AVL_TABLES */
3488
3489#define RtlInitializeSplayLinks(Links) { \
3490 PRTL_SPLAY_LINKS _SplayLinks; \
3491 _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
3492 _SplayLinks->Parent = _SplayLinks; \
3493 _SplayLinks->LeftChild = NULL; \
3494 _SplayLinks->RightChild = NULL; \
3495}
3496
3497#define RtlIsLeftChild(Links) \
3498 (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3499
3500#define RtlIsRightChild(Links) \
3501 (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3502
3503#define RtlRightChild(Links) \
3504 ((PRTL_SPLAY_LINKS)(Links))->RightChild
3505
3506#define RtlIsRoot(Links) \
3507 (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
3508
3509#define RtlLeftChild(Links) \
3510 ((PRTL_SPLAY_LINKS)(Links))->LeftChild
3511
3512#define RtlParent(Links) \
3513 ((PRTL_SPLAY_LINKS)(Links))->Parent
3514
3515#define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
3516 { \
3517 PRTL_SPLAY_LINKS _SplayParent; \
3518 PRTL_SPLAY_LINKS _SplayChild; \
3519 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3520 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3521 _SplayParent->LeftChild = _SplayChild; \
3522 _SplayChild->Parent = _SplayParent; \
3523 }
3524
3525#define RtlInsertAsRightChild(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->RightChild = _SplayChild; \
3532 _SplayChild->Parent = _SplayParent; \
3533 }
3534
3535#if !defined(MIDL_PASS)
3536
3538LUID
3540RtlConvertLongToLuid(
3541 _In_ LONG Val)
3542{
3543 LUID Luid;
3544 LARGE_INTEGER Temp;
3545
3546 Temp.QuadPart = Val;
3547 Luid.LowPart = Temp.u.LowPart;
3548 Luid.HighPart = Temp.u.HighPart;
3549 return Luid;
3550}
3551
3553LUID
3556 _In_ ULONG Val)
3557{
3558 LUID Luid;
3559
3560 Luid.LowPart = Val;
3561 Luid.HighPart = 0;
3562 return Luid;
3563}
3564
3565#endif /* !defined(MIDL_PASS) */
3566
3567#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
3568#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
3569 *CallersAddress = (PVOID)_ReturnAddress(); \
3570 *CallersCaller = NULL;
3571#else
3572#if (NTDDI_VERSION >= NTDDI_WIN2K)
3574VOID
3575NTAPI
3577 _Out_ PVOID *CallersAddress,
3578 _Out_ PVOID *CallersCaller);
3579#endif
3580#endif
3581
3582#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
3583
3584#if (NTDDI_VERSION >= NTDDI_WIN7)
3585
3587VOID
3588NTAPI
3591{
3592 Context->ChainHead = NULL;
3593 Context->PrevLinkage = NULL;
3594}
3595
3597VOID
3598NTAPI
3602{
3603 Context->ChainHead = Enumerator->ChainHead;
3604 Context->PrevLinkage = Enumerator->HashEntry.Linkage.Blink;
3605}
3606
3608VOID
3609NTAPI
3612{
3614 return;
3615}
3616
3618ULONG
3619NTAPI
3622{
3623 return HashTable->TableSize;
3624}
3625
3627ULONG
3628NTAPI
3631{
3632 return HashTable->NonEmptyBuckets;
3633}
3634
3636ULONG
3637NTAPI
3640{
3641 return HashTable->TableSize - HashTable->NonEmptyBuckets;
3642}
3643
3645ULONG
3646NTAPI
3649{
3650 return HashTable->NumEntries;
3651}
3652
3654ULONG
3655NTAPI
3658{
3659 return HashTable->NumEnumerators;
3660}
3661
3662#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
3663
3664#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
3665
3667$if (_NTIFS_)
3668
3669#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1
3670#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2
3671
3672#define RtlUnicodeStringToOemSize(STRING) (NLS_MB_OEM_CODE_PAGE_TAG ? \
3673 RtlxUnicodeStringToOemSize(STRING) : \
3674 ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
3675)
3676
3677#define RtlOemStringToUnicodeSize(STRING) ( \
3678 NLS_MB_OEM_CODE_PAGE_TAG ? \
3679 RtlxOemStringToUnicodeSize(STRING) : \
3680 ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
3681)
3682
3683#define RtlOemStringToCountedUnicodeSize(STRING) ( \
3684 (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
3685)
3686
3687#define RtlOffsetToPointer(B,O) ((PCHAR)(((PCHAR)(B)) + ((ULONG_PTR)(O))))
3688#define RtlPointerToOffset(B,P) ((ULONG)(((PCHAR)(P)) - ((PCHAR)(B))))
unsigned char BOOLEAN
NTSYSAPI VOID NTAPI RtlGenerate8dot3Name(_In_ PCUNICODE_STRING Name, _In_ BOOLEAN AllowExtendedCharacters, _Inout_ PGENERATE_NAME_CONTEXT Context, _Inout_ PUNICODE_STRING Name8dot3)
static GENERIC_MAPPING GenericMapping
Definition: SeInheritance.c:11
Type
Definition: Type.h:7
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
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:19
NTSYSAPI ULONG NTAPI RtlRandomEx(PULONG Seed)
OSVERSIONINFOW VersionInfo
Definition: wkssvc.c:40
#define NTSYSAPI
Definition: ntoskrnl.h:12
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:590
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:608
#define __drv_aliasesMem
Definition: btrfs_drv.h:203
@ Ace
Definition: card.h:12
return
Definition: dirsup.c:529
Definition: bufpool.h:45
#define UNALIGNED
Definition: crtdefs.h:149
#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
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
Definition: version.c:158
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
#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
return pTarget Start()
_In_ ULONG FramesToCapture
_In_ ULONG _Out_opt_ PULONG BackTraceHash
Status
Definition: gdiplustypes.h:25
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
VOID NTAPI RtlFreeOemString(POEM_STRING OemString)
BOOLEAN NTAPI RtlTimeToSecondsSince1970(PLARGE_INTEGER Time, PULONG ElapsedSeconds)
BOOLEAN NTAPI RtlIsNameLegalDOS8Dot3(_In_ PUNICODE_STRING Name, _Inout_opt_ POEM_STRING OemName, _Inout_opt_ PBOOLEAN NameContainsSpaces)
NTSYSAPI NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS)
NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING *, const UNICODE_STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG, PCWSTR, PCWSTR, ULONG, PVOID, ULONG)
NTSYSAPI NTSTATUS WINAPI RtlVerifyVersionInfo(const RTL_OSVERSIONINFOEXW *, DWORD, DWORDLONG)
NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR)
NTSYSAPI CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG)
Definition: bitmap.c:211
NTSYSAPI NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING, PCSZ)
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
NTSYSAPI UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG, UINT, UINT *)
NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG, LONGLONG, INT)
NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG)
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 ULONGLONG WINAPI RtlLargeIntegerDivide(ULONGLONG, ULONGLONG, ULONGLONG *)
NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *, LPDWORD)
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSYSAPI CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG)
Definition: bitmap.c:235
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG, LONGLONG)
NTSYSAPI NTSTATUS WINAPI RtlDuplicateUnicodeString(int, const UNICODE_STRING *, UNICODE_STRING *)
NTSYSAPI BOOLEAN WINAPI RtlValidRelativeSecurityDescriptor(PSECURITY_DESCRIPTOR, ULONG, SECURITY_INFORMATION)
NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToCountedOemString(STRING *, const UNICODE_STRING *, BOOLEAN)
NTSYSAPI NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR)
NTSYSAPI NTSTATUS WINAPI RtlDecompressBuffer(USHORT, PUCHAR, ULONG, PUCHAR, ULONG, PULONG)
NTSYSAPI NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
NTSYSAPI ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT, UINT)
Definition: largeint.c:97
NTSYSAPI LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT, INT)
NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR, BOOLEAN, PACL, BOOLEAN)
NTSYSAPI LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG, INT, INT *)
NTSYSAPI NTSTATUS WINAPI RtlAppendStringToString(STRING *, const STRING *)
NTSYSAPI void WINAPI RtlCopyLuid(PLUID, const LUID *)
NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD, PSID, PSID)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPSETSTG *rgelt, [out] ULONG *pceltFetched)
PPC_QUAL void __stosb(unsigned char *Dest, const unsigned char Data, unsigned long Count)
Definition: intrin_ppc.h:306
#define I(s)
NTSTATUS NTAPI RtlUnicodeToUTF8N(CHAR *utf8_dest, ULONG utf8_bytes_max, ULONG *utf8_bytes_written, const WCHAR *uni_src, ULONG uni_bytes)
Definition: utf8.c:20
if(dx< 0)
Definition: linetemp.h:194
#define RtlFillMemoryUlong(dst, len, val)
Definition: mkhive.h:55
unsigned __int64 * PULONG64
Definition: imports.h:198
unsigned __int64 ULONG64
Definition: imports.h:198
static PWSTR GuidString
Definition: apphelp.c:93
static PTIME_FIELDS TimeFields
Definition: time.c:104
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
#define _Pre_unknown_
Definition: ms_sal.h:677
#define _Out_opt_
Definition: ms_sal.h:346
#define _Success_(expr)
Definition: ms_sal.h:259
#define _Notnull_
Definition: ms_sal.h:658
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Inout_
Definition: ms_sal.h:378
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Out_writes_bytes_to_(size, count)
Definition: ms_sal.h:360
#define _Out_range_(lb, ub)
Definition: ms_sal.h:572
#define _Ret_maybenull_
Definition: ms_sal.h:529
#define _Unchanged_(e)
Definition: ms_sal.h:582
#define _Out_writes_bytes_all_(size)
Definition: ms_sal.h:362
#define _Writable_bytes_(size)
Definition: ms_sal.h:637
#define _In_z_
Definition: ms_sal.h:313
#define _Pre_maybenull_
Definition: ms_sal.h:681
#define _In_opt_z_
Definition: ms_sal.h:314
#define _Outptr_
Definition: ms_sal.h:427
#define _Out_writes_(size)
Definition: ms_sal.h:348
#define _Outptr_opt_result_maybenull_
Definition: ms_sal.h:430
#define _Post_equal_to_(expr)
Definition: ms_sal.h:578
#define _Valid_
Definition: ms_sal.h:626
#define __inner_callback
Definition: ms_sal.h:2636
#define _Post_invalid_
Definition: ms_sal.h:695
#define _At_(target, annos)
Definition: ms_sal.h:244
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Inout_updates_bytes_(size)
Definition: ms_sal.h:399
#define _Out_
Definition: ms_sal.h:345
#define _Out_writes_bytes_to_opt_(size, count)
Definition: ms_sal.h:361
#define _In_
Definition: ms_sal.h:308
#define _In_reads_bytes_opt_(size)
Definition: ms_sal.h:322
#define _In_opt_
Definition: ms_sal.h:309
#define _Post_writable_byte_size_(size)
Definition: ms_sal.h:652
#define _Const_
Definition: ms_sal.h:299
#define _Pre_readable_size_(size)
Definition: ms_sal.h:644
#define _Post_satisfies_(cond)
Definition: ms_sal.h:588
#define _Reserved_
Definition: ms_sal.h:295
#define _Out_writes_to_(size, count)
Definition: ms_sal.h:355
#define _In_range_(lb, ub)
Definition: ms_sal.h:571
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
#define _Maybe_raises_SEH_exception_
Definition: ms_sal.h:2956
#define _In_reads_(size)
Definition: ms_sal.h:319
#define _Pre_
Definition: ms_sal.h:619
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
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:1605
_In_ PLUID SourceLuid
Definition: rtlfuncs.h:1329
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
Definition: rtlfuncs.h:1603
_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:1610
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
_In_ const STRING * String2
Definition: rtlfuncs.h:2369
_In_opt_ PSID Group
Definition: rtlfuncs.h:1658
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
Definition: rtlfuncs.h:1922
_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:1609
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlHashUnicodeString(_In_ CONST UNICODE_STRING *String, _In_ BOOLEAN CaseInSensitive, _In_ ULONG HashAlgorithm, _Out_ PULONG HashValue)
_When_(Status< 0, _Out_range_(>, 0)) _When_(Status >=0
_Out_ PLARGE_INTEGER Time
Definition: rtlfuncs.h:4649
_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:1611
_In_ const STRING _In_ BOOLEAN CaseInSensitive
Definition: rtlfuncs.h:2402
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
Definition: rtlfuncs.h:1527
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:4328
_In_ ULONG TypeMask
Definition: rtlfuncs.h:4686
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
Definition: rtlfuncs.h:4220
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:1608
_Inout_opt_ POEM_STRING _Out_opt_ PBOOLEAN NameContainsSpaces
Definition: rtlfuncs.h:3103
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:2047
_In_ const STRING _In_ BOOLEAN CaseInsensitive
Definition: rtlfuncs.h:2371
_In_ ULONG _In_ ULONG AceFlags
Definition: rtlfuncs.h:1154
_In_opt_ PSID _In_opt_ BOOLEAN GroupDefaulted
Definition: rtlfuncs.h:1660
_In_ PSID _In_ BOOLEAN AllocateDestinationString
Definition: rtlfuncs.h:1361
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
Definition: sid.c:150
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3016
_In_ PSID SourceSid
Definition: rtlfuncs.h:1371
_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:4223
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
_In_ BOOLEAN DaclPresent
Definition: rtlfuncs.h:1647
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:2451
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:4688
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:1132
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:2605
_In_opt_ PSID _In_opt_ BOOLEAN OwnerDefaulted
Definition: rtlfuncs.h:1684
_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:1607
_Out_ _Inout_ POEM_STRING DestinationString
Definition: rtlfuncs.h:1921
_In_ ULONG _In_ SECURITY_INFORMATION RequiredInformation
Definition: rtlfuncs.h:1728
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(_In_ PSID Sid)
_In_ ULONG _In_ ULONG CompressedBufferSize
Definition: rtlfuncs.h:3294
_In_ ULONG _In_ ULONG _Out_ PULONG FinalUncompressedSize
Definition: rtlfuncs.h:3296
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:1613
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1145
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:4658
_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:1604
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
_In_ ULONG SecurityDescriptorLength
Definition: rtlfuncs.h:1726
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString(PUNICODE_STRING Destination, PCWSTR Source)
NTSYSAPI NTSTATUS NTAPI RtlDeleteAce(PACL Acl, ULONG AceIndex)
_In_ ULONG Revision
Definition: rtlfuncs.h:1142
NTSYSAPI VOID NTAPI RtlMapGenericMask(PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping)
_In_ const STRING * Source
Definition: rtlfuncs.h:2430
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:2588
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:3101
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG DaclSize
Definition: rtlfuncs.h:1606
_In_ ULONG UncompressedBufferSize
Definition: rtlfuncs.h:3292
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:1143
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:2050
#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT
Definition: rtlfuncs.h:820
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:4186
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
Definition: rtlfuncs.h:1525
_In_ BOOLEAN _In_opt_ PACL _In_opt_ BOOLEAN DaclDefaulted
Definition: rtlfuncs.h:1650
*BytesInUnicodeString PWCH _In_ ULONG MaxBytesInUnicodeString
Definition: rtlfuncs.h:2046
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:62
_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:282
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeSize(_Out_ PULONG UnicodeSize, _In_ PCCH MbString, _In_ ULONG MbSize)
Definition: nlsboot.c:93
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)
ULONG ACCESS_MASK
Definition: nt_native.h:40
ACCESS_MASK * PACCESS_MASK
Definition: nt_native.h:41
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI PVOID NTAPI RtlCreateHeap(IN ULONG Flags, IN PVOID HeapBase OPTIONAL, IN ULONG ReserveSize OPTIONAL, IN ULONG CommitSize OPTIONAL, IN PVOID Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL)
#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:410
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
Definition: ntbasedef.h:654
CHAR * PCH
Definition: ntbasedef.h:391
CONST WCHAR * PCWCH
Definition: ntbasedef.h:411
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:383
#define DECLSPEC_NORETURN
Definition: ntbasedef.h:176
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
CONST CHAR * PCCH
Definition: ntbasedef.h:392
#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:183
static BOOL Set
Definition: pageheap.c:10
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
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
#define RtlUTF8ToUnicodeN
Definition: reactos.cpp:12
VOID NTAPI RtlAssert(IN PVOID FailedAssertion, IN PVOID FileName, IN ULONG LineNumber, IN PCHAR Message OPTIONAL)
Definition: rtlcompat.c:68
@ 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 RtlDecompressFragment(IN USHORT format, OUT PUCHAR uncompressed, IN ULONG uncompressed_size, IN PUCHAR compressed, IN ULONG compressed_size, IN ULONG offset, OUT PULONG final_size, IN PVOID workspace)
Definition: compress.c:342
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 RtlInitCodePageTable(IN PUSHORT TableBase, OUT PCPTABLEINFO CodePageTable)
Definition: nls.c:155
NTSTATUS NTAPI RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP, OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize OPTIONAL, IN PCHAR CustomString, IN ULONG CustomSize)
Definition: nls.c:45
NTSTATUS NTAPI RtlUpcaseUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
Definition: nls.c:732
NTSTATUS NTAPI RtlUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
Definition: nls.c:482
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
#define __analysis_noreturn
Definition: specstrings.h:262
base of all file and directory entries
Definition: entries.h:83
Definition: hash.c:67
root entry for file system trees
Definition: entries.h:148
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:628
struct _SINGLE_LIST_ENTRY * Next
Definition: ntbasedef.h:629
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 * 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
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
uint64_t ULONGLONG
Definition: typedefs.h:67
#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:205
#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::@2299 u
int ret
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
Definition: wdfdevice.h:1701
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_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_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_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
_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
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_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:1961
_In_ PUNICODE_STRING _In_ ULONG CaseInsensitiveIndex
Definition: rtlfuncs.h:1696
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG UTF8StringActualByteCount
Definition: rtlfuncs.h:2662
_In_ ULONG Shift
Definition: rtlfuncs.h:2695
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:2677
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:3058
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
Definition: rtlfuncs.h:253
FORCEINLINE ULONG NTAPI RtlTotalBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3620
_In_ PSTRING FullName
Definition: rtlfuncs.h:1662
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:2664
#define RtlUlongByteSwap(_x)
Definition: rtlfuncs.h:3212
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:3599
FORCEINLINE PVOID RtlSecureZeroMemory(_Out_writes_bytes_all_(Size) PVOID Pointer, _In_ SIZE_T Size)
Definition: rtlfuncs.h:3139
_In_opt_ PVOID HeapBase
Definition: rtlfuncs.h:2181
#define RtlUlonglongByteSwap(_x)
Definition: rtlfuncs.h:3213
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn
Definition: rtlfuncs.h:2547
*UTF8StringActualByteCount PCHAR _In_ ULONG UTF8StringMaxByteCount
Definition: rtlfuncs.h:2661
_In_ PSID OldSid
Definition: rtlfuncs.h:2827
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(_In_ ULONG OSMajorVersion, _In_ ULONG OSMinorVersion, _In_ ULONG SpMajorVersion, _In_ ULONG SpMinorVersion, _Out_ PULONG ReturnedProductType)
NTSYSAPI NTSTATUS NTAPI RtlIsNormalizedString(_In_ ULONG NormForm, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_ PBOOLEAN Normalized)
$endif(_WDMDDK_) $if(_WDMDDK_) _Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlAreBitsClear(_In_ PRTL_BITMAP BitMapHeader
Definition: rtlfuncs.h:3469
_In_ ULONG _In_ ULONG _In_ ULONG _In_ PCOMPRESSED_DATA_INFO CompressedDataInfo
Definition: rtlfuncs.h:2315
FORCEINLINE ULONG NTAPI RtlTotalEntriesHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3647
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:609
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:3555
_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:3629
_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:2314
_Inout_ PUCHAR * CompressedBuffer
Definition: rtlfuncs.h:2288
_Ret_range_(<, MAXLONG) NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
_In_ ULONG MaxBytesInCustomCPString
Definition: rtlfuncs.h:1970
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:1856
_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:2427
_In_ ULONG AceRevision
Definition: rtlfuncs.h:1865
FORCEINLINE VOID NTAPI RtlReleaseHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
Definition: rtlfuncs.h:3610
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:2674
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:515
FORCEINLINE BOOLEAN RemoveEntryListUnsafe(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:65
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:2291
_In_ ULONG _In_ ULONG HintIndex
Definition: rtlfuncs.h:610
_In_ ULONG _In_ ULONG _In_ ULONG AceListLength
Definition: rtlfuncs.h:1868
_In_ BOOLEAN _In_ ULONG HashAlgorithm
Definition: rtlfuncs.h:2052
_In_ ULONG _In_ ULONG _Out_ PULONG _In_ PVOID WorkSpace
Definition: rtlfuncs.h:2280
_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:3059
_In_ PCWSTR _In_ LONG SourceStringLength
Definition: rtlfuncs.h:2588
_Out_ PBOOLEAN _Out_ PACL _Out_ PBOOLEAN SaclDefaulted
Definition: rtlfuncs.h:2429
#define InterlockedPushEntrySList(SListHead, SListEntry)
Definition: rtlfuncs.h:3403
_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:3656
NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply(_In_ LARGE_INTEGER Multiplicand, _In_ LONG Multiplier)
_In_opt_ PVOID _In_opt_ SIZE_T ReserveSize
Definition: rtlfuncs.h:2182
FORCEINLINE VOID FatalListEntryError(_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
Definition: rtlfuncs.h:81
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:2930
_In_ BOOLEAN _Inout_ PGENERATE_NAME_CONTEXT _Inout_ PUNICODE_STRING Name8dot3
Definition: rtlfuncs.h:1600
static __inline LARGE_INTEGER NTAPI_INLINE RtlConvertUlongToLargeInteger(_In_ ULONG UnsignedInteger)
Definition: rtlfuncs.h:2863
_In_ PSID _In_ PSID NewSid
Definition: rtlfuncs.h:2828
_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:240
*BytesInOemString PCHAR OemString
Definition: rtlfuncs.h:1574
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerNegate(_In_ LARGE_INTEGER Subtrahend)
Definition: rtlfuncs.h:2917
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:3445
#define RtlUshortByteSwap(_x)
Definition: rtlfuncs.h:3211
NTSYSAPI VOID NTAPI RtlFillMemoryUlonglong(_Out_writes_bytes_all_(Length) PVOID Destination, _In_ SIZE_T Length, _In_ ULONGLONG Pattern)
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTableFullAvl(_In_ PRTL_AVL_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement, _In_ PVOID NodeOrParent, _In_ TABLE_SEARCH_RESULT SearchResult)
NTSYSAPI ULONGLONG NTAPI RtlCmDecodeMemIoResource(_In_ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Start)
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1283
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSplay(_Inout_ PRTL_SPLAY_LINKS Links)
_In_ ULONG StartingIndex
Definition: rtlfuncs.h:395
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:2673
FORCEINLINE ULONG NTAPI RtlEmptyBucketsHashTable(_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
Definition: rtlfuncs.h:3638
#define RtlCopyMemoryNonTemporal
Definition: rtlfuncs.h:293
_In_ SIZE_T String1Length
Definition: rtlfuncs.h:513
_In_ PSID Sid2
Definition: rtlfuncs.h:1769
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE _In_opt_ PVOID TableContext
Definition: rtlfuncs.h:1105
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE FreeRoutine
Definition: rtlfuncs.h:1104
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:3120
#define InterlockedPopEntrySList(SListHead)
Definition: rtlfuncs.h:3406
FORCEINLINE VOID NTAPI RtlInitHashTableContext(_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
Definition: rtlfuncs.h:3589
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:1103
*BytesInMultiByteString PCHAR _In_ ULONG MaxBytesInMultiByteString
Definition: rtlfuncs.h:1542
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:1857
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:2875
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:1876
NTSYSAPI NTSTATUS NTAPI RtlCmEncodeMemIoResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _In_ UCHAR Type, _In_ ULONGLONG Length, _In_ ULONGLONG Start)
_In_ ULONG UncompressedFragmentSize
Definition: rtlfuncs.h:2275
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmptyAvl(_In_ PRTL_AVL_TABLE Table)
NTSYSAPI NTSTATUS NTAPI RtlFindClosestEncodableLength(_In_ ULONGLONG SourceLength, _Out_ PULONGLONG TargetLength)
_In_ LARGE_INTEGER Addend2
Definition: rtlfuncs.h:3101
_In_ ULONG _In_ ULONG StartingAceIndex
Definition: rtlfuncs.h:1866
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
Definition: rtlfuncs.h:2053
_In_ __drv_aliasesMem PSTRING Prefix
Definition: rtlfuncs.h:1644
_In_ PSID _In_ PSID _Out_ ULONG * NumChanges
Definition: rtlfuncs.h:2829
FORCEINLINE VOID InitializeSListHead(_Out_ PSLIST_HEADER SListHead)
Definition: rtlfuncs.h:3365
*UTF8StringActualByteCount PCHAR UTF8StringDestination
Definition: rtlfuncs.h:2660
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG UnicodeStringActualByteCount
Definition: rtlfuncs.h:2675
*BytesInMultiByteString PCHAR MultiByteString
Definition: rtlfuncs.h:1541
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:222
#define RtlIsNtDdiVersionAvailable
Definition: rtlfuncs.h:3441
_Inout_ PUCHAR _In_ PUCHAR EndOfCompressedBufferPlus1
Definition: rtlfuncs.h:2289
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:95
_Must_inspect_result_ NTSYSAPI SIZE_T NTAPI RtlCompareMemoryUlong(_In_reads_bytes_(Length) PVOID Source, _In_ SIZE_T Length, _In_ ULONG Pattern)
$if(_WDMDDK_) DECLSPEC_NORETURN FORCEINLINE VOID RtlFailFast(_In_ ULONG Code)
Definition: rtlfuncs.h:5
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T CommitSize
Definition: rtlfuncs.h:2183
*BytesInOemString PCHAR _In_ ULONG MaxBytesInOemString
Definition: rtlfuncs.h:1575
_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:2590
_In_ PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
Definition: rtlfuncs.h:1102
_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:1645
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreePredecessor(_In_ PRTL_SPLAY_LINKS Links)
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR * ChunkBuffer
Definition: rtlfuncs.h:2290
_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:2889
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:1598
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
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175
#define const
Definition: zconf.h:233