ReactOS  0.4.15-dev-1377-ga59cecd
rtlfuncs.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FAST_FAIL_LEGACY_GS_VIOLATION   0
 
#define FAST_FAIL_VTGUARD_CHECK_FAILURE   1
 
#define FAST_FAIL_STACK_COOKIE_CHECK_FAILURE   2
 
#define FAST_FAIL_CORRUPT_LIST_ENTRY   3
 
#define FAST_FAIL_INCORRECT_STACK   4
 
#define FAST_FAIL_INVALID_ARG   5
 
#define FAST_FAIL_GS_COOKIE_INIT   6
 
#define FAST_FAIL_FATAL_APP_EXIT   7
 
#define FAST_FAIL_RANGE_CHECK_FAILURE   8
 
#define FAST_FAIL_UNSAFE_REGISTRY_ACCESS   9
 
#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE   10
 
#define FAST_FAIL_GUARD_WRITE_CHECK_FAILURE   11
 
#define FAST_FAIL_INVALID_FIBER_SWITCH   12
 
#define FAST_FAIL_INVALID_SET_OF_CONTEXT   13
 
#define FAST_FAIL_INVALID_REFERENCE_COUNT   14
 
#define FAST_FAIL_INVALID_JUMP_BUFFER   18
 
#define FAST_FAIL_MRDATA_MODIFIED   19
 
#define FAST_FAIL_INVALID_FAST_FAIL_CODE   0xFFFFFFFF
 
#define RTL_STATIC_LIST_HEAD(x)   LIST_ENTRY x = { &x, &x }
 
#define RtlCopyMemory(Destination, Source, Length)   memcpy(Destination, Source, Length)
 
#define RtlCopyBytes   RtlCopyMemory
 
#define RtlCopyMemoryNonTemporal   RtlCopyMemory
 
#define RtlEqualLuid(Luid1, Luid2)   (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
 
#define RtlEqualMemory(Destination, Source, Length)   (!memcmp(Destination, Source, Length))
 
#define RtlFillMemory(Destination, Length, Fill)   memset(Destination, Fill, Length)
 
#define RtlFillBytes   RtlFillMemory
 
#define RtlMoveMemory(Destination, Source, Length)   memmove(Destination, Source, Length)
 
#define RtlZeroMemory(Destination, Length)   memset(Destination, 0, Length)
 
#define RtlZeroBytes   RtlZeroMemory
 
#define RtlAnsiStringToUnicodeSize(String)
 
#define RtlIntPtrToUnicodeString(Value, Base, String)   RtlIntegerToUnicodeString(Value, Base, String)
 
#define RtlIsZeroLuid(_L1)   ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
 
#define SHORT_SIZE   (sizeof(USHORT))
 
#define SHORT_MASK   (SHORT_SIZE - 1)
 
#define LONG_SIZE   (sizeof(LONG))
 
#define LONGLONG_SIZE   (sizeof(LONGLONG))
 
#define LONG_MASK   (LONG_SIZE - 1)
 
#define LONGLONG_MASK   (LONGLONG_SIZE - 1)
 
#define LOWBYTE_MASK   0x00FF
 
#define FIRSTBYTE(VALUE)   ((VALUE) & LOWBYTE_MASK)
 
#define SECONDBYTE(VALUE)   (((VALUE) >> 8) & LOWBYTE_MASK)
 
#define THIRDBYTE(VALUE)   (((VALUE) >> 16) & LOWBYTE_MASK)
 
#define FOURTHBYTE(VALUE)   (((VALUE) >> 24) & LOWBYTE_MASK)
 
#define RtlStoreUlong(Address, Value)
 
#define RtlStoreUlonglong(Address, Value)
 
#define RtlStoreUshort(Address, Value)
 
#define RtlRetrieveUshort(DestAddress, SrcAddress)
 
#define RtlRetrieveUlong(DestAddress, SrcAddress)
 
#define RtlStoreUlongPtr(Address, Value)   RtlStoreUlong(Address,Value)
 
#define RtlUnicodeStringToAnsiSize(String)
 
#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT   8
 
#define RtlLargeIntegerAnd(Result, Source, Mask)   Result.QuadPart = Source.QuadPart & Mask.QuadPart
 
#define RtlLargeIntegerEqualTo(X, Y)   (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
 
#define RtlCheckBit(BMH, BP)   (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
 
#define RtlLargeIntegerGreaterThan(X, Y)
 
#define RtlLargeIntegerGreaterThanOrEqualTo(X, Y)
 
#define RtlLargeIntegerNotEqualTo(X, Y)
 
#define RtlLargeIntegerLessThan(X, Y)
 
#define RtlLargeIntegerLessThanOrEqualTo(X, Y)
 
#define RtlLargeIntegerGreaterThanZero(X)
 
#define RtlLargeIntegerGreaterOrEqualToZero(X)   ( (X).HighPart >= 0 )
 
#define RtlLargeIntegerEqualToZero(X)   ( !((X).LowPart | (X).HighPart) )
 
#define RtlLargeIntegerNotEqualToZero(X)   ( ((X).LowPart | (X).HighPart) )
 
#define RtlLargeIntegerLessThanZero(X)   ( ((X).HighPart < 0) )
 
#define RtlLargeIntegerLessOrEqualToZero(X)   ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
 
#define RtlUshortByteSwap(_x)   _byteswap_ushort((USHORT)(_x))
 
#define RtlUlongByteSwap(_x)   _byteswap_ulong((_x))
 
#define RtlUlonglongByteSwap(_x)   _byteswap_uint64((_x))
 
#define __assert_annotationA(msg)   DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)
 
#define __assert_annotationW(msg)   DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)
 
#define NT_ANALYSIS_ASSUME(_exp)   __noop(_exp)
 
#define NT_ASSERT_ACTION(exp)
 
#define NT_ASSERTMSG_ACTION(msg, exp)
 
#define NT_ASSERTMSGW_ACTION(msg, exp)
 
#define ASSERT(exp)   ((void)0)
 
#define ASSERTMSG(msg, exp)   ((void)0)
 
#define RTL_SOFT_ASSERT(exp)   ((void)0)
 
#define RTL_SOFT_ASSERTMSG(msg, exp)   ((void)0)
 
#define RTL_VERIFY(exp)   ((exp) ? TRUE : FALSE)
 
#define RTL_VERIFYMSG(msg, exp)   ((exp) ? TRUE : FALSE)
 
#define RTL_SOFT_VERIFY(exp)   ((exp) ? TRUE : FALSE)
 
#define RTL_SOFT_VERIFYMSG(msg, exp)   ((exp) ? TRUE : FALSE)
 
#define NT_VERIFY(exp)   (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
 
#define NT_VERIFYMSG(msg, exp)   (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
 
#define NT_VERIFYMSGW(msg, exp)   (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))
 
#define NT_ASSERT_ASSUME(exp)   (NT_ANALYSIS_ASSUME(exp), (void)0)
 
#define NT_ASSERTMSG_ASSUME(msg, exp)   (NT_ANALYSIS_ASSUME(exp), (void)0)
 
#define NT_ASSERTMSGW_ASSUME(msg, exp)   (NT_ANALYSIS_ASSUME(exp), (void)0)
 
#define NT_ASSERT_NOASSUME(exp)   ((void)0)
 
#define NT_ASSERTMSG_NOASSUME(msg, exp)   ((void)0)
 
#define NT_ASSERTMSGW_NOASSUME(msg, exp)   ((void)0)
 
#define NT_FRE_ASSERT   (void)NT_ASSERT_ACTION
 
#define NT_FRE_ASSERTMSG   (void)NT_ASSERTMSG_ACTION
 
#define NT_FRE_ASSERTMSGW   (void)NT_ASSERTMSGW_ACTION
 
#define NT_ASSERT   NT_ASSERT_NOASSUME
 
#define NT_ASSERTMSG   NT_ASSERTMSG_NOASSUME
 
#define NT_ASSERTMSGW   NT_ASSERTMSGW_NOASSUME
 
#define InitializeListHead32(ListHead)
 
#define InterlockedPushEntrySList(SListHead, SListEntry)   ExpInterlockedPushEntrySList(SListHead, SListEntry)
 
#define InterlockedPopEntrySList(SListHead)   ExpInterlockedPopEntrySList(SListHead)
 
#define InterlockedFlushSList(SListHead)   ExpInterlockedFlushSList(SListHead)
 
#define QueryDepthSList(SListHead)   ExQueryDepthSList(SListHead)
 
#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk)   ((ContextEx)->Chunk.Offset)
 
#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk)   ((ContextEx)->Chunk.Length)
 
#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk)   ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
 
#define RTL_CONTEXT_OFFSET(Context, Chunk)   RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
 
#define RTL_CONTEXT_LENGTH(Context, Chunk)   RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
 
#define RTL_CONTEXT_CHUNK(Context, Chunk)
 
#define RtlIsNtDdiVersionAvailable   WdmlibRtlIsNtDdiVersionAvailable
 
#define RtlIsServicePackVersionInstalled   WdmlibRtlIsServicePackVersionInstalled
 
#define RtlInterlockedSetBits(Flags, Flag)   InterlockedOr((PLONG)(Flags), Flag)
 
#define RtlInterlockedAndBits(Flags, Flag)   InterlockedAnd((PLONG)(Flags), Flag)
 
#define RtlInterlockedClearBits(Flags, Flag)   RtlInterlockedAndBits(Flags, ~(Flag))
 
#define RtlInterlockedXorBits(Flags, Flag)   InterlockedXor(Flags, Flag)
 
#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag)   (VOID) RtlInterlockedSetBits(Flags, Flag)
 
#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag)   (VOID) RtlInterlockedAndBits(Flags, Flag)
 
#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag)   RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
 
#define RtlInitializeSplayLinks(Links)
 
#define RtlIsLeftChild(Links)   (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
 
#define RtlIsRightChild(Links)   (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
 
#define RtlRightChild(Links)   ((PRTL_SPLAY_LINKS)(Links))->RightChild
 
#define RtlIsRoot(Links)   (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
 
#define RtlLeftChild(Links)   ((PRTL_SPLAY_LINKS)(Links))->LeftChild
 
#define RtlParent(Links)   ((PRTL_SPLAY_LINKS)(Links))->Parent
 
#define RtlInsertAsLeftChild(ParentLinks, ChildLinks)
 
#define RtlInsertAsRightChild(ParentLinks, ChildLinks)
 
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE   1
 
#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING   2
 
#define RtlUnicodeStringToOemSize(STRING)
 
#define RtlOemStringToUnicodeSize(STRING)
 
#define RtlOemStringToCountedUnicodeSize(STRING)
 
#define RtlOffsetToPointer(B, O)   ((PCHAR)(((PCHAR)(B)) + ((ULONG_PTR)(O))))
 
#define RtlPointerToOffset(B, P)   ((ULONG)(((PCHAR)(P)) - ((PCHAR)(B))))
 

Functions

 $if (_WDMDDK_) DECLSPEC_NORETURN FORCEINLINE VOID RtlFailFast(_In_ ULONG Code)
 
FORCEINLINE VOID InitializeListHead (_Out_ PLIST_ENTRY ListHead)
 
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty (_In_ const LIST_ENTRY *ListHead)
 
FORCEINLINE BOOLEAN RemoveEntryListUnsafe (_In_ PLIST_ENTRY Entry)
 
FORCEINLINE VOID FatalListEntryError (_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
 
FORCEINLINE VOID RtlpCheckListEntry (_In_ PLIST_ENTRY Entry)
 
FORCEINLINE BOOLEAN RemoveEntryList (_In_ PLIST_ENTRY Entry)
 
FORCEINLINE PLIST_ENTRY RemoveHeadList (_Inout_ PLIST_ENTRY ListHead)
 
FORCEINLINE PLIST_ENTRY RemoveTailList (_Inout_ PLIST_ENTRY ListHead)
 
FORCEINLINE VOID InsertTailList (_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
 
FORCEINLINE VOID InsertHeadList (_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
 
FORCEINLINE VOID AppendTailList (_Inout_ PLIST_ENTRY ListHead, _Inout_ PLIST_ENTRY ListToAppend)
 
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList (_Inout_ PSINGLE_LIST_ENTRY ListHead)
 
FORCEINLINE VOID PushEntryList (_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
 
__analysis_noreturn NTSYSAPI VOID NTAPI RtlAssert (_In_ PVOID FailedAssertion, _In_ PVOID FileName, _In_ ULONG LineNumber, _In_opt_z_ PSTR Message)
 
 _IRQL_requires_max_ (PASSIVE_LEVEL) NTSYSAPI VOID NTAPI RtlFreeUnicodeString(_Inout_ _At_(UnicodeString -> Buffer, __drv_freesMem(Mem)) PUNICODE_STRING UnicodeString)
 
 _IRQL_requires_max_ (DISPATCH_LEVEL) _At_(DestinationString -> Buffer, _Post_equal_to_(SourceString)) _When_(SourceString !=NULL, _At_(DestinationString->Length, _Post_equal_to_(_String_length_(SourceString) *sizeof(WCHAR))) _At_(DestinationString->MaximumLength, _Post_equal_to_(DestinationString->Length+sizeof(WCHAR)))) _When_(SourceString==NULL, _At_(DestinationString->Length, _Post_equal_to_(0)) _At_(DestinationString->MaximumLength, _Post_equal_to_(0))) NTSYSAPI VOID NTAPI RtlInitUnicodeString(_Out_ PUNICODE_STRING DestinationString, _In_opt_z_ __drv_aliasesMem PCWSTR SourceString)
 
_Out_ _At_ (GuidString->Buffer, __drv_allocatesMem(Mem)) PUNICODE_STRING GuidString)
 
 $endif (_WDMDDK_) $if(_WDMDDK_) _Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlAreBitsClear(_In_ PRTL_BITMAP BitMapHeader
 
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlAreBitsSet (_In_ PRTL_BITMAP BitMapHeader, _In_ ULONG StartingIndex, _In_ ULONG Length)
 
_Out_ _At_ (DestinationString->Buffer, __drv_allocatesMem(Mem))) _When_(!AllocateDestinationString
 
 _Success_ (1) _Unchanged_(Destination -> MaximumLength) _Unchanged_(Destination->Buffer) _When_(_Old_(Destination->Length)+Source->Length<=Destination->MaximumLength, _At_(Destination->Length, _Post_equal_to_(_Old_(Destination->Length)+Source->Length)) _At_(return, _Out_range_(==, 0))) _When_(_Old_(Destination->Length)+Source->Length > Destination->MaximumLength, _Unchanged_(Destination->Length) _At_(return, _Out_range_(<, 0))) NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(_Inout_ PUNICODE_STRING Destination, _In_ PCUNICODE_STRING Source)
 
NTSYSAPI VOID NTAPI RtlClearAllBits (_In_ PRTL_BITMAP BitMapHeader)
 
NTSYSAPI VOID NTAPI RtlClearBits (_In_ PRTL_BITMAP BitMapHeader, _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToClear) ULONG StartingIndex, _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToClear)
 
_Must_inspect_result_ NTSYSAPI SIZE_T NTAPI RtlCompareMemory (_In_ const VOID *Source1, _In_ const VOID *Source2, _In_ SIZE_T Length)
 
_In_ SIZE_T _In_reads_ (String2Length) PCWCH String2
 
 _Unchanged_ (DestinationString->Buffer) _Unchanged_(DestinationString -> MaximumLength) _At_(DestinationString->Length, _When_(SourceString->Length > DestinationString->MaximumLength, _Post_equal_to_(DestinationString->MaximumLength)) _When_(SourceString->Length<=DestinationString->MaximumLength, _Post_equal_to_(SourceString->Length))) NTSYSAPI VOID NTAPI RtlCopyUnicodeString(_Inout_ PUNICODE_STRING DestinationString, _In_opt_ PCUNICODE_STRING SourceString)
 
 _IRQL_requires_max_ (APC_LEVEL) NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(_Out_ PSECURITY_DESCRIPTOR SecurityDescriptor
 
NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply (_In_ LARGE_INTEGER Multiplicand, _In_ LONG Multiplier)
 
NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide (_In_ LARGE_INTEGER Dividend, _In_ ULONG Divisor, _Out_opt_ PULONG Remainder)
 
 _Success_ (return !=-1) _Must_inspect_result_ NTSYSAPI ULONG NTAPI RtlFindClearBits(_In_ PRTL_BITMAP BitMapHeader
 
NTSYSAPI ULONG NTAPI RtlFindFirstRunClear (_In_ PRTL_BITMAP BitMapHeader, _Out_ PULONG StartingIndex)
 
NTSYSAPI ULONG NTAPI RtlFindClearRuns (_In_ PRTL_BITMAP BitMapHeader, _Out_writes_to_(SizeOfRunArray, return) PRTL_BITMAP_RUN RunArray, _In_range_(>, 0) ULONG SizeOfRunArray, _In_ BOOLEAN LocateLongestRuns)
 
NTSYSAPI ULONG NTAPI RtlFindLastBackwardRunClear (_In_ PRTL_BITMAP BitMapHeader, _In_ ULONG FromIndex, _Out_ PULONG StartingRunIndex)
 
NTSYSAPI ULONG NTAPI RtlFindLongestRunClear (_In_ PRTL_BITMAP BitMapHeader, _Out_ PULONG StartingIndex)
 
NTSYSAPI ULONG NTAPI RtlFindNextForwardRunClear (_In_ PRTL_BITMAP BitMapHeader, _In_ ULONG FromIndex, _Out_ PULONG StartingRunIndex)
 
 _At_ (BitMapHeader->SizeOfBitMap, _Post_equal_to_(SizeOfBitMap)) _At_(BitMapHeader -> Buffer, _Post_equal_to_(BitMapBuffer)) NTSYSAPI VOID NTAPI RtlInitializeBitMap(_Out_ PRTL_BITMAP BitMapHeader, _In_opt_ __drv_aliasesMem PULONG BitMapBuffer, _In_opt_ ULONG SizeOfBitMap)
 
NTSYSAPI ULONG NTAPI RtlNumberOfClearBits (_In_ PRTL_BITMAP BitMapHeader)
 
NTSYSAPI ULONG NTAPI RtlNumberOfSetBits (_In_ PRTL_BITMAP BitMapHeader)
 
NTSYSAPI VOID NTAPI RtlSetAllBits (_In_ PRTL_BITMAP BitMapHeader)
 
NTSYSAPI VOID NTAPI RtlSetBits (_In_ PRTL_BITMAP BitMapHeader, _In_range_(0, BitMapHeader->SizeOfBitMap - NumberToSet) ULONG StartingIndex, _In_range_(0, BitMapHeader->SizeOfBitMap - StartingIndex) ULONG NumberToSet)
 
 _Success_ (return!=FALSE) _Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTimeFieldsToTime(_In_ PTIME_FIELDS TimeFields
 
NTSYSAPI VOID NTAPI RtlTimeToTimeFields (_In_ PLARGE_INTEGER Time, _Out_ PTIME_FIELDS TimeFields)
 
NTSYSAPI USHORT FASTCALL RtlUshortByteSwap (_In_ USHORT Source)
 
NTSYSAPI ULONG FASTCALL RtlUlongByteSwap (_In_ ULONG Source)
 
NTSYSAPI ULONGLONG FASTCALL RtlUlonglongByteSwap (_In_ ULONGLONG Source)
 
 _When_ (AllocateDestinationString, _At_(DestinationString->MaximumLength, _Out_range_(<=,(SourceString->MaximumLength/sizeof(WCHAR))))) _When_(!AllocateDestinationString
 
 _At_ (DestinationString->Buffer, _Const_) _At_(DestinationString -> MaximumLength, _Const_)) _IRQL_requires_max_(PASSIVE_LEVEL) _When_(AllocateDestinationString, _Must_inspect_result_) NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(_When_(AllocateDestinationString, _Out_ _At_(DestinationString->Buffer, __drv_allocatesMem(Mem))) _When_(!AllocateDestinationString, _Inout_) PANSI_STRING DestinationString, _In_ PCUNICODE_STRING SourceString, _In_ BOOLEAN AllocateDestinationString)
 
_In_ PCWSTR _In_z_ PCWSTR _In_ ULONG _In_reads_bytes_opt_ (ValueLength) PVOID ValueData
 
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTable (_In_ PRTL_GENERIC_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement)
 
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)
 
NTSYSAPI BOOLEAN NTAPI RtlDeleteElementGenericTable (_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupElementGenericTable (_In_ PRTL_GENERIC_TABLE Table, _In_ PVOID Buffer)
 
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)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplaying (_In_ PRTL_GENERIC_TABLE Table, _Inout_ PVOID *RestartKey)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlGetElementGenericTable (_In_ PRTL_GENERIC_TABLE Table, _In_ ULONG I)
 
NTSYSAPI ULONG NTAPI RtlNumberGenericTableElements (_In_ PRTL_GENERIC_TABLE Table)
 
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmpty (_In_ PRTL_GENERIC_TABLE Table)
 
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSplay (_Inout_ PRTL_SPLAY_LINKS Links)
 
NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlDelete (_In_ PRTL_SPLAY_LINKS Links)
 
NTSYSAPI VOID NTAPI RtlDeleteNoSplay (_In_ PRTL_SPLAY_LINKS Links, _Inout_ PRTL_SPLAY_LINKS *Root)
 
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreeSuccessor (_In_ PRTL_SPLAY_LINKS Links)
 
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlSubtreePredecessor (_In_ PRTL_SPLAY_LINKS Links)
 
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlRealSuccessor (_In_ PRTL_SPLAY_LINKS Links)
 
_Must_inspect_result_ NTSYSAPI PRTL_SPLAY_LINKS NTAPI RtlRealPredecessor (_In_ PRTL_SPLAY_LINKS Links)
 
_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 VOID NTAPI RtlCopyString (_Out_ PSTRING DestinationString, _In_opt_ const STRING *SourceString)
 
NTSYSAPI ULONG NTAPI RtlWalkFrameChain (_Out_writes_(Count -(Flags >> RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT)) PVOID *Callers, _In_ ULONG Count, _In_ ULONG Flags)
 
 $endif (_NTDDK_) $if(_NTIFS_) _Must_inspect_result_ _Ret_maybenull_ _Post_writable_byte_size_(Size) NTSYSAPI PVOID NTAPI RtlAllocateHeap(_In_ HANDLE HeapHandle
 
NTSYSAPI VOID NTAPI RtlCaptureContext (_Out_ PCONTEXT ContextRecord)
 
 _Ret_range_ (<, MAXLONG) NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
 
_Must_inspect_result_ NTSYSAPI NTSTATUS NTAPI RtlDowncaseUnicodeString (_When_(AllocateDestinationString, _Out_ _At_(UniDest->Buffer, __drv_allocatesMem(Mem))) _When_(!AllocateDestinationString, _Inout_) PUNICODE_STRING UniDest, _In_ PCUNICODE_STRING UniSource, _In_ BOOLEAN AllocateDestinationString)
 
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_reads_bytes_ (BytesInMultiByteString) const CHAR *MultiByteString
 
 _In_reads_bytes_ (BytesInUnicodeString) PCWCH UnicodeString
 
*BytesInUnicodeString PWSTR _In_ ULONG _Out_opt_ PULONG _In_reads_bytes_ (BytesInOemString) PCCH OemString
 
_Must_inspect_result_ NTSYSAPI SIZE_T NTAPI RtlCompareMemoryUlong (_In_reads_bytes_(Length) PVOID Source, _In_ SIZE_T Length, _In_ ULONG Pattern)
 
NTSYSAPI VOID NTAPI RtlSecondsSince1980ToTime (_In_ ULONG ElapsedSeconds, _Out_ PLARGE_INTEGER Time)
 
NTSYSAPI VOID NTAPI RtlSecondsSince1970ToTime (_In_ ULONG ElapsedSeconds, _Out_ PLARGE_INTEGER Time)
 
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlEqualSid (_In_ PSID Sid1, _In_ PSID Sid2)
 
NTSYSAPI PVOID NTAPI RtlFreeSid (_In_ _Post_invalid_ PSID Sid)
 
_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 PULONG NTAPI RtlSubAuthoritySid (_In_ PSID Sid, _In_ ULONG SubAuthority)
 
 _Post_satisfies_ (return >=8 &&return<=SECURITY_MAX_SID_SIZE) NTSYSAPI ULONG NTAPI RtlLengthSid(_In_ PSID Sid)
 
 _Out_writes_bytes_ (DestinationSidLength) PSID DestinationSid
 
_In_ ULONG _In_ ULONG _In_reads_bytes_ (AceListLength) PVOID AceList
 
NTSYSAPI NTSTATUS NTAPI RtlGetAce (_In_ PACL Acl, _In_ ULONG AceIndex, _Outptr_ PVOID *Ace)
 
NTSYSAPI NTSTATUS NTAPI RtlGetDaclSecurityDescriptor (_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PBOOLEAN DaclPresent, _Out_ PACL *Dacl, _Out_ PBOOLEAN DaclDefaulted)
 
 _Out_range_ (>, 0)) _When_(Status >=0
 
 _Out_writes_bytes_to_ (MaxBytesInUnicodeString, *BytesInUnicodeString) PWCH UnicodeString
 
_In_ ULONG _Out_opt_ PULONG _In_reads_bytes_ (BytesInCustomCPString) PCH CustomCPString
 
 _Out_writes_bytes_to_ (MaxBytesInCustomCPString, *BytesInCustomCPString) PCH CustomCPString
 
 $endif (_NTIFS_) $if(_WDMDDK_) NTSYSAPI VOID FASTCALL RtlPrefetchMemoryNonTemporal(_In_ PVOID Source
 
 _In_range_ (<, BitMapHeader->SizeOfBitMap) ULONG BitNumber)
 
NTSYSAPI VOID NTAPI RtlSetBit (_In_ PRTL_BITMAP BitMapHeader, _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber)
 
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlTestBit (_In_ PRTL_BITMAP BitMapHeader, _In_range_(<, BitMapHeader->SizeOfBitMap) ULONG BitNumber)
 
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_reads_bytes_(BufferSize) PVOID Buffer, _In_ CLONG BufferSize, _Out_opt_ PBOOLEAN NewElement)
 
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 BOOLEAN NTAPI RtlDeleteElementGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupElementGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer)
 
NTSYSAPI PVOID NTAPI RtlLookupElementGenericTableFullAvl (_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer, _Out_ PVOID *NodeOrParent, _Out_ TABLE_SEARCH_RESULT *SearchResult)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_ BOOLEAN Restart)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplayingAvl (_In_ PRTL_AVL_TABLE Table, _Inout_ PVOID *RestartKey)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlLookupFirstMatchingElementGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_ PVOID Buffer, _Out_ PVOID *RestartKey)
 
_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)
 
_Must_inspect_result_ NTSYSAPI PVOID NTAPI RtlGetElementGenericTableAvl (_In_ PRTL_AVL_TABLE Table, _In_ ULONG I)
 
NTSYSAPI ULONG NTAPI RtlNumberGenericTableElementsAvl (_In_ PRTL_AVL_TABLE Table)
 
_Must_inspect_result_ NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmptyAvl (_In_ PRTL_AVL_TABLE Table)
 
NTSYSAPI PVOID NTAPI RtlDestroyHeap (_In_ _Post_invalid_ PVOID HeapHandle)
 
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 NTSTATUS NTAPI RtlValidateUnicodeString (_In_ ULONG Flags, _In_ PCUNICODE_STRING String)
 
NTSYSAPI NTSTATUS NTAPI RtlGetCompressionWorkSpaceSize (_In_ USHORT CompressionFormatAndEngine, _Out_ PULONG CompressBufferWorkSpaceSize, _Out_ PULONG CompressFragmentWorkSpaceSize)
 
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)
 
 _Out_writes_bytes_to_ (UncompressedBufferSize, *FinalUncompressedSize) PUCHAR UncompressedBuffer
 
_In_ ULONG _In_reads_bytes_ (CompressedBufferSize) PUCHAR CompressedBuffer
 
 _Out_writes_bytes_to_ (UncompressedFragmentSize, *FinalUncompressedSize) PUCHAR UncompressedFragment
 
_In_ ULONG _In_ ULONG _In_range_ (<, CompressedBufferSize) ULONG FragmentOffset
 
_In_ ULONG _In_ ULONG _In_reads_bytes_ (CompressedTailSize) PUCHAR CompressedTail
 
_In_ ULONG _Out_writes_bytes_ (CompressedBufferSize) PUCHAR CompressedBuffer
 
_In_ ULONG _In_range_ (>=,(UncompressedBufferSize -(UncompressedBufferSize/16))) ULONG CompressedBufferSize
 
_In_ ULONG _Inout_updates_bytes_ (CompressedDataInfoLength) PCOMPRESSED_DATA_INFO CompressedDataInfo
 
_In_ ULONG _In_range_ (>, sizeof(COMPRESSED_DATA_INFO)) ULONG CompressedDataInfoLength
 
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid (_In_ PSID Sid)
 
 _When_ (Status< 0, _Out_range_(>, 0)) _When_(Status >=0
 
NTSYSAPI VOID NTAPI RtlFillMemoryUlong (_Out_writes_bytes_all_(Length) PVOID Destination, _In_ SIZE_T Length, _In_ ULONG Pattern)
 
NTSYSAPI VOID NTAPI RtlFillMemoryUlonglong (_Out_writes_bytes_all_(Length) PVOID Destination, _In_ SIZE_T Length, _In_ ULONGLONG Pattern)
 
NTSYSAPI ULONGLONG NTAPI RtlIoDecodeMemIoResource (_In_ struct _IO_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Alignment, _Out_opt_ PULONGLONG MinimumAddress, _Out_opt_ PULONGLONG MaximumAddress)
 
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)
 
NTSYSAPI ULONGLONG NTAPI RtlCmDecodeMemIoResource (_In_ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor, _Out_opt_ PULONGLONG Start)
 
NTSYSAPI NTSTATUS NTAPI RtlFindClosestEncodableLength (_In_ ULONGLONG SourceLength, _Out_ PULONGLONG TargetLength)
 
NTSYSAPI NTSTATUS NTAPI RtlCmEncodeMemIoResource (_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _In_ UCHAR Type, _In_ ULONGLONG Length, _In_ ULONGLONG Start)
 
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)
 
NTSYSAPI NTSTATUS NTAPI RtlIdnToAscii (_In_ ULONG Flags, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_writes_to_(*DestinationStringLength, *DestinationStringLength) PWSTR DestinationString, _Inout_ PLONG DestinationStringLength)
 
NTSYSAPI NTSTATUS NTAPI RtlIdnToUnicode (IN ULONG Flags, IN PCWSTR SourceString, IN LONG SourceStringLength, OUT PWSTR DestinationString, IN OUT PLONG DestinationStringLength)
 
NTSYSAPI NTSTATUS NTAPI RtlIdnToNameprepUnicode (_In_ ULONG Flags, _In_ PCWSTR SourceString, _In_ LONG SourceStringLength, _Out_writes_to_(*DestinationStringLength, *DestinationStringLength) PWSTR DestinationString, _Inout_ PLONG DestinationStringLength)
 
NTSYSAPI NTSTATUS NTAPI RtlCreateServiceSid (_In_ PUNICODE_STRING ServiceName, _Out_writes_bytes_opt_(*ServiceSidLength) PSID ServiceSid, _Inout_ PULONG ServiceSidLength)
 
NTSYSAPI LONG NTAPI RtlCompareAltitudes (_In_ PCUNICODE_STRING Altitude1, _In_ PCUNICODE_STRING Altitude2)
 
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG _In_reads_bytes_ (UnicodeStringByteCount) PCWCH UnicodeStringSource
 
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG _In_reads_bytes_ (UTF8StringByteCount) PCCH UTF8StringSource
 
NTSYSAPI ULONG64 NTAPI RtlGetEnabledExtendedFeatures (IN ULONG64 FeatureMask)
 
 __drv_allocatesMem (Mem)) PRTL_DYNAMIC_HASH_TABLE *HashTable
 
NTSYSAPI VOID NTAPI RtlDeleteHashTable (_In_ _When_((HashTable->Flags &RTL_HASH_ALLOCATED_HEADER), __drv_freesMem(Mem) _Post_invalid_) PRTL_DYNAMIC_HASH_TABLE HashTable)
 
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)
 
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 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)
 
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlGetNextEntryHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _In_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
 
NTSYSAPI BOOLEAN NTAPI RtlInitEnumerationHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Out_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlEnumerateEntryHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
NTSYSAPI VOID NTAPI RtlEndEnumerationHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
NTSYSAPI BOOLEAN NTAPI RtlInitWeakEnumerationHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Out_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
_Must_inspect_result_ NTSYSAPI PRTL_DYNAMIC_HASH_TABLE_ENTRY NTAPI RtlWeaklyEnumerateEntryHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
NTSYSAPI VOID NTAPI RtlEndWeakEnumerationHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable, _Inout_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
NTSYSAPI BOOLEAN NTAPI RtlExpandHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
NTSYSAPI BOOLEAN NTAPI RtlContractHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
NTSYSAPI NTSTATUS NTAPI RtlCreateVirtualAccountSid (_In_ PCUNICODE_STRING Name, _In_ ULONG BaseSubAuthority, _Out_writes_bytes_(*SidLength) PSID Sid, _Inout_ PULONG SidLength)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlConvertUlongToLargeInteger (_In_ ULONG UnsignedInteger)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerShiftLeft (_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerShiftRight (_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
 
static __inline ULONG NTAPI_INLINE RtlEnlargedUnsignedDivide (_In_ ULARGE_INTEGER Dividend, _In_ ULONG Divisor, _Out_opt_ PULONG Remainder)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerNegate (_In_ LARGE_INTEGER Subtrahend)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerSubtract (_In_ LARGE_INTEGER Minuend, _In_ LARGE_INTEGER Subtrahend)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlEnlargedUnsignedMultiply (_In_ ULONG Multiplicand, _In_ ULONG Multiplier)
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlEnlargedIntegerMultiply (_In_ LONG Multiplicand, _In_ LONG Multiplier)
 
 _At_ (AnsiString->Buffer, _Post_equal_to_(Buffer)) _At_(AnsiString -> Length, _Post_equal_to_(0)) _At_(AnsiString->MaximumLength, _Post_equal_to_(BufferSize)) FORCEINLINE VOID RtlInitEmptyAnsiString(_Out_ PANSI_STRING AnsiString, _Pre_maybenull_ _Pre_readable_size_(BufferSize) __drv_aliasesMem PCHAR Buffer, _In_ USHORT BufferSize)
 
 _At_ (UnicodeString->Buffer, _Post_equal_to_(Buffer)) _At_(UnicodeString -> Length, _Post_equal_to_(0)) _At_(UnicodeString->MaximumLength, _Post_equal_to_(BufferSize)) FORCEINLINE VOID RtlInitEmptyUnicodeString(_Out_ PUNICODE_STRING UnicodeString, _Writable_bytes_(BufferSize) _When_(BufferSize !=0
 
static __inline LARGE_INTEGER NTAPI_INLINE RtlLargeIntegerArithmeticShift (_In_ LARGE_INTEGER LargeInteger, _In_ CCHAR ShiftCount)
 
FORCEINLINE PVOID RtlSecureZeroMemory (_Out_writes_bytes_all_(Size) PVOID Pointer, _In_ SIZE_T Size)
 
FORCEINLINE VOID InitializeSListHead (_Out_ PSLIST_HEADER SListHead)
 
BOOLEAN RTLVERLIB_DDI() RtlIsNtDdiVersionAvailable (_In_ ULONG Version)
 
BOOLEAN RTLVERLIB_DDI() RtlIsServicePackVersionInstalled (_In_ ULONG Version)
 
FORCEINLINE LUID NTAPI_INLINE RtlConvertUlongToLuid (_In_ ULONG Val)
 
NTSYSAPI VOID NTAPI RtlGetCallersAddress (_Out_ PVOID *CallersAddress, _Out_ PVOID *CallersCaller)
 
FORCEINLINE VOID NTAPI RtlInitHashTableContext (_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
 
FORCEINLINE VOID NTAPI RtlInitHashTableContextFromEnumerator (_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context, _In_ PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
 
FORCEINLINE VOID NTAPI RtlReleaseHashTableContext (_Inout_ PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
 
FORCEINLINE ULONG NTAPI RtlTotalBucketsHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
FORCEINLINE ULONG NTAPI RtlNonEmptyBucketsHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
FORCEINLINE ULONG NTAPI RtlEmptyBucketsHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
FORCEINLINE ULONG NTAPI RtlTotalEntriesHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 
FORCEINLINE ULONG NTAPI RtlActiveEnumeratorsHashTable (_In_ PRTL_DYNAMIC_HASH_TABLE HashTable)
 

Variables

_Out_ GUIDGuid
 
_In_ ULONG StartingIndex
 
_In_ ULONG _In_ ULONG Length
 
_Out_ _Inout_ PUNICODE_STRING DestinationString
 
_Out_ _Inout_ PUNICODE_STRING _In_ PANSI_STRING SourceString
 
_Out_ _Inout_ PUNICODE_STRING _In_ PANSI_STRING _In_ BOOLEAN AllocateDestinationString
 
_In_ PWSTR Path
 
_In_ PCUNICODE_STRING String2
 
_In_ PCUNICODE_STRING _In_ BOOLEAN CaseInSensitive
 
_In_ SIZE_T String1Length
 
_In_ SIZE_T _In_ SIZE_T String2Length
 
_In_ ULONG Revision
 
_In_ PCWSTR _In_z_ PCWSTR ValueName
 
_In_ ULONG NumberToFind
 
_In_ ULONG _In_ ULONG HintIndex
 
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
 
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE QueryTable
 
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE _In_opt_ PVOID Context
 
_In_ PCWSTR _Inout_ _At_ QueryTable _Pre_unknown_ PRTL_QUERY_REGISTRY_TABLE _In_opt_ PVOID _In_opt_ PVOID Environment
 
_In_ BOOLEAN DaclPresent
 
_In_ BOOLEAN _In_opt_ PACL Dacl
 
_In_ BOOLEAN _In_opt_ PACL _In_opt_ BOOLEAN DaclDefaulted
 
_Out_ PLARGE_INTEGER Time
 
_In_opt_ ULONG Base
 
_In_opt_ ULONG _Out_ PULONG Value
 
_In_ ULONG SecurityDescriptorLength
 
_In_ ULONG _In_ SECURITY_INFORMATION RequiredInformation
 
_In_ ULONG TypeMask
 
_In_ ULONG _In_ ULONGLONG ConditionMask
 
_In_ PCWSTR _In_z_ PCWSTR _In_ ULONG ValueType
 
_In_ PCWSTR _In_z_ PCWSTR _In_ ULONG _In_ ULONG ValueLength
 
_In_ PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
 
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
 
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE FreeRoutine
 
_In_ PRTL_GENERIC_COMPARE_ROUTINE _In_ PRTL_GENERIC_ALLOCATE_ROUTINE _In_ PRTL_GENERIC_FREE_ROUTINE _In_opt_ PVOID TableContext
 
_In_ PGENERIC_MAPPING GenericMapping
 
_Out_ PUNICODE_STRING DosName
 
_In_opt_ ULONG Flags
 
_In_opt_ ULONG _In_ SIZE_T Size
 
_In_opt_ ULONG _In_ _Post_invalid_ PVOID BaseAddress
 
_In_ const STRING _In_ BOOLEAN CaseInsensitive
 
_In_ const STRINGSource
 
*BytesInUnicodeString PWCH UnicodeString
 
*BytesInUnicodeString PWCH _In_ ULONG MaxBytesInUnicodeString
 
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG BytesInUnicodeString
 
*BytesInUnicodeString PWCH _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInMultiByteString
 
*BytesInMultiByteString PCHAR MultiByteString
 
*BytesInMultiByteString PCHAR _In_ ULONG MaxBytesInMultiByteString
 
*BytesInUnicodeString PWSTR _In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInOemString
 
*BytesInOemString PCHAR OemString
 
*BytesInOemString PCHAR _In_ ULONG MaxBytesInOemString
 
_In_ BOOLEAN AllowExtendedCharacters
 
_In_ BOOLEAN _Inout_ PGENERATE_NAME_CONTEXT _Inout_ PUNICODE_STRING Name8dot3
 
_Inout_opt_ POEM_STRING OemName
 
_Inout_opt_ POEM_STRING _Out_opt_ PBOOLEAN NameContainsSpaces
 
_In_ __drv_aliasesMem PSTRING Prefix
 
_In_ __drv_aliasesMem PSTRING _Out_ PPREFIX_TABLE_ENTRY PrefixTableEntry
 
_In_ PSTRING FullName
 
_In_ PUNICODE_STRING _In_ ULONG CaseInsensitiveIndex
 
_In_ BOOLEAN Restart
 
_Out_ PULONG ElapsedSeconds
 
_In_ PSID Sid2
 
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
 
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
 
_In_ PSID SourceSid
 
_In_ PSID Sid
 
_In_ PLUID SourceLuid
 
_In_ ULONG AclLength
 
_In_ ULONG _In_ ULONG AclRevision
 
_In_ ULONG AceRevision
 
_In_ ULONG _In_ ULONG StartingAceIndex
 
_In_ ULONG _In_ ULONG _In_ ULONG AceListLength
 
_In_ ULONG AceIndex
 
_In_ ULONG _In_ ACCESS_MASK AccessMask
 
_In_ ULONG _In_ ULONG AceFlags
 
_In_opt_ PSID Owner
 
_In_opt_ PSID _In_opt_ BOOLEAN OwnerDefaulted
 
_In_ ULONG _Out_opt_ PULONG _In_ ULONG BytesInCustomCPString
 
_In_ ULONG MaxBytesInCustomCPString
 
_Out_ PCPTABLEINFO CodePageTable
 
_In_ BOOLEAN _In_ ULONG HashAlgorithm
 
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
 
_In_opt_ PVOID HeapBase
 
_In_opt_ PVOID _In_opt_ SIZE_T ReserveSize
 
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T CommitSize
 
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T _In_opt_ PVOID Lock
 
_In_opt_ PVOID _In_opt_ SIZE_T _In_opt_ SIZE_T _In_opt_ PVOID _In_opt_ PRTL_HEAP_PARAMETERS Parameters
 
_In_ ULONG UncompressedBufferSize
 
_In_ ULONG _In_ ULONG CompressedBufferSize
 
_In_ ULONG _In_ ULONG _Out_ PULONG FinalUncompressedSize
 
_In_ ULONG UncompressedFragmentSize
 
_In_ ULONG _In_ ULONG _Out_ PULONG _In_ PVOID WorkSpace
 
_Inout_ PUCHARCompressedBuffer
 
_Inout_ PUCHAR _In_ PUCHAR EndOfCompressedBufferPlus1
 
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHARChunkBuffer
 
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR _Out_ PULONG ChunkSize
 
_In_ ULONG _In_ ULONG _In_ ULONG CompressedTailSize
 
_In_ ULONG _In_ ULONG _In_ ULONG _In_ PCOMPRESSED_DATA_INFO CompressedDataInfo
 
_Out_ PBOOLEAN SaclPresent
 
_Out_ PBOOLEAN _Out_ PACLSacl
 
_Out_ PBOOLEAN _Out_ PACL _Out_ PBOOLEAN SaclDefaulted
 
_In_opt_ PSID Group
 
_In_opt_ PSID _In_opt_ BOOLEAN GroupDefaulted
 
_Out_writes_bytes_to_opt_ BufferLength PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor
 
_Out_writes_bytes_to_opt_ BufferLength PSECURITY_DESCRIPTOR _Inout_ PULONG BufferLength
 
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
 
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG AbsoluteSecurityDescriptorSize
 
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG DaclSize
 
_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
 
_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
 
_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
 
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID _Inout_ PULONG _Out_writes_bytes_to_opt_ PrimaryGroupSize PSID _Inout_ PULONG PrimaryGroupSize
 
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN InitFn
 
_In_ __inner_callback PRTL_RUN_ONCE_INIT_FN _Inout_opt_ PVOID Parameter
 
_In_ PCWSTR _In_ LONG SourceStringLength
 
_In_ PCWSTR _In_ LONG _Out_writes_to_ DestinationStringLength PWSTR _Inout_ PLONG DestinationStringLength
 
*UTF8StringActualByteCount PCHAR UTF8StringDestination
 
*UTF8StringActualByteCount PCHAR _In_ ULONG UTF8StringMaxByteCount
 
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG UTF8StringActualByteCount
 
*UTF8StringActualByteCount PCHAR _In_ ULONG _Out_ PULONG _In_ ULONG UnicodeStringByteCount
 
*UnicodeStringActualByteCount PWSTR UnicodeStringDestination
 
*UnicodeStringActualByteCount PWSTR _In_ ULONG UnicodeStringMaxByteCount
 
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG UnicodeStringActualByteCount
 
*UnicodeStringActualByteCount PWSTR _In_ ULONG _Out_ PULONG _In_ ULONG UTF8StringByteCount
 
_In_ ULONG Shift
 
_In_ PSID OldSid
 
_In_ PSID _In_ PSID NewSid
 
_In_ PSID _In_ PSID _Out_ ULONGNumChanges
 
_Notnull_ __drv_aliasesMem PWSTR Buffer = Buffer
 
_Notnull_ __drv_aliasesMem PWSTR _In_ USHORT BufferSize
 
UnicodeString MaximumLength = BufferSize
 
_In_ LARGE_INTEGER Divisor
 
_In_ LARGE_INTEGER _Out_opt_ PLARGE_INTEGER Remainder
 
_In_ LARGE_INTEGER Addend2
 
ret QuadPart = Addend1.QuadPart + Addend2.QuadPart
 
return ret
 

Macro Definition Documentation

◆ __assert_annotationA

#define __assert_annotationA (   msg)    DbgPrint("Assertion failed at %s(%d): %s\n", __FILE__, __LINE__, msg)

Definition at line 3207 of file rtlfuncs.h.

◆ __assert_annotationW

#define __assert_annotationW (   msg)    DbgPrint("Assertion failed at %s(%d): %S\n", __FILE__, __LINE__, msg)

Definition at line 3209 of file rtlfuncs.h.

◆ ASSERT

#define ASSERT (   exp)    ((void)0)

Definition at line 3277 of file rtlfuncs.h.

◆ ASSERTMSG

#define ASSERTMSG (   msg,
  exp 
)    ((void)0)

Definition at line 3278 of file rtlfuncs.h.

◆ FAST_FAIL_CORRUPT_LIST_ENTRY

#define FAST_FAIL_CORRUPT_LIST_ENTRY   3

◆ FAST_FAIL_FATAL_APP_EXIT

#define FAST_FAIL_FATAL_APP_EXIT   7

◆ FAST_FAIL_GS_COOKIE_INIT

#define FAST_FAIL_GS_COOKIE_INIT   6

◆ FAST_FAIL_GUARD_ICALL_CHECK_FAILURE

#define FAST_FAIL_GUARD_ICALL_CHECK_FAILURE   10

◆ FAST_FAIL_GUARD_WRITE_CHECK_FAILURE

#define FAST_FAIL_GUARD_WRITE_CHECK_FAILURE   11

◆ FAST_FAIL_INCORRECT_STACK

#define FAST_FAIL_INCORRECT_STACK   4

◆ FAST_FAIL_INVALID_ARG

#define FAST_FAIL_INVALID_ARG   5

◆ FAST_FAIL_INVALID_FAST_FAIL_CODE

#define FAST_FAIL_INVALID_FAST_FAIL_CODE   0xFFFFFFFF

◆ FAST_FAIL_INVALID_FIBER_SWITCH

#define FAST_FAIL_INVALID_FIBER_SWITCH   12

◆ FAST_FAIL_INVALID_JUMP_BUFFER

#define FAST_FAIL_INVALID_JUMP_BUFFER   18

◆ FAST_FAIL_INVALID_REFERENCE_COUNT

#define FAST_FAIL_INVALID_REFERENCE_COUNT   14

◆ FAST_FAIL_INVALID_SET_OF_CONTEXT

#define FAST_FAIL_INVALID_SET_OF_CONTEXT   13

◆ FAST_FAIL_LEGACY_GS_VIOLATION

#define FAST_FAIL_LEGACY_GS_VIOLATION   0

◆ FAST_FAIL_MRDATA_MODIFIED

#define FAST_FAIL_MRDATA_MODIFIED   19

◆ FAST_FAIL_RANGE_CHECK_FAILURE

#define FAST_FAIL_RANGE_CHECK_FAILURE   8

◆ FAST_FAIL_STACK_COOKIE_CHECK_FAILURE

#define FAST_FAIL_STACK_COOKIE_CHECK_FAILURE   2

◆ FAST_FAIL_UNSAFE_REGISTRY_ACCESS

#define FAST_FAIL_UNSAFE_REGISTRY_ACCESS   9

◆ FAST_FAIL_VTGUARD_CHECK_FAILURE

#define FAST_FAIL_VTGUARD_CHECK_FAILURE   1

◆ FIRSTBYTE

#define FIRSTBYTE (   VALUE)    ((VALUE) & LOWBYTE_MASK)

Definition at line 795 of file rtlfuncs.h.

◆ FOURTHBYTE

#define FOURTHBYTE (   VALUE)    (((VALUE) >> 24) & LOWBYTE_MASK)

Definition at line 798 of file rtlfuncs.h.

◆ InitializeListHead32

#define InitializeListHead32 (   ListHead)
Value:
(\
(ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
#define PtrToUlong(u)
Definition: config.h:107

Definition at line 3328 of file rtlfuncs.h.

◆ InterlockedFlushSList

#define InterlockedFlushSList (   SListHead)    ExpInterlockedFlushSList(SListHead)

Definition at line 3397 of file rtlfuncs.h.

◆ InterlockedPopEntrySList

#define InterlockedPopEntrySList (   SListHead)    ExpInterlockedPopEntrySList(SListHead)

Definition at line 3394 of file rtlfuncs.h.

◆ InterlockedPushEntrySList

#define InterlockedPushEntrySList (   SListHead,
  SListEntry 
)    ExpInterlockedPushEntrySList(SListHead, SListEntry)

Definition at line 3391 of file rtlfuncs.h.

◆ LONG_MASK

#define LONG_MASK   (LONG_SIZE - 1)

Definition at line 791 of file rtlfuncs.h.

◆ LONG_SIZE

#define LONG_SIZE   (sizeof(LONG))

Definition at line 789 of file rtlfuncs.h.

◆ LONGLONG_MASK

#define LONGLONG_MASK   (LONGLONG_SIZE - 1)

Definition at line 792 of file rtlfuncs.h.

◆ LONGLONG_SIZE

#define LONGLONG_SIZE   (sizeof(LONGLONG))

Definition at line 790 of file rtlfuncs.h.

◆ LOWBYTE_MASK

#define LOWBYTE_MASK   0x00FF

Definition at line 793 of file rtlfuncs.h.

◆ NT_ANALYSIS_ASSUME

#define NT_ANALYSIS_ASSUME (   _exp)    __noop(_exp)

Definition at line 3218 of file rtlfuncs.h.

◆ NT_ASSERT

#define NT_ASSERT   NT_ASSERT_NOASSUME

Definition at line 3312 of file rtlfuncs.h.

◆ NT_ASSERT_ACTION

#define NT_ASSERT_ACTION (   exp)
Value:
((!(exp)) ? \
DbgRaiseAssertionFailure(), FALSE) : TRUE))
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define __assert_annotationA(msg)
Definition: rtlfuncs.h:3207
#define NT_ANALYSIS_ASSUME(_exp)
Definition: rtlfuncs.h:3218
DWORD exp
Definition: msg.c:16033

Definition at line 3221 of file rtlfuncs.h.

◆ NT_ASSERT_ASSUME

#define NT_ASSERT_ASSUME (   exp)    (NT_ANALYSIS_ASSUME(exp), (void)0)

Definition at line 3293 of file rtlfuncs.h.

◆ NT_ASSERT_NOASSUME

#define NT_ASSERT_NOASSUME (   exp)    ((void)0)

Definition at line 3297 of file rtlfuncs.h.

◆ NT_ASSERTMSG

#define NT_ASSERTMSG   NT_ASSERTMSG_NOASSUME

Definition at line 3313 of file rtlfuncs.h.

◆ NT_ASSERTMSG_ACTION

#define NT_ASSERTMSG_ACTION (   msg,
  exp 
)
Value:
((!(exp)) ? \
DbgRaiseAssertionFailure(), FALSE) : TRUE))
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define __assert_annotationA(msg)
Definition: rtlfuncs.h:3207
#define NT_ANALYSIS_ASSUME(_exp)
Definition: rtlfuncs.h:3218
DWORD exp
Definition: msg.c:16033
#define msg(x)
Definition: auth_time.c:54

Definition at line 3227 of file rtlfuncs.h.

◆ NT_ASSERTMSG_ASSUME

#define NT_ASSERTMSG_ASSUME (   msg,
  exp 
)    (NT_ANALYSIS_ASSUME(exp), (void)0)

Definition at line 3294 of file rtlfuncs.h.

◆ NT_ASSERTMSG_NOASSUME

#define NT_ASSERTMSG_NOASSUME (   msg,
  exp 
)    ((void)0)

Definition at line 3298 of file rtlfuncs.h.

◆ NT_ASSERTMSGW

#define NT_ASSERTMSGW   NT_ASSERTMSGW_NOASSUME

Definition at line 3314 of file rtlfuncs.h.

◆ NT_ASSERTMSGW_ACTION

#define NT_ASSERTMSGW_ACTION (   msg,
  exp 
)
Value:
((!(exp)) ? \
DbgRaiseAssertionFailure(), FALSE) : TRUE))
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_ANALYSIS_ASSUME(_exp)
Definition: rtlfuncs.h:3218
#define __assert_annotationW(msg)
Definition: rtlfuncs.h:3209
DWORD exp
Definition: msg.c:16033
#define msg(x)
Definition: auth_time.c:54

Definition at line 3233 of file rtlfuncs.h.

◆ NT_ASSERTMSGW_ASSUME

#define NT_ASSERTMSGW_ASSUME (   msg,
  exp 
)    (NT_ANALYSIS_ASSUME(exp), (void)0)

Definition at line 3295 of file rtlfuncs.h.

◆ NT_ASSERTMSGW_NOASSUME

#define NT_ASSERTMSGW_NOASSUME (   msg,
  exp 
)    ((void)0)

Definition at line 3299 of file rtlfuncs.h.

◆ NT_FRE_ASSERT

#define NT_FRE_ASSERT   (void)NT_ASSERT_ACTION

Definition at line 3303 of file rtlfuncs.h.

◆ NT_FRE_ASSERTMSG

#define NT_FRE_ASSERTMSG   (void)NT_ASSERTMSG_ACTION

Definition at line 3304 of file rtlfuncs.h.

◆ NT_FRE_ASSERTMSGW

#define NT_FRE_ASSERTMSGW   (void)NT_ASSERTMSGW_ACTION

Definition at line 3305 of file rtlfuncs.h.

◆ NT_VERIFY

#define NT_VERIFY (   exp)    (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))

Definition at line 3289 of file rtlfuncs.h.

◆ NT_VERIFYMSG

#define NT_VERIFYMSG (   msg,
  exp 
)    (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))

Definition at line 3290 of file rtlfuncs.h.

◆ NT_VERIFYMSGW

#define NT_VERIFYMSGW (   msg,
  exp 
)    (NT_ANALYSIS_ASSUME(exp), ((exp) ? TRUE : FALSE))

Definition at line 3291 of file rtlfuncs.h.

◆ QueryDepthSList

#define QueryDepthSList (   SListHead)    ExQueryDepthSList(SListHead)

Definition at line 3402 of file rtlfuncs.h.

◆ RTL_CONTEXT_CHUNK

#define RTL_CONTEXT_CHUNK (   Context,
  Chunk 
)
Value:
(PCONTEXT_EX)(Context + 1), \
Chunk)
#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk)
Definition: rtlfuncs.h:3409

Definition at line 3415 of file rtlfuncs.h.

◆ RTL_CONTEXT_EX_CHUNK

#define RTL_CONTEXT_EX_CHUNK (   Base,
  Layout,
  Chunk 
)    ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))

Definition at line 3409 of file rtlfuncs.h.

◆ RTL_CONTEXT_EX_LENGTH

#define RTL_CONTEXT_EX_LENGTH (   ContextEx,
  Chunk 
)    ((ContextEx)->Chunk.Length)

Definition at line 3408 of file rtlfuncs.h.

◆ RTL_CONTEXT_EX_OFFSET

#define RTL_CONTEXT_EX_OFFSET (   ContextEx,
  Chunk 
)    ((ContextEx)->Chunk.Offset)

Definition at line 3407 of file rtlfuncs.h.

◆ RTL_CONTEXT_LENGTH

#define RTL_CONTEXT_LENGTH (   Context,
  Chunk 
)    RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)

Definition at line 3413 of file rtlfuncs.h.

◆ RTL_CONTEXT_OFFSET

#define RTL_CONTEXT_OFFSET (   Context,
  Chunk 
)    RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)

Definition at line 3411 of file rtlfuncs.h.

◆ RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING

#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING   2

◆ RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE

#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE   1

◆ RTL_SOFT_ASSERT

#define RTL_SOFT_ASSERT (   exp)    ((void)0)

Definition at line 3280 of file rtlfuncs.h.

◆ RTL_SOFT_ASSERTMSG

#define RTL_SOFT_ASSERTMSG (   msg,
  exp 
)    ((void)0)

Definition at line 3281 of file rtlfuncs.h.

◆ RTL_SOFT_VERIFY

#define RTL_SOFT_VERIFY (   exp)    ((exp) ? TRUE : FALSE)

Definition at line 3286 of file rtlfuncs.h.

◆ RTL_SOFT_VERIFYMSG

#define RTL_SOFT_VERIFYMSG (   msg,
  exp 
)    ((exp) ? TRUE : FALSE)

Definition at line 3287 of file rtlfuncs.h.

◆ RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT

#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT   8

Definition at line 1177 of file rtlfuncs.h.

◆ RTL_STATIC_LIST_HEAD

#define RTL_STATIC_LIST_HEAD (   x)    LIST_ENTRY x = { &x, &x }

Definition at line 44 of file rtlfuncs.h.

◆ RTL_VERIFY

#define RTL_VERIFY (   exp)    ((exp) ? TRUE : FALSE)

Definition at line 3283 of file rtlfuncs.h.

◆ RTL_VERIFYMSG

#define RTL_VERIFYMSG (   msg,
  exp 
)    ((exp) ? TRUE : FALSE)

Definition at line 3284 of file rtlfuncs.h.

◆ RtlAnsiStringToUnicodeSize

#define RtlAnsiStringToUnicodeSize (   String)
Value:
( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxAnsiStringToUnicodeSize(String) : \
)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2430
#define ANSI_NULL
__wchar_t WCHAR
Definition: xmlstorage.h:180

Definition at line 426 of file rtlfuncs.h.

◆ RtlCheckBit

#define RtlCheckBit (   BMH,
  BP 
)    (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)

Definition at line 3154 of file rtlfuncs.h.

◆ RtlCopyBytes

#define RtlCopyBytes   RtlCopyMemory

Definition at line 282 of file rtlfuncs.h.

◆ RtlCopyMemory

#define RtlCopyMemory (   Destination,
  Source,
  Length 
)    memcpy(Destination, Source, Length)

Definition at line 279 of file rtlfuncs.h.

◆ RtlCopyMemoryNonTemporal

#define RtlCopyMemoryNonTemporal   RtlCopyMemory

Definition at line 293 of file rtlfuncs.h.

◆ RtlEqualLuid

#define RtlEqualLuid (   Luid1,
  Luid2 
)    (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))

Definition at line 301 of file rtlfuncs.h.

◆ RtlEqualMemory

#define RtlEqualMemory (   Destination,
  Source,
  Length 
)    (!memcmp(Destination, Source, Length))

Definition at line 310 of file rtlfuncs.h.

◆ RtlFillBytes

#define RtlFillBytes   RtlFillMemory

Definition at line 322 of file rtlfuncs.h.

◆ RtlFillMemory

#define RtlFillMemory (   Destination,
  Length,
  Fill 
)    memset(Destination, Fill, Length)

Definition at line 319 of file rtlfuncs.h.

◆ RtlInitializeSplayLinks

#define RtlInitializeSplayLinks (   Links)
Value:
{ \
PRTL_SPLAY_LINKS _SplayLinks; \
_SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
_SplayLinks->Parent = _SplayLinks; \
_SplayLinks->LeftChild = NULL; \
_SplayLinks->RightChild = NULL; \
}
#define NULL
Definition: types.h:112
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS

◆ RtlInsertAsLeftChild

#define RtlInsertAsLeftChild (   ParentLinks,
  ChildLinks 
)
Value:
{ \
PRTL_SPLAY_LINKS _SplayParent; \
PRTL_SPLAY_LINKS _SplayChild; \
_SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
_SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
_SplayParent->LeftChild = _SplayChild; \
_SplayChild->Parent = _SplayParent; \
}
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS

◆ RtlInsertAsRightChild

#define RtlInsertAsRightChild (   ParentLinks,
  ChildLinks 
)
Value:
{ \
PRTL_SPLAY_LINKS _SplayParent; \
PRTL_SPLAY_LINKS _SplayChild; \
_SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
_SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
_SplayParent->RightChild = _SplayChild; \
_SplayChild->Parent = _SplayParent; \
}
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS

◆ RtlInterlockedAndBits

#define RtlInterlockedAndBits (   Flags,
  Flag 
)    InterlockedAnd((PLONG)(Flags), Flag)

Definition at line 3439 of file rtlfuncs.h.

◆ RtlInterlockedAndBitsDiscardReturn

#define RtlInterlockedAndBitsDiscardReturn (   Flags,
  Flag 
)    (VOID) RtlInterlockedAndBits(Flags, Flag)

Definition at line 3451 of file rtlfuncs.h.

◆ RtlInterlockedClearBits

#define RtlInterlockedClearBits (   Flags,
  Flag 
)    RtlInterlockedAndBits(Flags, ~(Flag))

Definition at line 3442 of file rtlfuncs.h.

◆ RtlInterlockedClearBitsDiscardReturn

#define RtlInterlockedClearBitsDiscardReturn (   Flags,
  Flag 
)    RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))

Definition at line 3454 of file rtlfuncs.h.

◆ RtlInterlockedSetBits

#define RtlInterlockedSetBits (   Flags,
  Flag 
)    InterlockedOr((PLONG)(Flags), Flag)

Definition at line 3436 of file rtlfuncs.h.

◆ RtlInterlockedSetBitsDiscardReturn

#define RtlInterlockedSetBitsDiscardReturn (   Flags,
  Flag 
)    (VOID) RtlInterlockedSetBits(Flags, Flag)

Definition at line 3448 of file rtlfuncs.h.

◆ RtlInterlockedXorBits

#define RtlInterlockedXorBits (   Flags,
  Flag 
)    InterlockedXor(Flags, Flag)

Definition at line 3445 of file rtlfuncs.h.

◆ RtlIntPtrToUnicodeString

#define RtlIntPtrToUnicodeString (   Value,
  Base,
  String 
)    RtlIntegerToUnicodeString(Value, Base, String)

Definition at line 745 of file rtlfuncs.h.

◆ RtlIsLeftChild

#define RtlIsLeftChild (   Links)    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))

◆ RtlIsNtDdiVersionAvailable

#define RtlIsNtDdiVersionAvailable   WdmlibRtlIsNtDdiVersionAvailable

Definition at line 3429 of file rtlfuncs.h.

◆ RtlIsRightChild

#define RtlIsRightChild (   Links)    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))

◆ RtlIsRoot

#define RtlIsRoot (   Links)    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))

◆ RtlIsServicePackVersionInstalled

#define RtlIsServicePackVersionInstalled   WdmlibRtlIsServicePackVersionInstalled

Definition at line 3433 of file rtlfuncs.h.

◆ RtlIsZeroLuid

#define RtlIsZeroLuid (   _L1)    ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))

Definition at line 753 of file rtlfuncs.h.

◆ RtlLargeIntegerAnd

#define RtlLargeIntegerAnd (   Result,
  Source,
  Mask 
)    Result.QuadPart = Source.QuadPart & Mask.QuadPart

Definition at line 3101 of file rtlfuncs.h.

◆ RtlLargeIntegerEqualTo

#define RtlLargeIntegerEqualTo (   X,
  Y 
)    (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))

Definition at line 3122 of file rtlfuncs.h.

◆ RtlLargeIntegerEqualToZero

#define RtlLargeIntegerEqualToZero (   X)    ( !((X).LowPart | (X).HighPart) )

Definition at line 3188 of file rtlfuncs.h.

◆ RtlLargeIntegerGreaterOrEqualToZero

#define RtlLargeIntegerGreaterOrEqualToZero (   X)    ( (X).HighPart >= 0 )

Definition at line 3186 of file rtlfuncs.h.

◆ RtlLargeIntegerGreaterThan

#define RtlLargeIntegerGreaterThan (   X,
  Y 
)
Value:
( \
(((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
((X).HighPart > (Y).HighPart) \
)
#define Y(I)
#define X(b, s)

Definition at line 3157 of file rtlfuncs.h.

◆ RtlLargeIntegerGreaterThanOrEqualTo

#define RtlLargeIntegerGreaterThanOrEqualTo (   X,
  Y 
)
Value:
( \
(((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
((X).HighPart > (Y).HighPart) \
)
#define Y(I)
#define X(b, s)

Definition at line 3162 of file rtlfuncs.h.

◆ RtlLargeIntegerGreaterThanZero

#define RtlLargeIntegerGreaterThanZero (   X)
Value:
( \
(((X).HighPart == 0) && ((X).LowPart > 0)) || \
((X).HighPart > 0 ) \
)
#define X(b, s)

Definition at line 3181 of file rtlfuncs.h.

◆ RtlLargeIntegerLessOrEqualToZero

#define RtlLargeIntegerLessOrEqualToZero (   X)    ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )

Definition at line 3194 of file rtlfuncs.h.

◆ RtlLargeIntegerLessThan

#define RtlLargeIntegerLessThan (   X,
  Y 
)
Value:
( \
(((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
((X).HighPart < (Y).HighPart) \
)
#define Y(I)
#define X(b, s)

Definition at line 3171 of file rtlfuncs.h.

◆ RtlLargeIntegerLessThanOrEqualTo

#define RtlLargeIntegerLessThanOrEqualTo (   X,
  Y 
)
Value:
( \
(((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
((X).HighPart < (Y).HighPart) \
)
#define Y(I)
#define X(b, s)

Definition at line 3176 of file rtlfuncs.h.

◆ RtlLargeIntegerLessThanZero

#define RtlLargeIntegerLessThanZero (   X)    ( ((X).HighPart < 0) )

Definition at line 3192 of file rtlfuncs.h.

◆ RtlLargeIntegerNotEqualTo

#define RtlLargeIntegerNotEqualTo (   X,
  Y 
)
Value:
( \
(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
)
#define Y(I)
#define X(b, s)

Definition at line 3167 of file rtlfuncs.h.

◆ RtlLargeIntegerNotEqualToZero

#define RtlLargeIntegerNotEqualToZero (   X)    ( ((X).LowPart | (X).HighPart) )

Definition at line 3190 of file rtlfuncs.h.

◆ RtlLeftChild

#define RtlLeftChild (   Links)    ((PRTL_SPLAY_LINKS)(Links))->LeftChild

◆ RtlMoveMemory

#define RtlMoveMemory (   Destination,
  Source,
  Length 
)    memmove(Destination, Source, Length)

Definition at line 362 of file rtlfuncs.h.

◆ RtlOemStringToCountedUnicodeSize

#define RtlOemStringToCountedUnicodeSize (   STRING)
Value:
( \
)
#define UNICODE_NULL
std::wstring STRING
Definition: fontsub.cpp:33
#define RtlOemStringToUnicodeSize(STRING)
unsigned int ULONG
Definition: retypes.h:1

◆ RtlOemStringToUnicodeSize

#define RtlOemStringToUnicodeSize (   STRING)
Value:
( \
NLS_MB_OEM_CODE_PAGE_TAG ? \
RtlxOemStringToUnicodeSize(STRING) : \
)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
#define ANSI_NULL
__wchar_t WCHAR
Definition: xmlstorage.h:180
std::wstring STRING
Definition: fontsub.cpp:33

◆ RtlOffsetToPointer

#define RtlOffsetToPointer (   B,
  O 
)    ((PCHAR)(((PCHAR)(B)) + ((ULONG_PTR)(O))))

◆ RtlParent

#define RtlParent (   Links)    ((PRTL_SPLAY_LINKS)(Links))->Parent

◆ RtlPointerToOffset

#define RtlPointerToOffset (   B,
  P 
)    ((ULONG)(((PCHAR)(P)) - ((PCHAR)(B))))

◆ RtlRetrieveUlong

#define RtlRetrieveUlong (   DestAddress,
  SrcAddress 
)
Value:
if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
{ \
((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
} \
else \
{ \
*((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
}
unsigned char * PUCHAR
Definition: retypes.h:3
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define LONG_MASK
Definition: rtlfuncs.h:791
unsigned int * PULONG
Definition: retypes.h:1

Definition at line 909 of file rtlfuncs.h.

◆ RtlRetrieveUshort

#define RtlRetrieveUshort (   DestAddress,
  SrcAddress 
)
Value:
if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
{ \
((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
} \
else \
{ \
*((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
}
unsigned char * PUCHAR
Definition: retypes.h:3
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define LONG_MASK
Definition: rtlfuncs.h:791
unsigned short * PUSHORT
Definition: retypes.h:2

Definition at line 898 of file rtlfuncs.h.

◆ RtlRightChild

#define RtlRightChild (   Links)    ((PRTL_SPLAY_LINKS)(Links))->RightChild

◆ RtlStoreUlong

#define RtlStoreUlong (   Address,
  Value 
)
Value:
} \
else { \
*((PULONG)(Address)) = (ULONG) (Value); \
}
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2373
unsigned char * PUCHAR
Definition: retypes.h:3
#define FIRSTBYTE(VALUE)
Definition: rtlfuncs.h:795
uint32_t ULONG_PTR
Definition: typedefs.h:65
static WCHAR Address[46]
Definition: ping.c:68
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
unsigned char UCHAR
Definition: xmlstorage.h:181
#define LONG_LEAST_SIGNIFICANT_BIT
Definition: rtltypes.h:221
#define LONG_3RD_MOST_SIGNIFICANT_BIT
Definition: rtltypes.h:222
#define LONG_2ND_MOST_SIGNIFICANT_BIT
Definition: rtltypes.h:223
#define LONG_MASK
Definition: rtlfuncs.h:791
unsigned int * PULONG
Definition: retypes.h:1
#define FOURTHBYTE(VALUE)
Definition: rtlfuncs.h:798
unsigned int ULONG
Definition: retypes.h:1
#define THIRDBYTE(VALUE)
Definition: rtlfuncs.h:797
#define LONG_MOST_SIGNIFICANT_BIT
Definition: rtltypes.h:224
#define SECONDBYTE(VALUE)
Definition: rtlfuncs.h:796

Definition at line 868 of file rtlfuncs.h.

◆ RtlStoreUlonglong

#define RtlStoreUlonglong (   Address,
  Value 
)
Value:
RtlStoreUlong((ULONG_PTR)(Address), \
(ULONGLONG)(Value) & 0xFFFFFFFF); \
RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
(ULONGLONG)(Value) >> 32); \
} else { \
}
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2373
uint32_t ULONG_PTR
Definition: typedefs.h:65
static WCHAR Address[46]
Definition: ping.c:68
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
uint64_t ULONGLONG
Definition: typedefs.h:67
#define LONGLONG_MASK
Definition: rtlfuncs.h:792
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:384
unsigned int ULONG
Definition: retypes.h:1

Definition at line 879 of file rtlfuncs.h.

◆ RtlStoreUlongPtr

#define RtlStoreUlongPtr (   Address,
  Value 
)    RtlStoreUlong(Address,Value)

Definition at line 932 of file rtlfuncs.h.

◆ RtlStoreUshort

#define RtlStoreUshort (   Address,
  Value 
)
Value:
} \
else { \
*((PUSHORT) (Address)) = (USHORT)Value; \
}
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2373
#define SHORT_MOST_SIGNIFICANT_BIT
Definition: rtltypes.h:219
unsigned char * PUCHAR
Definition: retypes.h:3
#define FIRSTBYTE(VALUE)
Definition: rtlfuncs.h:795
#define SHORT_MASK
Definition: rtlfuncs.h:788
uint32_t ULONG_PTR
Definition: typedefs.h:65
static WCHAR Address[46]
Definition: ping.c:68
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
unsigned char UCHAR
Definition: xmlstorage.h:181
#define SHORT_LEAST_SIGNIFICANT_BIT
Definition: rtltypes.h:218
unsigned short USHORT
Definition: pedump.c:61
unsigned short * PUSHORT
Definition: retypes.h:2
#define SECONDBYTE(VALUE)
Definition: rtlfuncs.h:796

Definition at line 889 of file rtlfuncs.h.

◆ RtlUlongByteSwap

#define RtlUlongByteSwap (   _x)    _byteswap_ulong((_x))

Definition at line 3200 of file rtlfuncs.h.

◆ RtlUlonglongByteSwap

#define RtlUlonglongByteSwap (   _x)    _byteswap_uint64((_x))

Definition at line 3201 of file rtlfuncs.h.

◆ RtlUnicodeStringToAnsiSize

#define RtlUnicodeStringToAnsiSize (   String)
Value:
( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxUnicodeStringToAnsiSize(String) : \
)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2430
#define UNICODE_NULL
__wchar_t WCHAR
Definition: xmlstorage.h:180

Definition at line 1006 of file rtlfuncs.h.

◆ RtlUnicodeStringToOemSize

#define RtlUnicodeStringToOemSize (   STRING)
Value:
RtlxUnicodeStringToOemSize(STRING) : \
)
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
BOOLEAN NLS_MB_OEM_CODE_PAGE_TAG
#define UNICODE_NULL
__wchar_t WCHAR
Definition: xmlstorage.h:180
std::wstring STRING
Definition: fontsub.cpp:33

◆ RtlUshortByteSwap

#define RtlUshortByteSwap (   _x)    _byteswap_ushort((USHORT)(_x))

Definition at line 3199 of file rtlfuncs.h.

◆ RtlZeroBytes

#define RtlZeroBytes   RtlZeroMemory

Definition at line 383 of file rtlfuncs.h.

◆ RtlZeroMemory

#define RtlZeroMemory (   Destination,
  Length 
)    memset(Destination, 0, Length)

Definition at line 380 of file rtlfuncs.h.

◆ SECONDBYTE

#define SECONDBYTE (   VALUE)    (((VALUE) >> 8) & LOWBYTE_MASK)

Definition at line 796 of file rtlfuncs.h.

◆ SHORT_MASK

#define SHORT_MASK   (SHORT_SIZE - 1)

Definition at line 788 of file rtlfuncs.h.

◆ SHORT_SIZE

#define SHORT_SIZE   (sizeof(USHORT))

Definition at line 787 of file rtlfuncs.h.

◆ THIRDBYTE

#define THIRDBYTE (   VALUE)    (((VALUE) >> 16) & LOWBYTE_MASK)

Definition at line 797 of file rtlfuncs.h.

Function Documentation

◆ $endif() [1/3]

$endif ( _WDMDDK_  )

Definition at line 3457 of file rtlfuncs.h.

3477  { \
3478  PRTL_SPLAY_LINKS _SplayLinks; \
3479  _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
3480  _SplayLinks->Parent = _SplayLinks; \
3481  _SplayLinks->LeftChild = NULL; \
3482  _SplayLinks->RightChild = NULL; \
3483 }
3484 
3485 #define RtlIsLeftChild(Links) \
3486  (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3487 
3488 #define RtlIsRightChild(Links) \
3489  (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
3490 
3491 #define RtlRightChild(Links) \
3492  ((PRTL_SPLAY_LINKS)(Links))->RightChild
3493 
3494 #define RtlIsRoot(Links) \
3495  (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
3496 
3497 #define RtlLeftChild(Links) \
3498  ((PRTL_SPLAY_LINKS)(Links))->LeftChild
3499 
3500 #define RtlParent(Links) \
3501  ((PRTL_SPLAY_LINKS)(Links))->Parent
3502 
3503 #define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
3504  { \
3505  PRTL_SPLAY_LINKS _SplayParent; \
3506  PRTL_SPLAY_LINKS _SplayChild; \
3507  _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3508  _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3509  _SplayParent->LeftChild = _SplayChild; \
3510  _SplayChild->Parent = _SplayParent; \
3511  }
3512 
3513 #define RtlInsertAsRightChild(ParentLinks,ChildLinks) \
3514  { \
3515  PRTL_SPLAY_LINKS _SplayParent; \
3516  PRTL_SPLAY_LINKS _SplayChild; \
3517  _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
3518  _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
3519  _SplayParent->RightChild = _SplayChild; \
3520  _SplayChild->Parent = _SplayParent; \
3521  }
3522 
3523 #if !defined(MIDL_PASS)
3524 
3526 LUID
3528 RtlConvertLongToLuid(
3529  _In_ LONG Val)
3530 {
3531  LUID Luid;
3532  LARGE_INTEGER Temp;
3533 
3534  Temp.QuadPart = Val;
3535  Luid.LowPart = Temp.u.LowPart;
3536  Luid.HighPart = Temp.u.HighPart;
3537  return Luid;
3538 }
long LONG
Definition: pedump.c:60
DWORD LowPart
#define NTAPI_INLINE
Definition: umtypes.h:68
LONG HighPart
struct _LARGE_INTEGER::@2277 u
#define _In_
Definition: no_sal2.h:158
#define FORCEINLINE
Definition: wdftypes.h:67
#define NULL
Definition: types.h:112
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS
LONGLONG QuadPart
Definition: typedefs.h:114

◆ $endif() [2/3]

$endif ( _NTDDK_  )

Definition at line 2490 of file iofuncs.h.

2498 {
2499  PriorityInfo->Size = sizeof(IO_PRIORITY_INFO);
2500  PriorityInfo->ThreadPriority = 0xffff;
2501  PriorityInfo->IoPriority = IoPriorityNormal;
2502  PriorityInfo->PagePriority = 0;
2503 }
struct _IO_PRIORITY_INFO IO_PRIORITY_INFO
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2653

◆ $endif() [3/3]

$endif ( _NTIFS_  )

Definition at line 2827 of file rtlfuncs.h.

2841 {
2843  ret.QuadPart = SignedInteger;
2844  return ret;
2845 }
return ret
Definition: rtlfuncs.h:3092

◆ $if()

$if ( _WDMDDK_  )

Kernel definitions for AMD64

Kernel definitions for ARM

Definition at line 5 of file rtlfuncs.h.

30 {
31  __fastfail(Code);
32 }
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
Definition: wdfdevice.h:1697

◆ __drv_allocatesMem()

__drv_allocatesMem ( Mem  )

Definition at line 1476 of file exfuncs.h.

1484 {
1485  PVOID Entry;
1486 
1487  Lookaside->L.TotalAllocates++;
1488 #ifdef NONAMELESSUNION
1489 #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
1490  Entry = ExInterlockedPopEntrySList(&Lookaside->L.u.ListHead,
1491  &Lookaside->Lock__ObsoleteButDoNotDelete);
1492 #else
1493  Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
1494 #endif
1495  if (Entry == NULL) {
1496  Lookaside->L.u2.AllocateMisses++;
1497  Entry = (Lookaside->L.u4.Allocate)(Lookaside->L.Type,
1498  Lookaside->L.Size,
1499  Lookaside->L.Tag);
1500  }
1501 #else /* NONAMELESSUNION */
1502 #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
1504  &Lookaside->Lock__ObsoleteButDoNotDelete);
1505 #else
1506  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
1507 #endif
1508  if (Entry == NULL) {
1509  Lookaside->L.AllocateMisses++;
1510  Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
1511  Lookaside->L.Size,
1512  Lookaside->L.Tag);
1513  }
1514 #endif /* NONAMELESSUNION */
1515  return Entry;
1516 }
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ ULONG _Out_ WDFLOOKASIDE * Lookaside
Definition: wdfmemory.h:407
_In_ PVOID Entry
Definition: exfuncs.h:229
#define ExInterlockedPopEntrySList(SListHead, Lock)
Definition: exfuncs.h:166
PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER ListHead)
Definition: interlocked.c:55
#define NULL
Definition: types.h:112
base of all file and directory entries
Definition: entries.h:82

◆ _At_() [1/6]

_Out_ _At_ ( GuidString->  Buffer,
__drv_allocatesMem(Mem)   
)

◆ _At_() [2/6]

_Out_ _At_ ( DestinationString->  Buffer,
__drv_allocatesMem(Mem)   
)

◆ _At_() [3/6]

_At_ ( BitMapHeader->  SizeOfBitMap,
_Post_equal_to_(SizeOfBitMap)   
) -> Buffer, _Post_equal_to_(BitMapBuffer)) NTSYSAPI VOID NTAPI RtlInitializeBitMap(_Out_ PRTL_BITMAP BitMapHeader, _In_opt_ __drv_aliasesMem PULONG BitMapBuffer, _In_opt_ ULONG SizeOfBitMap)

◆ _At_() [4/6]

◆ _At_() [5/6]

Definition at line 2954 of file rtlfuncs.h.

2963 {
2964  AnsiString->Length = 0;
2965  AnsiString->MaximumLength = BufferSize;
2966  AnsiString->Buffer = Buffer;
2967 }
_Notnull_ __drv_aliasesMem PWSTR Buffer
Definition: rtlfuncs.h:2978
_Notnull_ __drv_aliasesMem PWSTR _In_ USHORT BufferSize
Definition: rtlfuncs.h:2980

◆ _At_() [6/6]

◆ _In_range_() [1/4]

_In_range_ ( <, BitMapHeader->  SizeOfBitMap)

◆ _In_range_() [2/4]

_In_ ULONG _In_ ULONG _In_range_ ( )

◆ _In_range_() [3/4]

_In_ ULONG _In_range_ ( >=  ,
(UncompressedBufferSize -(UncompressedBufferSize/16))   
)

◆ _In_range_() [4/4]

◆ _In_reads_()

_In_ SIZE_T _In_reads_ ( String2Length  )

◆ _In_reads_bytes_() [1/9]

◆ _In_reads_bytes_() [2/9]

_In_reads_bytes_ ( BytesInUnicodeString  )

◆ _In_reads_bytes_() [3/9]

◆ _In_reads_bytes_() [4/9]

_In_ ULONG _In_ ULONG _In_reads_bytes_ ( AceListLength  )

◆ _In_reads_bytes_() [5/9]

◆ _In_reads_bytes_() [6/9]

_In_ ULONG _In_reads_bytes_ ( CompressedBufferSize  )

◆ _In_reads_bytes_() [7/9]

_In_ ULONG _In_ ULONG _In_reads_bytes_ ( CompressedTailSize  )

◆ _In_reads_bytes_() [8/9]

◆ _In_reads_bytes_() [9/9]

◆ _In_reads_bytes_opt_()

_In_ PCWSTR _In_z_ PCWSTR _In_ ULONG _In_reads_bytes_opt_ ( ValueLength  )

◆ _Inout_updates_bytes_()

_In_ ULONG _Inout_updates_bytes_ ( CompressedDataInfoLength  )

◆ _IRQL_requires_max_() [1/3]

_IRQL_requires_max_ ( PASSIVE_LEVEL  ) -> Buffer, __drv_freesMem(Mem)) PUNICODE_STRING UnicodeString)

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _IRQL_requires_max_() [2/3]

Definition at line 3557 of file common.c.

3587 {
3588  NTSTATUS status;
3589  BOOLEAN requestSent = FALSE;
3590 
3591  BOOLEAN shouldRetry = TRUE;
3592  PCDB cdb = (PCDB)DeviceExtension->PowerContext.Srb.Cdb;
3593  ULONG timeoutValue = DeviceExtension->TimeOutValue;
3594  ULONG retryCount = 1;
3595 
3596  // reset some fields.
3597  DeviceExtension->PowerContext.RetryIntervalIn100ns = 0;
3598  status = PowerContextReuseRequest(DeviceExtension);
3599  RequestClearSendTime(DeviceExtension->PowerContext.PowerRequest);
3600 
3601  if (!NT_SUCCESS(status))
3602  {
3603  return status;
3604  }
3605 
3606  // set proper timeout value and max retry count.
3607  switch(DeviceExtension->PowerContext.PowerChangeState.PowerDown)
3608  {
3612  break;
3613 
3614  case PowerDownDeviceLocked:
3615  // Case of issuing SYNC CACHE command. Do not use power irp timeout remaining time in this case
3616  // as we want to give best try on SYNC CACHE command.
3617  retryCount = MAXIMUM_RETRIES;
3618  timeoutValue = DeviceExtension->TimeOutValue;
3619  break;
3620 
3622  {
3623  // Case of issuing STOP UNIT command
3624  // As "Imme" bit is set to '1', this command should be completed in short time.
3625  // This command is at low importance, failure of this command has very small impact.
3626  ULONG secondsRemaining = 0;
3627 
3628 #if (WINVER >= 0x0601)
3629  // this API is introduced in Windows7
3630  PoQueryWatchdogTime(DeviceExtension->LowerPdo, &secondsRemaining);
3631 #endif
3632 
3633  if (secondsRemaining == 0)
3634  {
3635  // not able to retrieve remaining time from PoQueryWatchdogTime API, use default values.
3636  retryCount = MAXIMUM_RETRIES;
3637  timeoutValue = SCSI_CDROM_TIMEOUT;
3638  }
3639  else
3640  {
3641  // plan to leave about 30 seconds to lower level drivers if possible.
3642  if (secondsRemaining >= 32)
3643  {
3644  retryCount = (secondsRemaining - 30)/SCSI_CDROM_TIMEOUT + 1;
3645  timeoutValue = SCSI_CDROM_TIMEOUT;
3646 
3647  if (retryCount > MAXIMUM_RETRIES)
3648  {
3649  retryCount = MAXIMUM_RETRIES;
3650  }
3651 
3652  if (retryCount == 1)
3653  {
3654  timeoutValue = secondsRemaining - 30;
3655  }
3656  }
3657  else
3658  {
3659  // issue the command with minimal timeout value and do not retry on it.
3660  retryCount = 1;
3661  timeoutValue = 2;
3662  }
3663  }
3664  }
3665  break;
3666  default:
3667  NT_ASSERT( FALSE );
3669  return status;
3670  }
3671 
3672  DeviceExtension->PowerContext.RetryCount = retryCount;
3673 
3674  // issue command.
3675  while (shouldRetry)
3676  {
3677 
3678  // set SRB fields.
3679  DeviceExtension->PowerContext.Srb.SrbFlags = SRB_FLAGS_NO_DATA_TRANSFER |
3684 
3685  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_EXECUTE_SCSI;
3686  DeviceExtension->PowerContext.Srb.TimeOutValue = timeoutValue;
3687 
3688  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceInitial)
3689  {
3690  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_LOCK_QUEUE;
3691  }
3692  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceLocked)
3693  {
3694  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_QUIESCE_DEVICE;
3695  }
3696  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3697  {
3698  // Case of issuing SYNC CACHE command.
3699  DeviceExtension->PowerContext.Srb.CdbLength = 10;
3700  cdb->SYNCHRONIZE_CACHE10.OperationCode = SCSIOP_SYNCHRONIZE_CACHE;
3701  }
3702  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceFlushed)
3703  {
3704  // Case of issuing STOP UNIT command.
3705  DeviceExtension->PowerContext.Srb.CdbLength = 6;
3706  cdb->START_STOP.OperationCode = SCSIOP_START_STOP_UNIT;
3707  cdb->START_STOP.Start = 0;
3708  cdb->START_STOP.Immediate = 1;
3709  }
3710  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceStopped)
3711  {
3712  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_UNLOCK_QUEUE;
3713  }
3714 
3715  // Set up completion routine and context if requested
3716  if (CompletionRoutine)
3717  {
3718  WdfRequestSetCompletionRoutine(DeviceExtension->PowerContext.PowerRequest,
3720  Context);
3721  }
3722 
3723  status = RequestSend(DeviceExtension,
3724  DeviceExtension->PowerContext.PowerRequest,
3725  DeviceExtension->IoTarget,
3727  &requestSent);
3728 
3729  if (requestSent)
3730  {
3731  if ((CompletionRoutine == NULL) &&
3732  (SRB_STATUS(DeviceExtension->PowerContext.Srb.SrbStatus) != SRB_STATUS_SUCCESS))
3733  {
3734  TracePrint((TRACE_LEVEL_ERROR,
3735  TRACE_FLAG_POWER,
3736  "%p\tError occured when issuing %s command to device. Srb %p, Status %x\n",
3737  DeviceExtension->PowerContext.PowerRequest,
3738  (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced) ? "SYNC CACHE" : "STOP UNIT",
3739  &DeviceExtension->PowerContext.Srb,
3740  DeviceExtension->PowerContext.Srb.SrbStatus));
3741 
3742  NT_ASSERT(!(TEST_FLAG(DeviceExtension->PowerContext.Srb.SrbStatus, SRB_STATUS_QUEUE_FROZEN)));
3743 
3744  shouldRetry = RequestSenseInfoInterpret(DeviceExtension,
3745  DeviceExtension->PowerContext.PowerRequest,
3746  &(DeviceExtension->PowerContext.Srb),
3747  retryCount - DeviceExtension->PowerContext.RetryCount,
3748  &status,
3749  &(DeviceExtension->PowerContext.RetryIntervalIn100ns));
3750 
3751  if (shouldRetry && (DeviceExtension->PowerContext.RetryCount-- == 0))
3752  {
3753  shouldRetry = FALSE;
3754  }
3755  }
3756  else
3757  {
3758  // succeeded, do not need to retry.
3759  shouldRetry = FALSE;
3760  }
3761 
3762  }
3763  else
3764  {
3765  // request failed to be sent
3766  shouldRetry = FALSE;
3767  }
3768 
3769  if (shouldRetry)
3770  {
3771  LARGE_INTEGER t;
3772  t.QuadPart = -DeviceExtension->PowerContext.RetryIntervalIn100ns;
3774 
3775  status = PowerContextReuseRequest(DeviceExtension);
3776  if (!NT_SUCCESS(status))
3777  {
3778  shouldRetry = FALSE;
3779  }
3780  }
3781  }
3782 
3783  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3784  {
3785  // record SYNC CACHE command completion time stamp.
3786  KeQueryTickCount(&DeviceExtension->PowerContext.Step1CompleteTime);
3787  }
3788 
3789  return status;
3790 }
#define SRB_FUNCTION_UNLOCK_QUEUE
Definition: srb.h:325
#define SCSIOP_SYNCHRONIZE_CACHE
Definition: cdrw_hw.h:918
#define SRB_FUNCTION_QUIESCE_DEVICE
Definition: srb.h:90
#define SRB_FLAGS_NO_QUEUE_FREEZE
Definition: srb.h:396
#define TRUE
Definition: types.h:120
Definition: cdrw_hw.h:28
LONG NTSTATUS
Definition: precomp.h:26
struct _CDB::_SYNCHRONIZE_CACHE10 SYNCHRONIZE_CACHE10
GLdouble GLdouble t
Definition: gl.h:2047
#define SRB_STATUS(Status)
Definition: srb.h:381
VOID RequestClearSendTime(_In_ WDFREQUEST Request)
Definition: common.c:111
#define MAXIMUM_RETRIES
Definition: cdrom.h:124
return STATUS_NOT_IMPLEMENTED
#define SCSI_CDROM_TIMEOUT
Definition: cdrom.c:170
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
Definition: wait.c:283
#define SRB_FLAGS_BYPASS_LOCKED_QUEUE
Definition: srb.h:402
unsigned char BOOLEAN
union _CDB * PCDB
struct _CDB::_START_STOP START_STOP
VOID NTAPI KeQueryTickCount(IN PLARGE_INTEGER TickCount)
Definition: clock.c:165
#define TEST_FLAG(Flags, Bit)
Definition: cdrom.h:1495
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Definition: srb.h:389
#define SRB_FLAGS_NO_DATA_TRANSFER
Definition: srb.h:394
BOOLEAN RequestSenseInfoInterpret(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG RetriedCount, _Out_ NTSTATUS *Status, _Out_opt_ _Deref_out_range_(0, MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS) LONGLONG *RetryIntervalIn100ns)
Definition: sense.c:2467
#define SRB_STATUS_QUEUE_FROZEN
Definition: srb.h:378
NTSTATUS RequestSend(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ WDFIOTARGET IoTarget, _In_ ULONG Flags, _Out_opt_ PBOOLEAN RequestSent)
Definition: common.c:3793
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:893
#define NULL
Definition: types.h:112
#define SRB_FUNCTION_EXECUTE_SCSI
Definition: srb.h:307
unsigned int ULONG
Definition: retypes.h:1
#define SRB_STATUS_SUCCESS
Definition: srb.h:333
#define SRB_FLAGS_D3_PROCESSING
Definition: srb.h:156
static SERVICE_STATUS status
Definition: service.c:31
#define SCSIOP_START_STOP_UNIT
Definition: cdrw_hw.h:897
#define SRB_FUNCTION_LOCK_QUEUE
Definition: srb.h:324
#define NT_ASSERT
Definition: rtlfuncs.h:3312
Definition: ps.c:97

◆ _IRQL_requires_max_() [3/3]

_IRQL_requires_max_ ( APC_LEVEL  )

Definition at line 197 of file cddata.c.

254 {
255  THREAD_CONTEXT ThreadContext = {0};
256  PIRP_CONTEXT IrpContext = NULL;
257  BOOLEAN Wait;
258 
259 #ifdef CD_SANITY
260  PVOID PreviousTopLevel;
261 #endif
262 
264 
265 #if DBG
266 
267  KIRQL SaveIrql = KeGetCurrentIrql();
268 
269 #endif
270 
272 
274 
276 
277 #ifdef CD_SANITY
278  PreviousTopLevel = IoGetTopLevelIrp();
279 #endif
280 
281  //
282  // Loop until this request has been completed or posted.
283  //
284 
285  do {
286 
287  //
288  // Use a try-except to handle the exception cases.
289  //
290 
291  _SEH2_TRY {
292 
293  //
294  // If the IrpContext is NULL then this is the first pass through
295  // this loop.
296  //
297 
298  if (IrpContext == NULL) {
299 
300  //
301  // Decide if this request is waitable an allocate the IrpContext.
302  // If the file object in the stack location is NULL then this
303  // is a mount which is always waitable. Otherwise we look at
304  // the file object flags.
305  //
306 
308 
309  Wait = TRUE;
310 
311  } else {
312 
313  Wait = CanFsdWait( Irp );
314  }
315 
316  IrpContext = CdCreateIrpContext( Irp, Wait );
317 
318  //
319  // Update the thread context information.
320  //
321 
322  CdSetThreadContext( IrpContext, &ThreadContext );
323 
324 #ifdef CD_SANITY
325  NT_ASSERT( !CdTestTopLevel ||
326  SafeNodeType( IrpContext->TopLevel ) == CDFS_NTC_IRP_CONTEXT );
327 #endif
328 
329  //
330  // Otherwise cleanup the IrpContext for the retry.
331  //
332 
333  } else {
334 
335  //
336  // Set the MORE_PROCESSING flag to make sure the IrpContext
337  // isn't inadvertently deleted here. Then cleanup the
338  // IrpContext to perform the retry.
339  //
340 
341  SetFlag( IrpContext->Flags, IRP_CONTEXT_FLAG_MORE_PROCESSING );
342  CdCleanupIrpContext( IrpContext, FALSE );
343  }
344 
345  //
346  // Case on the major irp code.
347  //
348 
349  switch (IrpContext->MajorFunction) {
350 
351  case IRP_MJ_CREATE :
352 
353  Status = CdCommonCreate( IrpContext, Irp );
354  break;
355 
356  case IRP_MJ_CLOSE :
357 
358  Status = CdCommonClose( IrpContext, Irp );
359  break;
360 
361  case IRP_MJ_READ :
362 
363  //
364  // If this is an Mdl complete request, don't go through
365  // common read.
366  //
367 
368  if (FlagOn( IrpContext->MinorFunction, IRP_MN_COMPLETE )) {
369 
370  Status = CdCompleteMdl( IrpContext, Irp );
371 
372  } else {
373 
374  Status = CdCommonRead( IrpContext, Irp );
375  }
376 
377  break;
378 
379  case IRP_MJ_WRITE :
380 
381  Status = CdCommonWrite( IrpContext, Irp );
382  break;
383 
385 
386  Status = CdCommonQueryInfo( IrpContext, Irp );
387  break;
388 
390 
391  Status = CdCommonSetInfo( IrpContext, Irp );
392  break;
393 
395 
396  Status = CdCommonQueryVolInfo( IrpContext, Irp );
397  break;
398 
400 
401  Status = CdCommonDirControl( IrpContext, Irp );
402  break;
403 
405 
406  Status = CdCommonFsControl( IrpContext, Irp );
407  break;
408 
409  case IRP_MJ_DEVICE_CONTROL :
410 
411  Status = CdCommonDevControl( IrpContext, Irp );
412  break;
413 
414  case IRP_MJ_LOCK_CONTROL :
415 
416  Status = CdCommonLockControl( IrpContext, Irp );
417  break;
418 
419  case IRP_MJ_CLEANUP :
420 
421  Status = CdCommonCleanup( IrpContext, Irp );
422  break;
423 
424  case IRP_MJ_PNP :
425 
426  Status = CdCommonPnp( IrpContext, Irp );
427  break;
428 
429  case IRP_MJ_SHUTDOWN :
430 
431  Status = CdCommonShutdown( IrpContext, Irp );
432  break;
433 
434  default :
435 
437  CdCompleteRequest( IrpContext, Irp, Status );
438  }
439 
441 
442  Status = CdProcessException( IrpContext, Irp, _SEH2_GetExceptionCode() );
443  } _SEH2_END;
444 
445  } while (Status == STATUS_CANT_WAIT);
446 
447 #ifdef CD_SANITY
448  NT_ASSERT( !CdTestTopLevel ||
449  (PreviousTopLevel == IoGetTopLevelIrp()) );
450 #endif
451 
453 
454  NT_ASSERT( SaveIrql == KeGetCurrentIrql( ));
455 
456  return Status;
457 }
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
Definition: cddata.c:981
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define IRP_MJ_SHUTDOWN
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
Definition: cdstruc.h:1214
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
#define SafeNodeType(Ptr)
Definition: nodetype.h:54
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_SEH2_TRY
Definition: create.c:4226
#define IRP_MN_COMPLETE
Definition: iotypes.h:4399
UCHAR KIRQL
Definition: env_spec_w32.h:591
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ PIRP Irp
Definition: csq.h:116
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
Definition: cddata.c:914
#define _SEH2_GetExceptionInformation()
Definition: pseh2_64.h:11
unsigned char BOOLEAN
#define IRP_MJ_QUERY_VOLUME_INFORMATION
Definition: rdpdr.c:50
#define IRP_MJ_DIRECTORY_CONTROL
Definition: rdpdr.c:51
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
Status
Definition: gdiplustypes.h:24
#define IRP_MJ_FILE_SYSTEM_CONTROL
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
#define CanFsdWait(I)
Definition: cdprocs.h:2001
NTSTATUS CdCompleteMdl(_In_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: cachesup.c:411
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
NTSTATUS CdCommonDevControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: devctrl.c:46
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2789
#define SetFlag(_F, _SF)
Definition: ext2fs.h:187
_SEH2_END
Definition: create.c:4400
LONG CdExceptionFilter(_Inout_ PIRP_CONTEXT IrpContext, _In_ PEXCEPTION_POINTERS ExceptionPointer)
Definition: cddata.c:525
#define ASSERT_OPTIONAL_IRP(I)
Definition: cddata.h:252
#define NULL
Definition: types.h:112
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
Definition: strucsup.c:1733
NTSTATUS CdCommonLockControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: lockctrl.c:35
#define CDFS_NTC_IRP_CONTEXT
Definition: nodetype.h:34
#define IRP_MJ_LOCK_CONTROL
Definition: rdpdr.c:53
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_CLEANUP
#define IRP_MJ_SET_INFORMATION
Definition: rdpdr.c:49
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_QUERY_INFORMATION
Definition: rdpdr.c:48
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:12
_Ret_valid_ PIRP_CONTEXT CdCreateIrpContext(_In_ PIRP Irp, _In_ BOOLEAN Wait)
Definition: strucsup.c:1573
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define STATUS_CANT_WAIT
Definition: ntstatus.h:452
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ _Out_range_()

_Out_range_ ( )
pure virtual

◆ _Out_writes_bytes_() [1/2]

_Out_writes_bytes_ ( DestinationSidLength  )

◆ _Out_writes_bytes_() [2/2]

_In_ ULONG _Out_writes_bytes_ ( CompressedBufferSize  )

◆ _Out_writes_bytes_to_() [1/4]

_Out_writes_bytes_to_ ( MaxBytesInUnicodeString  ,
BytesInUnicodeString 
)

◆ _Out_writes_bytes_to_() [2/4]

_Out_writes_bytes_to_ ( MaxBytesInCustomCPString  ,
BytesInCustomCPString 
)

◆ _Out_writes_bytes_to_() [3/4]

_Out_writes_bytes_to_ ( UncompressedBufferSize  ,
FinalUncompressedSize 
)

◆ _Out_writes_bytes_to_() [4/4]

_Out_writes_bytes_to_ ( UncompressedFragmentSize  ,
FinalUncompressedSize 
)

◆ _Post_satisfies_()

_Post_satisfies_ ( return >=8 &&return<=  SECURITY_MAX_SID_SIZE)

◆ _Ret_range_()

_Ret_range_ ( )

◆ _Success_() [1/3]

◆ _Success_() [2/3]

_Success_ ( return = -1)

Definition at line 3139 of file fsctrl.c.

3189 {
3190  PLIST_ENTRY Link;
3191 
3192  PVPB Vpb = Vcb->Vpb;
3193  PVPB OldVpb;
3194 
3195  BOOLEAN Remount = FALSE;
3196 
3197  PAGED_CODE();
3198 
3199  UNREFERENCED_PARAMETER( IrpContext );
3200 
3201  //
3202  // Check whether we are looking for a device only Mvcb.
3203  //
3204 
3205  for (Link = CdData.VcbQueue.Flink;
3206  Link != &CdData.VcbQueue;
3207  Link = Link->Flink) {
3208 
3209  *OldVcb = CONTAINING_RECORD( Link, VCB, VcbLinks );
3210 
3211  //
3212  // Skip ourselves.
3213  //
3214 
3215  if (Vcb == *OldVcb) { continue; }
3216 
3217  //
3218  // Look at the Vpb and state of the previous Vcb.
3219  //
3220 
3221  OldVpb = (*OldVcb)->Vpb;
3222 
3223  if ((OldVpb != Vpb) &&
3224  (OldVpb->RealDevice == Vpb->RealDevice) &&
3225  ((*OldVcb)->VcbCondition == VcbNotMounted)) {
3226 
3227  //
3228  // If the current disk is a raw disk then it can match a previous music or
3229  // raw disk.
3230  //
3231 
3232  if (FlagOn( Vcb->VcbState, VCB_STATE_AUDIO_DISK)) {
3233 
3234  if (FlagOn( (*OldVcb)->VcbState, VCB_STATE_AUDIO_DISK )) {
3235 
3236  //
3237  // If we have both TOC then fail the remount if the lengths
3238  // are different or they don't match.
3239  //
3240 
3241  if ((Vcb->TocLength != (*OldVcb)->TocLength) ||
3242  ((Vcb->TocLength != 0) &&
3243  !RtlEqualMemory( Vcb->CdromToc,
3244  (*OldVcb)->CdromToc,
3245  Vcb->TocLength ))) {
3246 
3247  continue;
3248  }
3249 
3250  Remount = TRUE;
3251  break;
3252  }
3253 
3254  //
3255  // The current disk is not a raw disk. Go ahead and compare
3256  // serial numbers, volume label and TOC.
3257  //
3258 
3259  }
3260  else if ((OldVpb->SerialNumber == Vpb->SerialNumber) &&
3261  (Vcb->TocLength == (*OldVcb)->TocLength) &&
3262  ((Vcb->TocLength == 0) || RtlEqualMemory( Vcb->CdromToc,
3263  (*OldVcb)->CdromToc,
3264  Vcb->TocLength )) &&
3265  (Vpb->VolumeLabelLength == OldVpb->VolumeLabelLength) &&
3266  (RtlEqualMemory( OldVpb->VolumeLabel,
3267  Vpb->VolumeLabel,
3268  Vpb->VolumeLabelLength ))) {
3269  //
3270  // Remember the old Vcb. Then set the return value to
3271  // TRUE and break.
3272  //
3273 
3274  Remount = TRUE;
3275  break;
3276  }
3277  }
3278  }
3279 
3280  return Remount;
3281 }
#define VCB_STATE_AUDIO_DISK
Definition: cdstruc.h:712
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)]
Definition: iotypes.h:177
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
Definition: cdstruc.h:498
static int Link(const char **args)
Definition: vfdcmd.c:2414
#define FALSE
Definition: types.h:117
unsigned char BOOLEAN
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
CD_DATA CdData
Definition: cddata.c:42
NTSYSAPI ULONG NTAPI RtlEqualMemory(CONST VOID *Source1, CONST VOID *Source2, ULONG Length)
struct _DEVICE_OBJECT * RealDevice
Definition: iotypes.h:174
#define Vcb
Definition: cdprocs.h:1415
Definition: typedefs.h:119
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
LIST_ENTRY VcbQueue
Definition: cdstruc.h:334
Definition: iotypes.h:168
USHORT VolumeLabelLength
Definition: iotypes.h:172
ULONG SerialNumber
Definition: iotypes.h:175
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1673
#define PAGED_CODE()

◆ _Success_() [3/3]

_Success_ ( return!  = FALSE)

◆ _Unchanged_()

◆ _When_() [1/2]

◆ _When_() [2/2]

_When_ ( Status< 0, _Out_range_(>  ,
 
)
pure virtual

◆ AppendTailList()

FORCEINLINE VOID AppendTailList ( _Inout_ PLIST_ENTRY  ListHead,
_Inout_ PLIST_ENTRY  ListToAppend 
)

Definition at line 222 of file rtlfuncs.h.

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 }
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:95
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY ListEnd
Definition: exfuncs.h:1223
Definition: typedefs.h:119

◆ FatalListEntryError()

FORCEINLINE VOID FatalListEntryError ( _In_ PVOID  P1,
_In_ PVOID  P2,
_In_ PVOID  P3 
)

Definition at line 81 of file rtlfuncs.h.

85 {
89 
90  RtlFailFast(FAST_FAIL_CORRUPT_LIST_ENTRY);
91 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define FAST_FAIL_CORRUPT_LIST_ENTRY

Referenced by InsertHeadList(), InsertTailList(), RemoveEntryList(), RemoveHeadList(), RemoveTailList(), and RtlpCheckListEntry().

◆ InitializeListHead()

FORCEINLINE VOID InitializeListHead ( _Out_ PLIST_ENTRY  ListHead)

Definition at line 48 of file rtlfuncs.h.

50 {
51  ListHead->Flink = ListHead->Blink = ListHead;
52 }

◆ InitializeSListHead()

FORCEINLINE VOID InitializeSListHead ( _Out_ PSLIST_HEADER  SListHead)

Definition at line 3353 of file rtlfuncs.h.

3355 {
3356 #if defined(_WIN64)
3357  if (((ULONG_PTR)SListHead & 0xf) != 0) {
3359  }
3360 #if defined(_IA64_)
3361  SListHead->Region = (ULONG_PTR)SListHead & VRN_MASK;
3362 #else
3363  SListHead->Region = 0;
3364 #endif /* _IA64_ */
3365 #endif /* _WIN64 */
3366  SListHead->Alignment = 0;
3367 }
#define ExRaiseStatus
Definition: ntoskrnl.h:102
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define STATUS_DATATYPE_MISALIGNMENT
Definition: ntstatus.h:183
#define ULONG_PTR
Definition: config.h:101

Referenced by ExInitializeSystemLookasideList(), ExInitPoolLookasidePointers(), InitializeTransferPackets(), MiInitializeNonPagedPool(), MmArmInitSystem(), START_TEST(), and test_slist().

◆ InsertHeadList()

FORCEINLINE VOID InsertHeadList ( _Inout_ PLIST_ENTRY  ListHead,
_Inout_ __drv_aliasesMem PLIST_ENTRY  Entry 
)

Definition at line 201 of file rtlfuncs.h.

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 }
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:95
struct _Entry Entry
Definition: kefuncs.h:627
struct _LIST_ENTRY * Blink
Definition: typedefs.h:122
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
Definition: typedefs.h:119
FORCEINLINE VOID FatalListEntryError(_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
Definition: rtlfuncs.h:81
base of all file and directory entries
Definition: entries.h:82

Referenced by FxFileObject::_CreateFileObject(), _Function_class_(), add_children_to_move_list(), add_delete_inode_extref(), add_device_to_list(), add_ext_holes(), add_extent(), add_extent_to_fcb(), add_orphan(), add_partial_stripe(), add_pending_rmdir(), add_space_entry(), add_volume_device(), WDFDEVICE_INIT::AddCxDeviceInit(), AddDialogListEntry(), AddInputEvents(), FxWmiProvider::AddInstanceLocked(), FxPkgIo::AddIoQueue(), AddKnownDriverToList(), AddNotificationDll(), AfdConnectedSocketReadData(), AfdPacketSocketReadData(), alloc_chunk(), ApphelpCacheLookupEntry(), ApphelpCacheUpdateEntry(), BlpFileRegisterFileSystem(), CacheInternalOptimizeBlockList(), CcPurgeCacheSection(), CcRosCreateVacb(), CcRosDeleteFileCache(), CcRosFreeUnusedVacb(), CcRosTrimCache(), CdInitializeVcb(), ClasspEnableIdlePower(), CmpAddDriverToList(), CmpAddToDelayedClose(), CmpDoSort(), CmpInitializeHive(), co_IntSendMessageWithCallBack(), commit_batch_list_root(), ConDrvCreateScreenBuffer(), ConSrvAllocateConsole(), ConSrvInheritConsole(), ConvertNtPathToWin32Path(), create_stream(), CreateUmaDescriptor(), CSR_API(), CsrAllocateNtSession(), CsrExecServerThread(), CsrInsertThread(), divide_ext(), do_write_file_prealloc(), EngLoadImageEx(), excise_extents(), ExInitializeSystemLookasideList(), ExInterlockedInsertHeadList(), Ext2LinkHeadMcb(), Ext2PurgeVolume(), Ext2QueryUnusedBH(), Ext2QueryUnusedFcb(), Ext2ReleaseFcb(), FatCreateDcb(), FatSetRenameInfo(), file_create2(), FsRegisterDevice(), FsRtlFreeTunnelNode(), FsRtlInsertPerFileObjectContext(), FsRtlInsertPerStreamContext(), FsRtlWaitOnIrp(), ftGdiGlyphCacheGet(), ftGdiGlyphCacheSet(), FxAllocateDriverGlobals(), GdiPoolAllocate(), GdiPoolFree(), FxPkgIo::GetFirstIoQueueLocked(), FxPkgIo::GetNextIoQueueLocked(), HalpAllocPhysicalMemory(), handle_batch_collision(), HistoryCurrentBuffer(), IniAddSection(), insert_dir_child_into_hash_lists(), insert_tree_item(), insert_tree_item_batch(), InsertComSpecInfo(), FxIrpQueue::InsertIrpInQueue(), InsertJobIntoStartList(), IntVideoPortMapMemory(), IoFreeMapRegisters(), IopInitializeBootDrivers(), IopQueueIrpToThread(), IopQueueTargetDeviceEvent(), IoRegisterFileSystem(), IoRegisterPlugPlayNotification(), IoWriteErrorLogEntry(), IssueUniqueIdChangeNotify(), KeInsertQueueDpc(), KeStartProfile(), KiDeferredReadyThread(), KiInsertQueue(), KiInsertQueueApc(), KiInsertTimerTable(), KsAddIrpToCancelableQueue(), KsMoveIrpsOnCancelableQueue(), KxQueueReadyThread(), LdrpInitializeProcess(), LibTCPGetDataFromConnectionQueue(), load_tree(), LsapCreateLogonSession(), LsapHandlePortConnection(), LsapRegisterNotification(), MiInitializeNonPagedPool(), MiLoadUserSymbols(), MiProtectedPoolInsertList(), mknod(), MmCreateCacheSection(), MmInitializeRegion(), MMixerInitializeFilter(), move_across_subvols(), NtUserSetWindowsHookEx(), OHCI_InsertEndpointInSchedule(), open_fileref_child(), order_space_entry(), PacketSocketRecvComplete(), ParaNdis_DoSubmitPacket(), ParaNdis_ProcessTx(), PinCaptureProcess(), PortAddDevice(), PortAddDriverInitData(), PortCreatePdo(), QueryPathCompletionRoutine(), rationalize_extents(), read_file(), ReceiveActivity(), RegpCopyTree(), rename_file_to_stream(), rename_stream_to_file(), RtlpAddVectoredHandler(), RtlpCreateUnCommittedRange(), RtlpDestroyUnCommittedRange(), RtlpDphCoalesceNodeIntoAvailable(), RtlpIoWorkerThreadProc(), send_add_dir(), SendComplete(), set_rename_information(), SmpCreateEmergencyPagingFile(), SmpSbCreateSession(), SockLoadHelperDll(), sort_data_reloc_refs(), sort_extent_refs(), sort_metadata_reloc_refs(), space_list_add2(), space_list_subtract2(), split_tree_at(), UserGetDCEx(), VDDInstallUserHook(), VfatMount(), VGADDI_AllocSavedScreenBits(), VGADDI_InitializeOffScreenMem(), WinLdrInsertDescriptor(), write_metadata_items(), write_trees(), WsNcUpdateNamespaceList(), WsNqLookupServiceNext(), and WsTcUpdateProtocolList().

◆ InsertTailList()

FORCEINLINE VOID InsertTailList ( _Inout_ PLIST_ENTRY  ListHead,
_Inout_ __drv_aliasesMem PLIST_ENTRY  Entry 
)

Definition at line 180 of file rtlfuncs.h.

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 }
FORCEINLINE VOID RtlpCheckListEntry(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:95
struct _Entry Entry
Definition: kefuncs.h:627
struct _LIST_ENTRY * Blink
Definition: typedefs.h:122
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
Definition: typedefs.h:119
FORCEINLINE VOID FatalListEntryError(_In_ PVOID P1, _In_ PVOID P2, _In_ PVOID P3)
Definition: rtlfuncs.h:81
base of all file and directory entries
Definition: entries.h:82

◆ IsListEmpty()

Definition at line 57 of file rtlfuncs.h.

59 {
60  return (BOOLEAN)(ListHead->Flink == ListHead);
61 }
unsigned char BOOLEAN

Referenced by __brelse(), FxUsbDevice::_CleanupPipesRequests(), FxDevice::_Create(), _Function_class_(), FxFileObject::_GetFileObjectFromWdm(), _HandleDeletePort(), _Releases_lock_(), AdapterGetFirst(), AdapterStop(), add_dir_child(), add_shared_block_extent_ref(), add_shared_data_extent_ref(), add_space_entry(), add_tree_block_extent_ref(), FxObject::AddChildObjectInternal(), AddInputEvents(), FxWmiProvider::AddInstanceLocked(), FxWmiIrpHandler::AddProvider(), AddrSearchFirst(), AfdAccept(), AfdCloseSocket(), AfdConnectedSocketReadData(), AfdDisconnect(), AfdEventReceiveDatagramHandler(), AfdPacketSocketReadData(), AfdWaitForListen(), allocate_cache_chunk(), FxObject::AssignParentObject(), balance_data_chunk(), balance_metadata_chunk(), BasepIsProcessAllowed(), BaseSrvCleanupVDMResources(), BfClearScreen(), BlMmAllocateHeap(), BlPdQueryData(), CacheInitializeDrive(), CacheInternalFindBlock(), CacheInternalFreeBlock(), calc_thread_main(), FxIoQueue::CancelIrps(), CaptureAvoidPipeStarvationWorker(), CcCanIWrite(), CcGetFileObjectFromSectionPtrs(), CcLazyWriteScan(), CcPostWorkQueue(), CcPurgeCacheSection(), CcRosDeleteFileCache(), CcRosFreeUnusedVacb(), CcRosInternalFreeVacb(), CcRosTrimCache(), CcUninitializeCacheMap(), CcWorkerThread(), CdDeleteFcb(), CdRomTickHandler(), CenterCurrentListItem(), check_for_orphans(), ChewWorkItem(), ClasspEnqueueIdleRequest(), ClasspStartNextSweep(), ClassRemoveCScanList(), clean_space_cache(), clean_space_cache_chunk(), CleanupSidCacheMgr(), FxCollectionInternal::Clear(), clear_batch_list(), clear_rollback(), ClearTTFontCache(), CM_Add_Range(), CM_First_Range(), CM_Free_Range_List(), CmGetSystemDriverList(), CmpAddToDelayedClose(), CmpAllocateDelayItem(), CmpAllocateKeyControlBlock(), CmpDestroyHiveViewList(), CmpFlushNotifiesOnKeyBodyList(), CmpFreeKeyControlBlock(), co_HOOK_CallHooks(), co_MsqDispatchOneSentMessage(), co_MsqPeekHardwareMessage(), co_MsqSendMessage(), commit_batch_list(), commit_batch_list_root(), FxIoTarget::CompletePendedRequestList(), ConDrvDeleteConsole(), ConDrvDeleteScreenBuffer(), ConDrvGetConsoleInput(), FxPkgGeneral::ConfigureConstraints(), FxPkgGeneral::ConfigureFileObjectClass(), ConioUnpause(), ConSrvCloseHandle(), ConSrvTermReadStream(), construct_extent_item(), create_snapshot(), CsqPeekNextIrp(), CSR_API(), CsrDereferenceNtSession(), CsrReferenceNtSession(), DbgkClearProcessDebugObject(), DbgkpDeleteObject(), DbgkpSetProcessDebugObject(), DeletePartition(), DeleteSymbolicLinkNameFromMemory(), DelistKeyBodyFromKCB(), DequeueDeferredClientIrp(), DestroyAllTransferPackets(), FxObject::DestroyChildren(), DestroyDeviceInfo(), DestroyDeviceInfoSet(), DestroyFileSystemList(), DestroyGenericList(), DestroyPartitionList(), DestroyTransferPacket(), DeviceInstallThread(), DGDeliverData(), DisconnectComplete(), DisconnectTimeoutDpc(), DiskFlushComplete(), DiskShutdownFlush(), FxIoQueue::Dispose(), do_rollback(), do_tree_writes(), do_write2(), DoDisconnect(), DosShutdown(), FxChildList::DrainFreeListHead(), DrawGenericList(), drive_letter_callback2(), DriverIoControl(), drop_chunk(), duplicate_extents(), EfiVmpFreeInterfaceEntry(), EHCI_PollAsyncEndpoint(), enable_caching(), ExInterlockedRemoveHeadList(), ExNotifyCallback(), ExpCheckDynamicThreadCount(), ExpDeleteCallback(), ExpWorkerThreadEntryPoint(), ExQueryPoolUsage(), ExQueueWorkItem(), ExRegisterCallback(), Ext2bhReaperThread(), Ext2DropBH(), Ext2FcbReaperThread(), Ext2FirstUnusedMcb(), Ext2PurgeVolume(), Ext2QueryUnusedBH(), Ext2QueryUnusedFcb(), FatDeleteFcb(), FatGetNextFcbTopDown(), FatSetRenameInfo(), fcb_load_csums(), fcbopen_main(), FDO_HandleResetCyclePort(), FFSPurgeVolume(), file_create_parse_ea(), fill_in_hard_link_full_id_information(), fill_in_hard_link_information(), FxPkgPnp::FilterResourceRequirements(), find_gid(), find_item_in_tree(), find_metadata_address_in_chunk(), find_new_dup_stripes(), find_new_stripe(), FindSupportedSystemPartition(), finish_inode(), finish_removing_device(), FltEnumerateVolumes(), flush_changed_extent(), flush_extents(), flush_fcb(), flush_refs(), flush_subvol_fcbs(), FlushReceiveQueue(), FlushSendQueue(), FlushShutdownQueue(), free_extent_refs(), free_tree(), free_trees(), free_trees_root(), free_vol(), free_write_data_stripes(), FreeBT_DispatchClean(), FreeDescriptorsFromList(), FreeLogFilterList(), FreeLogList(), FreeNtToWin32PathMappingList(), FsRtlCancelNotify(), FsRtlCancelOplockIIIrp(), FsRtlCheckNotifyForDelete(), FsRtlEmptyFreePoolList(), FsRtlGetNextExtraCreateParameter(), FsRtlIsNotifyOnList(), FsRtlLookupPerFileObjectContext(), FsRtlLookupPerStreamContextInternal(), FsRtlNotifyCleanup(), FsRtlNotifyCompleteIrpList(), FsRtlNotifyFilterReportChange(), FsRtlOplockCleanup(), FsRtlPTeardownPerFileObjectContexts(), FsRtlRemovePerFileObjectContext(), FsRtlRemovePerStreamContext(), FsRtlTeardownPerStreamContexts(), FxLibraryGlobalsDecommission(), GdiPoolAllocate(), GdiPoolDestroy(), get_superblock_size(), GetActiveDiskPartition(), FxPkgIo::GetFirstIoQueueLocked(), FxCollectionInternal::GetFirstItem(), GetFirstListEntry(), FxCollectionInternal::GetLastItem(), FxPkgIo::GetNextIoQueueLocked(), GetNextJobTimeout(), GetNextPartition(), GetPrevPartition(), FxIoTarget::GetSentRequestsListLocked(), GetSystemDisk(), FxUsbPipe::GotoStartState(), FxIoTarget::GotoStopState(), HalAllocateAdapterChannel(), HalpContextToBusHandler(), HandlePhysicalConnection(), has_open_children(), HidClass_Close(), HidClass_GetIrp(), HidClass_ReadCompleteIrp(), HistoryDeleteBuffers(), HistoryReshapeAllBuffers(), if(), IKsFilterFactory_fnRelease(), IniCleanup(), IniFreeSection(), FxPkgGeneral::Initialize(), InitPartitionListUi(), InitTTFontCache(), insert_chunk_fragmented(), InsertJobIntoStartList(), IntCleanupThreadCallbacks(), InternalUnlockCondVar(), IntGdiCleanupMemEntry(), IntGdiCleanupPrivateFontsForProcess(), IntRemoveHook(), IntSendSyncPaint(), IntSetThreadDesktop(), IntVideoPortMapMemory(), IntVideoPortResetDisplayParametersEx(), IoCancelThreadIo(), IoFreeAdapterChannel(), IoFreeIrp(), IoFreeMapRegisters(), IoGetBootDiskInformation(), IopDisassociateThreadIrp(), IopGetErrorLogEntry(), IopNotifyPlugPlayNotification(), IopRemovePlugPlayEvent(), IopUnQueueIrpFromThread(), IoRegisterFsRegistrationChange(), IoReuseIrp(), FxDevice::IsCxInIoPath(), FxIrpQueue::IsQueueEmpty(), IsThereAChildOpened(), IsUniqueIdPresent(), KeConnectInterrupt(), KeDetachProcess(), KeDisconnectInterrupt(), KeFlushQueueApc(), KeInsertByKeyDeviceQueue(), KePulseEvent(), KeReleaseMutant(), KeReleaseSemaphore(), KeRemoveByKeyDeviceQueue(), KeRemoveByKeyDeviceQueueIfBusy(), KeRemoveDeviceQueue(), KeRundownQueue(), KeRundownThread(), KeSetEvent(), KeSetEventBoostPriority(), KeSetProcess(), KeSignalGateBoostPriority(), KeTerminateThread(), KeTestAlertThread(), KeUnstackDetachProcess(), KiCheckAlertability(), KiCompleteTimer(), KiDeliverApc(), KiInitializeContextThread(), KiScanReadyQueues(), KiSelectReadyThread(), KiSignalTimer(), KiTimerExpiration(), KiTimerListExpire(), KsFilterFactoryGetSymbolicLink(), KsFreeObjectBag(), KspAddObjectCreateItemToList(), KspCompletePendingIrps(), KspCreateDeviceReference(), KspFreeCreateItems(), KspFreeDeviceInterfaces(), KspFreeEventList(), KspInstallBusEnumInterface(), KxRemoveTreeTimer(), KxUnwaitThread(), KxUnwaitThreadForEvent(), LanCloseProtocol(), LibTCPDequeuePacket(), LibTCPEmptyQueue(), LibTCPGetDataFromConnectionQueue(), ListenComplete(), LocalEnumForms(), LocalmonShutdown(), log_file_checksum_error(), LogActiveObjects(), LogfCloseAll(), look_for_roots(), LpcExitThread(), LpcpDestroyPortQueue(), LpcpFreeConMsg(), LpcpFreeToPortZone(), LpcpPrepareToWakeClient(), LpcRequestWaitReplyPort(), FxChildList::MarkDescriptionNotPresentWorker(), FxChildList::MarkModificationNotPresentWorker(), MemCleanup(), MiCheckVirtualAddress(), MiniLocateDevice(), MiProtectedPoolUnProtectLinks(), MiRosTrimCache(), MmGetSessionById(), MmHapHeapAllocatorExtend(), MmUnmapViewOfSegment(), mount_vol(), MountMgrAssignDriveLetters(), MountMgrCheckUnprocessedVolumes(), MountMgrCleanup(), MountMgrFreeMountedDeviceInfo(), MountMgrFreeSavedLink(), MountMgrMountedDeviceRemoval(), MountMgrNotify(), MountMgrQueryDosVolumePath(), MountMgrQueryVolumePaths(), MountMgrUnload(), move_across_subvols(), MsqCleanupMessageQueue(), MsqCleanupThreadMsgs(), MsqPeekMessage(), MsqPostMouseMove(), NBFlushPacketQueue(), NduDispatchRead(), nfs41_remove_fcb_entry(), nfs41_update_fcb_list(), NlsUninit(), NpAddDataQueueEntry(), NpCancelDataQueueIrp(), NpCheckForNotify(), NpRemoveDataQueueEntry(), NpSetClosingPipeState(), NpSetConnectedPipeState(), NpSetDisconnectedPipeState(), NtQueryInformationThread(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestWaitReplyPort(), ObpDeleteObject(), OHCI_InsertEndpointInSchedule(), OHCI_PollAsyncEndpoint(), FxPkgGeneral::OnCreate(), open_fileref(), open_fileref_by_inode(), order_space_entry(), PacketSocketRecvComplete(), PacketSocketSendComplete(), ParaNdis5_CancelSendPackets(), ParaNdis5_StopReceive(), ParaNdis5_StopSend(), ParaNdis_DoCopyPacketData(), ParaNdis_PowerOff(), ParaNdis_PowerOn(), ParaNdis_ProcessTx(), PcNewRegistryKey(), PinCaptureProcess(), PinGetIrpFromReadyList(), PipDeviceActionWorker(), PopFlushVolumeWorker(), PopProcessShutDownLists(), PostprocessInput(), FxPkgPnp::PowerCompletePendedWakeIrp(), FxDeviceDescriptionEntry::ProcessDeviceRemoved(), ProcessFragment(), FxChildList::ProcessModificationsLocked(), FxTransactionedList::ProcessObjectsToRelease(), ProcessQueuedRequests(), ProcessSuggestedDriveLetters(), FxTransactionedList::ProcessTransactionList(), ProtocolTransferDataComplete(), PspCreateProcess(), PurgeInputBuffer(), QSI_DEF(), query_filesystems(), rationalize_extents(), read_file(), read_group_mappings(), read_mappings(), reap_fcb(), ReceiveActivity(), ReceiveComplete(), FxChildList::ReenumerateEntryLocked(), regenerate_space_list(), RegisterConnection(), RegpCopyTree(), RegShutdownRegistry(), FxObject::RemoveChildObjectInternal(), FxIoTarget::RemoveCompletedRequestLocked(), FxWmiProvider::RemoveInstance(), FxTransactionedList::RemoveLocked(), RemoveSavedLinks(), rename_file_to_stream(), rename_stream_to_file(), RepairList(), reset_subkeys(), RetryDisconnectCompletion(), ReuseReceiveBufferRegular(), RfsdPurgeVolume(), RpcThreadRoutine(), RtlAllocateHeap(), RtlFindRange(), RtlFreeActivationContextStack(), RtlFreeRangeList(), RtlGetFirstRange(), RtlpClearFreeListsBit(), RtlpCreateUnCommittedRange(), RtlpInsertFreeBlockHelper(), RtlpQueueIoWorkerThread(), RtlpValidateHeap(), RtlpValidateHeapSegment(), RtlSplayTreeTest(), RunNextJob(), RxCancelNotifyChangeDirectoryRequestsForFobx(), RxCancelNotifyChangeDirectoryRequestsForVNetRoot(), RxChangeBufferingState(), RxCloseAssociatedSrvOpen(), RxCompleteSrvOpenKeyAssociation(), RxCreateSrvOpen(), RxFcbTableLookupFcb(), RxFinalizeFcbTable(), RxFinalizeNetFcb(), RxFinalizeNetFobx(), RxFinalizeSrvOpen(), RxFinishSrvCallConstructionDispatcher(), RxIsOkToPurgeFcb(), RxMarkFobxOnCleanup(), RxMarkFobxOnClose(), RxpDiscardChangeBufferingStateRequests(), RxpDispatchChangeBufferingStateRequests(), RxPostOneShotTimerRequest(), RxpScavengeFobxs(), RxPurgeChangeBufferingStateRequestsForSrvOpen(), RxPurgeRelatedFobxs(), RxRemoveFirstContextFromSerializationQueue(), RxRemoveVirtualNetRootFromNetRoot(), RxResumeBlockedOperations_ALL(), RxScavengeRelatedFobxs(), RxSpinUpRequestsDispatcher(), RxTableLookupName(), RxTableLookupName_ExactLengthMatch(), RxTimerDispatch(), ScanForUnpartitionedDiskSpace(), ScrubRegistryRoutine(), SelectPartitionPage(), send_extent_data(), send_xattr(), SendComplete(), SendOnlineNotificationWorker(), set_link_information(), set_rename_information(), SetActivePartition(), SetupCloseFileQueue(), SetupCommitFileQueueW(), SetupDiCallClassInstaller(), SetupDiDestroyDriverInfoList(), SmpCreatePagingFiles(), SmpCreateSystemManagedPagingFile(), SmpCreateVolumeDescriptors(), SmpInitializeDosDevices(), SmpInitializeKnownDlls(), SmpLoadDataFromRegistry(), SmpProcessFileRenames(), sort_data_reloc_refs(), sort_extent_refs(), sort_metadata_reloc_refs(), space_list_add2(), space_list_merge(), space_list_subtract2(), SpiAllocateSrbStructures(), SpiGetNextRequestFromLun(), SpiSaveInterruptData(), split_path(), FxUsbDevice::Start(), START_TEST(), StartCaptureIsocTransfer(), FxCollection::StealCollection(), StreamClassReleaseResources(), StreamSocketConnectComplete(), FxIoTarget::SubmitPendedRequests(), sys_arch_mbox_fetch(), sys_mbox_free(), SysAudio_Shutdown(), TCPDisconnect(), TCPSendEventHandler(), FxSystemThread::Thread(), TiUnload(), trim_unalloc_space(), TrpGenerateMappingTracker(), UDFDelayedClose(), UDFReleaseVCB(), UhciPollNonIsoEndpoint(), UmaMgrCleanup(), uninit(), update_changed_extent_ref(), update_chunk_caches(), update_chunk_usage(), update_chunks(), UpgradeRepairPage(), USB2_Rebalance(), USB2_RebalanceEndpoint(), USBH_FdoQueryBusRelations(), USBH_HubCompleteQueuedPortIdleIrps(), USBH_HubCompleteQueuedPortWakeIrps(), USBPORT_CancelSplitTransfer(), USBPORT_CloseConfiguration(), USBPORT_ClosePipe(), USBPORT_DoneSplitTransfer(), USBPORT_DpcHandler(), USBPORT_EndpointHasQueuedTransfers(), USBPORT_EndpointWorker(), USBPORT_FlushAbortList(), USBPORT_FlushAllEndpoints(), USBPORT_FlushCancelList(), USBPORT_FlushClosedEndpointList(), USBPORT_FlushController(), USBPORT_FlushDoneTransfers(), USBPORT_FlushMapTransfers(), USBPORT_FlushPendingTransfers(), USBPORT_GetTt(), USBPORT_MapTransfer(), USBPORT_MiniportCompleteTransfer(), USBPORT_RemoveDevice(), USBPORT_ResetPipe(), USBPORT_RestoreDevice(), USBPORT_RootHubEndpointWorker(), USBPORT_SplitBulkInterruptTransfer(), USBPORT_SyncResetPipeAndClearStall(), USBPORT_WorkerThreadHandler(), USBSTOR_RemoveIrp(), UserRemoveWindowProps(), VfatCheckForDismount(), VfatCleanupFile(), VfatCloseWorker(), vfatDestroyFCB(), VfatDismountVolume(), VfatDoRequest(), VfatOpenFile(), VfatRenameChildFCB(), VfatSetRenameInformation(), VideoPortEnumerateChildren(), VideoPortFreeCommonBuffer(), VideoPortGetCommonBuffer(), VideoPortPutDmaAdapter(), VirtIONetRelease(), vol_get_device_number(), vol_ioctl_passthrough(), vol_read(), vol_write(), WdmAudOpenSysaudio(), WorkerThread(), WorkItemRoutine(), write_metadata_items(), write_superblocks(), write_trees(), WsAsyncThread(), WsNcRefreshFromRegistry(), WsNcUpdateNamespaceList(),