-/* $Id: rtl.h,v 1.24 2004/01/23 18:00:53 navaraf Exp $
+/* $Id$
*
*/
#ifndef __DDK_RTL_H
* ARGUMENTS:
* ListHead = Caller supplied storage for the head of the list
*/
-#define InitializeListHead(ListHead) \
-{ \
- (ListHead)->Flink = (ListHead); \
- (ListHead)->Blink = (ListHead); \
+static __inline VOID
+InitializeListHead(
+ IN PLIST_ENTRY ListHead)
+{
+ ListHead->Flink = ListHead->Blink = ListHead;
}
* ListHead = Head of the list
* Entry = Entry to insert
*/
-#define InsertHeadList(ListHead, ListEntry) \
-{ \
- PLIST_ENTRY OldFlink; \
- OldFlink = (ListHead)->Flink; \
- (ListEntry)->Flink = OldFlink; \
- (ListEntry)->Blink = (ListHead); \
- OldFlink->Blink = (ListEntry); \
- (ListHead)->Flink = (ListEntry); \
- assert((ListEntry) != NULL); \
- assert((ListEntry)->Blink!=NULL); \
- assert((ListEntry)->Blink->Flink == (ListEntry)); \
- assert((ListEntry)->Flink != NULL); \
- assert((ListEntry)->Flink->Blink == (ListEntry)); \
+static __inline VOID
+InsertHeadList(
+ IN PLIST_ENTRY ListHead,
+ IN PLIST_ENTRY Entry)
+{
+ PLIST_ENTRY OldFlink;
+ OldFlink = ListHead->Flink;
+ Entry->Flink = OldFlink;
+ Entry->Blink = ListHead;
+ OldFlink->Blink = Entry;
+ ListHead->Flink = Entry;
}
* ListHead = Head of the list
* Entry = Entry to insert
*/
-#define InsertTailList(ListHead, ListEntry) \
-{ \
- PLIST_ENTRY OldBlink; \
- OldBlink = (ListHead)->Blink; \
- (ListEntry)->Flink = (ListHead); \
- (ListEntry)->Blink = OldBlink; \
- OldBlink->Flink = (ListEntry); \
- (ListHead)->Blink = (ListEntry); \
- assert((ListEntry) != NULL); \
- assert((ListEntry)->Blink != NULL); \
- assert((ListEntry)->Blink->Flink == (ListEntry)); \
- assert((ListEntry)->Flink != NULL); \
- assert((ListEntry)->Flink->Blink == (ListEntry)); \
+static __inline VOID
+InsertTailList(
+ IN PLIST_ENTRY ListHead,
+ IN PLIST_ENTRY Entry)
+{
+ PLIST_ENTRY OldBlink;
+ OldBlink = ListHead->Blink;
+ Entry->Flink = ListHead;
+ Entry->Blink = OldBlink;
+ OldBlink->Flink = Entry;
+ ListHead->Blink = Entry;
}
/*
* RETURNS:
* The removed entry
*/
-/*
#define PopEntryList(ListHead) \
(ListHead)->Next; \
{ \
- PSINGLE_LIST_ENTRY FirstEntry; \
- FirstEntry = (ListHead)->Next; \
- if (FirstEntry != NULL) \
- { \
- (ListHead)->Next = FirstEntry->Next; \
- } \
+ PSINGLE_LIST_ENTRY _FirstEntry; \
+ _FirstEntry = (ListHead)->Next; \
+ if (_FirstEntry != NULL) \
+ (ListHead)->Next = _FirstEntry->Next; \
}
-*/
-static inline PSINGLE_LIST_ENTRY
-PopEntryList(PSINGLE_LIST_ENTRY ListHead)
-{
- PSINGLE_LIST_ENTRY ListEntry;
-
- ListEntry = ListHead->Next;
- if (ListEntry!=NULL)
- {
- ListHead->Next = ListEntry->Next;
- }
-
- return(ListEntry);
-}
#define RtlCopyMemory(Destination,Source,Length) \
memcpy((Destination),(Source),(Length))
-static
-inline
-VOID
-PushEntryList (
- PSINGLE_LIST_ENTRY ListHead,
- PSINGLE_LIST_ENTRY Entry
- )
-{
- Entry->Next = ListHead->Next;
- ListHead->Next = Entry;
-}
+#define PushEntryList(_ListHead, _Entry) \
+ (_Entry)->Next = (_ListHead)->Next; \
+ (_ListHead)->Next = (_Entry); \
/*
- *VOID
+ *BOOLEAN
*RemoveEntryList (
* PLIST_ENTRY Entry
* );
* ARGUMENTS:
* ListEntry = Entry to remove
*/
-#define RemoveEntryList(ListEntry) \
-{ \
- PLIST_ENTRY OldFlink; \
- PLIST_ENTRY OldBlink; \
- assert((ListEntry) != NULL); \
- assert((ListEntry)->Blink!=NULL); \
- assert((ListEntry)->Blink->Flink == (ListEntry)); \
- assert((ListEntry)->Flink != NULL); \
- assert((ListEntry)->Flink->Blink == (ListEntry)); \
- OldFlink = (ListEntry)->Flink; \
- OldBlink = (ListEntry)->Blink; \
- OldFlink->Blink = OldBlink; \
- OldBlink->Flink = OldFlink; \
- (ListEntry)->Flink = NULL; \
- (ListEntry)->Blink = NULL; \
+static __inline BOOLEAN
+RemoveEntryList(
+ IN PLIST_ENTRY Entry)
+{
+ PLIST_ENTRY OldFlink;
+ PLIST_ENTRY OldBlink;
+
+ OldFlink = Entry->Flink;
+ OldBlink = Entry->Blink;
+ OldFlink->Blink = OldBlink;
+ OldBlink->Flink = OldFlink;
+ return (OldFlink == OldBlink);
}
* RETURNS:
* The removed entry
*/
-/*
-#define RemoveHeadList(ListHead) \
- (ListHead)->Flink; \
- {RemoveEntryList((ListHead)->Flink)}
-*/
-/*
-PLIST_ENTRY
-RemoveHeadList (
- PLIST_ENTRY ListHead
- );
-*/
-
-static
-inline
-PLIST_ENTRY
-RemoveHeadList (
- PLIST_ENTRY ListHead
- )
+static __inline PLIST_ENTRY
+RemoveHeadList(
+ IN PLIST_ENTRY ListHead)
{
- PLIST_ENTRY Old;
- PLIST_ENTRY OldFlink;
- PLIST_ENTRY OldBlink;
-
- Old = ListHead->Flink;
-
- OldFlink = ListHead->Flink->Flink;
- OldBlink = ListHead->Flink->Blink;
- OldFlink->Blink = OldBlink;
- OldBlink->Flink = OldFlink;
- if (Old != ListHead)
- {
- Old->Flink = NULL;
- Old->Blink = NULL;
- }
-
- return(Old);
+ PLIST_ENTRY Flink;
+ PLIST_ENTRY Entry;
+
+ Entry = ListHead->Flink;
+ Flink = Entry->Flink;
+ ListHead->Flink = Flink;
+ Flink->Blink = ListHead;
+ return Entry;
}
* RETURNS:
* The removed entry
*/
-/*
-#define RemoveTailList(ListHead) \
- (ListHead)->Blink; \
- {RemoveEntryList((ListHead)->Blink)}
-*/
-/*
-PLIST_ENTRY
-RemoveTailList (
- PLIST_ENTRY ListHead
- );
-*/
-
-static
-inline
-PLIST_ENTRY
-RemoveTailList (
- PLIST_ENTRY ListHead
- )
+static __inline PLIST_ENTRY
+RemoveTailList(
+ IN PLIST_ENTRY ListHead)
{
- PLIST_ENTRY Old;
- PLIST_ENTRY OldFlink;
- PLIST_ENTRY OldBlink;
-
- Old = ListHead->Blink;
-
- OldFlink = ListHead->Blink->Flink;
- OldBlink = ListHead->Blink->Blink;
- OldFlink->Blink = OldBlink;
- OldBlink->Flink = OldFlink;
- if (Old != ListHead)
- {
- Old->Flink = NULL;
- Old->Blink = NULL;
- }
-
- return(Old);
+ PLIST_ENTRY Blink;
+ PLIST_ENTRY Entry;
+
+ Entry = ListHead->Blink;
+ Blink = Entry->Blink;
+ ListHead->Blink = Blink;
+ Blink->Flink = ListHead;
+ return Entry;
}
#define IsLastEntry(ListHead, Entry) ((ListHead)->Blink == Entry)
+#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination), (Source), (Length)))
NTSTATUS
STDCALL
RtlAppendUnicodeToString (
PUNICODE_STRING Destination,
- PWSTR Source
+ PCWSTR Source
);
-ULONG
-STDCALL
-RtlCompareMemory (
- PVOID Source1,
- PVOID Source2,
- ULONG Length
- );
+SIZE_T STDCALL
+RtlCompareMemory(IN const VOID *Source1,
+ IN const VOID *Source2,
+ IN SIZE_T Length);
BOOLEAN
STDCALL
BOOLEAN CaseInSensitive
);
-VOID
-STDCALL
-RtlGetCallersAddress (
- PVOID * CallersAddress
- );
-
NTSTATUS
STDCALL
RtlQueryRegistryValues (
#define RTL_REGISTRY_WINDOWS_NT 3
#define RTL_REGISTRY_DEVICEMAP 4
#define RTL_REGISTRY_USER 5
-#define RTL_REGISTRY_ENUM 6 /* ReactOS specific: Used internally in kernel only */
-#define RTL_REGISTRY_MAXIMUM 7
+#define RTL_REGISTRY_MAXIMUM 6
#define RTL_REGISTRY_HANDLE 0x40000000
#define RTL_REGISTRY_OPTIONAL 0x80000000
*/
-NTSTATUS
-STDCALL
-RtlAddAtomToAtomTable (
- IN PRTL_ATOM_TABLE AtomTable,
- IN PWSTR AtomName,
- OUT PRTL_ATOM Atom
- );
+NTSTATUS STDCALL
+RtlAbsoluteToSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD,
+ PSECURITY_DESCRIPTOR_RELATIVE RelSD,
+ PULONG BufferLength);
+
+NTSTATUS STDCALL
+RtlAddAccessAllowedAce (PACL Acl,
+ ULONG Revision,
+ ACCESS_MASK AccessMask,
+ PSID Sid);
+
+NTSTATUS
+STDCALL
+RtlAddAccessAllowedAceEx(
+ IN OUT PACL pAcl,
+ IN DWORD dwAceRevision,
+ IN DWORD AceFlags,
+ IN DWORD AccessMask,
+ IN PSID pSid);
+
+
+NTSTATUS STDCALL
+RtlAddAccessDeniedAce (PACL Acl,
+ ULONG Revision,
+ ACCESS_MASK AccessMask,
+ PSID Sid);
+
+NTSTATUS STDCALL
+RtlAddAce (PACL Acl,
+ ULONG Revision,
+ ULONG StartingIndex,
+ PACE AceList,
+ ULONG AceListLength);
+
+NTSTATUS STDCALL
+RtlAddAtomToAtomTable (IN PRTL_ATOM_TABLE AtomTable,
+ IN PWSTR AtomName,
+ OUT PRTL_ATOM Atom);
+
+NTSTATUS STDCALL
+RtlAddAuditAccessAce (PACL Acl,
+ ULONG Revision,
+ ACCESS_MASK AccessMask,
+ PSID Sid,
+ BOOLEAN Success,
+ BOOLEAN Failure);
+
+NTSTATUS STDCALL
+RtlAddRange (IN OUT PRTL_RANGE_LIST RangeList,
+ IN ULONGLONG Start,
+ IN ULONGLONG End,
+ IN UCHAR Attributes,
+ IN ULONG Flags, /* RTL_RANGE_LIST_ADD_... flags */
+ IN PVOID UserData OPTIONAL,
+ IN PVOID Owner OPTIONAL);
+
+NTSTATUS STDCALL
+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,
+ OUT PSID *Sid);
PVOID STDCALL
RtlAllocateHeap (
ULONG Size
);
-WCHAR
-STDCALL
-RtlAnsiCharToUnicodeChar (
- CHAR AnsiChar
- );
+WCHAR STDCALL
+RtlAnsiCharToUnicodeChar (IN CHAR AnsiChar);
ULONG
STDCALL
PUNICODE_STRING Source
);
+BOOLEAN STDCALL
+RtlAreAllAccessesGranted (ACCESS_MASK GrantedAccess,
+ ACCESS_MASK DesiredAccess);
+
+BOOLEAN STDCALL
+RtlAreAnyAccessesGranted (ACCESS_MASK GrantedAccess,
+ ACCESS_MASK DesiredAccess);
+
BOOLEAN
STDCALL
RtlAreBitsClear (
PCHAR Message
);
+VOID
+STDCALL
+RtlCaptureContext (
+ OUT PCONTEXT ContextRecord
+ );
+
+USHORT
+STDCALL
+RtlCaptureStackBackTrace (
+ IN ULONG FramesToSkip,
+ IN ULONG FramesToCapture,
+ OUT PVOID *BackTrace,
+ OUT PULONG BackTraceHash OPTIONAL
+ );
+
+
+
NTSTATUS
STDCALL
RtlCharToInteger (
IN PRTL_BITMAP BitMapHeader
);
+VOID
+STDCALL
+RtlClearBit (
+ PRTL_BITMAP BitMapHeader,
+ ULONG BitNumber
+ );
+
VOID
STDCALL
RtlClearBits (
IN ULONG NumberToClear
);
-DWORD
-STDCALL
+ULONG STDCALL
RtlCompactHeap (
- HANDLE hheap,
- DWORD flags
+ HANDLE Heap,
+ ULONG Flags
);
LONG
IN PVOID WorkSpace);
LARGE_INTEGER STDCALL
-RtlConvertLongToLargeInteger(IN LONG SignedInteger);
+RtlConvertLongToLargeInteger (IN LONG SignedInteger);
NTSTATUS STDCALL
-RtlConvertSidToUnicodeString(IN OUT PUNICODE_STRING String,
- IN PSID Sid,
- IN BOOLEAN AllocateString);
+RtlConvertSidToUnicodeString (IN OUT PUNICODE_STRING String,
+ IN PSID Sid,
+ IN BOOLEAN AllocateString);
LARGE_INTEGER STDCALL
-RtlConvertUlongToLargeInteger(IN ULONG UnsignedInteger);
+RtlConvertUlongToLargeInteger (IN ULONG UnsignedInteger);
#if 0
VOID
PLUID_AND_ATTRIBUTES Src,
PLUID_AND_ATTRIBUTES Dest);
+NTSTATUS STDCALL
+RtlCopyRangeList (OUT PRTL_RANGE_LIST CopyRangeList,
+ IN PRTL_RANGE_LIST RangeList);
+
NTSTATUS STDCALL
RtlCopySid(ULONG BufferLength,
PSID Dest,
RtlCopyUnicodeString(PUNICODE_STRING DestinationString,
PUNICODE_STRING SourceString);
+NTSTATUS STDCALL
+RtlCreateAcl (PACL Acl,
+ ULONG AclSize,
+ ULONG AclRevision);
+
NTSTATUS STDCALL
RtlCreateAtomTable(IN ULONG TableSize,
IN OUT PRTL_ATOM_TABLE *AtomTable);
PRTL_HEAP_DEFINITION Definition
);
-NTSTATUS
-STDCALL
-RtlCreateRegistryKey (
- ULONG RelativeTo,
- PWSTR Path
- );
+NTSTATUS STDCALL
+RtlCreateRegistryKey (ULONG RelativeTo,
+ PWSTR Path);
+
+NTSTATUS STDCALL
+RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ ULONG Revision);
+
+NTSTATUS STDCALL
+RtlCreateSecurityDescriptorRelative (PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor,
+ ULONG Revision);
NTSTATUS
STDCALL
-RtlCreateSecurityDescriptor (
- PSECURITY_DESCRIPTOR SecurityDescriptor,
- ULONG Revision
+RtlCreateSystemVolumeInformationFolder(
+ IN PUNICODE_STRING VolumeRootPath
);
-BOOLEAN
-STDCALL
-RtlCreateUnicodeString (
- OUT PUNICODE_STRING Destination,
- IN PWSTR Source
- );
+BOOLEAN STDCALL
+RtlCreateUnicodeString (OUT PUNICODE_STRING Destination,
+ IN PCWSTR Source);
BOOLEAN STDCALL
-RtlCreateUnicodeStringFromAsciiz (OUT PUNICODE_STRING Destination,
- IN PCSZ Source);
+RtlCreateUnicodeStringFromAsciiz (OUT PUNICODE_STRING Destination,
+ IN PCSZ Source);
NTSTATUS
STDCALL
ULONG CustomSize
);
+BOOLEAN STDCALL
+RtlCutoverTimeToSystemTime(IN PTIME_FIELDS CutoverTimeFields,
+ OUT PLARGE_INTEGER SystemTime,
+ IN PLARGE_INTEGER CurrentTime,
+ IN BOOLEAN ThisYearsCutoverOnly);
+
NTSTATUS STDCALL
RtlDecompressBuffer(IN USHORT CompressionFormat,
OUT PUCHAR UncompressedBuffer,
OUT PULONG FinalUncompressedSize,
IN PVOID WorkSpace);
+PRTL_SPLAY_LINKS
+STDCALL
+RtlDelete (
+ PRTL_SPLAY_LINKS Links
+ );
+
+NTSTATUS STDCALL
+RtlDeleteAce (PACL Acl,
+ ULONG AceIndex);
+
NTSTATUS STDCALL
-RtlDeleteAtomFromAtomTable(IN PRTL_ATOM_TABLE AtomTable,
- IN RTL_ATOM Atom);
+RtlDeleteAtomFromAtomTable (IN PRTL_ATOM_TABLE AtomTable,
+ IN RTL_ATOM Atom);
+
+BOOLEAN
+STDCALL
+RtlDeleteElementGenericTable (
+ PRTL_GENERIC_TABLE Table,
+ PVOID Buffer
+ );
+
+BOOLEAN
+STDCALL
+RtlDeleteElementGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID Buffer
+ );
+
+VOID
+STDCALL
+RtlDeleteNoSplay (
+ PRTL_SPLAY_LINKS Links,
+ PRTL_SPLAY_LINKS *Root
+ );
+
+
+NTSTATUS STDCALL
+RtlDeleteOwnersRanges (IN OUT PRTL_RANGE_LIST RangeList,
+ IN PVOID Owner);
+
+NTSTATUS STDCALL
+RtlDeleteRange (IN OUT PRTL_RANGE_LIST RangeList,
+ IN ULONGLONG Start,
+ IN ULONGLONG End,
+ IN PVOID Owner);
NTSTATUS STDCALL
RtlDescribeChunk(IN USHORT CompressionFormat,
OUT PULONG ChunkSize);
NTSTATUS STDCALL
-RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable);
+RtlDestroyAtomTable (IN PRTL_ATOM_TABLE AtomTable);
+
+HANDLE STDCALL
+RtlDestroyHeap (HANDLE hheap);
+
+NTSTATUS
+STDCALL
+RtlDispatchException(
+ PEXCEPTION_RECORD pExcptRec,
+ CONTEXT * pContext
+ );
-BOOL STDCALL
-RtlDestroyHeap(HANDLE hheap);
NTSTATUS
STDCALL
ULONG Multiplier
);
+PVOID
+STDCALL
+RtlEnumerateGenericTable (
+ PRTL_GENERIC_TABLE Table,
+ BOOLEAN Restart
+ );
+
+PVOID
+STDCALL
+RtlEnumerateGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ BOOLEAN Restart
+ );
+
+PVOID
+STDCALL
+RtlEnumerateGenericTableLikeADirectory (
+ IN PRTL_AVL_TABLE Table,
+ IN PRTL_AVL_MATCH_FUNCTION MatchFunction,
+ IN PVOID MatchData,
+ IN ULONG NextFlag,
+ IN OUT PVOID *RestartKey,
+ IN OUT PULONG DeleteCount,
+ IN OUT PVOID Buffer
+ );
+
+PVOID
+STDCALL
+RtlEnumerateGenericTableWithoutSplaying (
+ PRTL_GENERIC_TABLE Table,
+ PVOID *RestartKey
+ );
+
+PVOID
+STDCALL
+RtlEnumerateGenericTableWithoutSplayingAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID *RestartKey
+ );
+
+BOOLEAN STDCALL
+RtlEqualPrefixSid (PSID Sid1,
+ PSID Sid2);
+
+BOOLEAN STDCALL
+RtlEqualSid (PSID Sid1,
+ PSID Sid2);
+
BOOLEAN
STDCALL
RtlEqualString (
ULONG Fill
);
-NTSTATUS
-STDCALL
-RtlStringFromGUID (
- IN REFGUID Guid,
- OUT PUNICODE_STRING GuidString
- );
-
ULONG
STDCALL
RtlFindClearBits (
ULONG HintIndex
);
+ULONG
+STDCALL
+RtlFindClearRuns (
+ PRTL_BITMAP BitMapHeader,
+ PRTL_BITMAP_RUN RunArray,
+ ULONG SizeOfRunArray,
+ BOOLEAN LocateLongestRuns
+ );
+
+ULONG
+STDCALL
+RtlFindLastBackwardRunClear (
+ IN PRTL_BITMAP BitMapHeader,
+ IN ULONG FromIndex,
+ IN PULONG StartingRunIndex
+ );
+
+ULONG
+STDCALL
+RtlFindNextForwardRunClear (
+ IN PRTL_BITMAP BitMapHeader,
+ IN ULONG FromIndex,
+ IN PULONG StartingRunIndex
+ );
+
+
+PUNICODE_PREFIX_TABLE_ENTRY
+STDCALL
+RtlFindUnicodePrefix (
+ PUNICODE_PREFIX_TABLE PrefixTable,
+ PUNICODE_STRING FullName,
+ ULONG CaseInsensitiveIndex
+ );
+
ULONG
STDCALL
RtlFindFirstRunClear (
PULONG StartingIndex
);
+CCHAR STDCALL
+RtlFindLeastSignificantBit (IN ULONGLONG Set);
+
ULONG
STDCALL
RtlFindLongestRunClear (
OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
);
+CCHAR STDCALL
+RtlFindMostSignificantBit (IN ULONGLONG Set);
+
+NTSTATUS STDCALL
+RtlFindRange (IN PRTL_RANGE_LIST RangeList,
+ IN ULONGLONG Minimum,
+ IN ULONGLONG Maximum,
+ IN ULONG Length,
+ IN ULONG Alignment,
+ IN ULONG Flags,
+ IN UCHAR AttributeAvailableMask,
+ IN PVOID Context OPTIONAL,
+ IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL,
+ OUT PULONGLONG Start);
+
ULONG
STDCALL
RtlFindSetBits (
ULONG HintIndex
);
-NTSTATUS
-STDCALL
-RtlFormatCurrentUserKeyPath (
- IN OUT PUNICODE_STRING KeyPath
- );
+BOOLEAN STDCALL
+RtlFirstFreeAce (PACL Acl,
+ PACE* Ace);
-VOID
-STDCALL
-RtlFreeAnsiString (
- PANSI_STRING AnsiString
- );
+NTSTATUS STDCALL
+RtlFormatCurrentUserKeyPath (IN OUT PUNICODE_STRING KeyPath);
+
+VOID STDCALL
+RtlFreeAnsiString (IN PANSI_STRING AnsiString);
BOOLEAN
STDCALL
PVOID Address
);
+VOID STDCALL
+RtlFreeOemString (IN POEM_STRING OemString);
+
+VOID STDCALL
+RtlFreeRangeList (IN PRTL_RANGE_LIST RangeList);
+
+PVOID STDCALL
+RtlFreeSid (PSID Sid);
+
+VOID STDCALL
+RtlFreeUnicodeString (IN PUNICODE_STRING UnicodeString);
+
+VOID STDCALL
+RtlGenerate8dot3Name (IN PUNICODE_STRING Name,
+ IN BOOLEAN AllowExtendedCharacters,
+ IN OUT PGENERATE_NAME_CONTEXT Context,
+ OUT PUNICODE_STRING Name8dot3);
+
+NTSTATUS STDCALL
+RtlGetAce (PACL Acl,
+ ULONG AceIndex,
+ PACE *Ace);
+
VOID
STDCALL
-RtlFreeOemString (
- POEM_STRING OemString
+RtlGetCallersAddress(
+ OUT PVOID *CallersAddress,
+ OUT PVOID *CallersCaller
);
-VOID
+NTSTATUS STDCALL
+RtlGetCompressionWorkSpaceSize (IN USHORT CompressionFormatAndEngine,
+ OUT PULONG CompressBufferAndWorkSpaceSize,
+ OUT PULONG CompressFragmentWorkSpaceSize);
+
+NTSTATUS STDCALL
+RtlGetControlSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PSECURITY_DESCRIPTOR_CONTROL Control,
+ PULONG Revision);
+
+NTSTATUS STDCALL
+RtlGetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PBOOLEAN DaclPresent,
+ PACL* Dacl,
+ PBOOLEAN DaclDefaulted);
+
+VOID STDCALL
+RtlGetDefaultCodePage (OUT PUSHORT AnsiCodePage,
+ OUT PUSHORT OemCodePage);
+
+PVOID
STDCALL
-RtlFreeUnicodeString (
- PUNICODE_STRING UnicodeString
+RtlGetElementGenericTable(
+ PRTL_GENERIC_TABLE Table,
+ ULONG I
);
-VOID STDCALL
-RtlGenerate8dot3Name(IN PUNICODE_STRING Name,
- IN BOOLEAN AllowExtendedCharacters,
- IN OUT PGENERATE_NAME_CONTEXT Context,
- OUT PUNICODE_STRING Name8dot3);
+PVOID
+STDCALL
+RtlGetElementGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ ULONG I
+ );
NTSTATUS STDCALL
-RtlGetCompressionWorkSpaceSize(IN USHORT CompressionFormatAndEngine,
- OUT PULONG CompressBufferAndWorkSpaceSize,
- OUT PULONG CompressFragmentWorkSpaceSize);
+RtlGetFirstRange (IN PRTL_RANGE_LIST RangeList,
+ OUT PRTL_RANGE_LIST_ITERATOR Iterator,
+ OUT PRTL_RANGE *Range);
-VOID
+NTSTATUS STDCALL
+RtlGetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PSID* Group,
+ PBOOLEAN GroupDefaulted);
+
+NTSTATUS STDCALL
+RtlGetLastNtStatus(VOID);
+
+ULONG STDCALL
+RtlGetLastWin32Error(VOID);
+
+NTSTATUS STDCALL
+RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
+ OUT PRTL_RANGE *Range,
+ IN BOOLEAN MoveForwards);
+
+ULONG
STDCALL
-RtlGetDefaultCodePage (
- PUSHORT AnsiCodePage,
- PUSHORT OemCodePage
+RtlGetNtGlobalFlags (
+ VOID
+ );
+
+NTSTATUS STDCALL
+RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PSID* Owner,
+ PBOOLEAN OwnerDefaulted);
+
+NTSTATUS STDCALL
+RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PBOOLEAN SaclPresent,
+ PACL* Sacl,
+ PBOOLEAN SaclDefaulted);
+
+BOOLEAN STDCALL
+RtlGetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PUCHAR RMControl);
+
+NTSTATUS
+STDCALL
+RtlGetSetBootStatusData(
+ HANDLE Filehandle,
+ BOOLEAN WriteMode,
+ DWORD DataClass,
+ PVOID Buffer,
+ ULONG BufferSize,
+ DWORD DataClass2
+ );
+
+NTSTATUS STDCALL
+RtlGUIDFromString (IN PUNICODE_STRING GuidString,
+ OUT GUID* Guid);
+
+NTSTATUS
+STDCALL
+RtlHashUnicodeString(
+ IN const UNICODE_STRING *String,
+ IN BOOLEAN CaseInSensitive,
+ IN ULONG HashAlgorithm,
+ OUT PULONG HashValue
);
+PSID_IDENTIFIER_AUTHORITY STDCALL
+RtlIdentifierAuthoritySid (PSID Sid);
+
PVOID
STDCALL
RtlImageDirectoryEntryToData (
OUT PCPTABLEINFO CodePageTable
);
-VOID
+VOID
+STDCALL
+RtlInitializeUnicodePrefix (
+ PUNICODE_PREFIX_TABLE PrefixTable
+ );
+
+NTSTATUS STDCALL
+RtlInitializeSid (PSID Sid,
+ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
+ UCHAR SubAuthorityCount);
+
+VOID
+STDCALL
+RtlInitializeBitMap(
+ IN PRTL_BITMAP BitMapHeader,
+ IN PULONG BitMapBuffer,
+ IN ULONG SizeOfBitMap);
+
+VOID
+STDCALL
+RtlInitNlsTables (
+ IN PUSHORT AnsiTableBase,
+ IN PUSHORT OemTableBase,
+ IN PUSHORT CaseTableBase,
+ OUT PNLSTABLEINFO NlsTable
+ );
+
+VOID
+STDCALL
+RtlInitString (
+ PSTRING DestinationString,
+ PCSZ SourceString
+ );
+
+VOID
+STDCALL
+RtlInitUnicodeString (
+ PUNICODE_STRING DestinationString,
+ PCWSTR SourceString
+ );
+
+VOID
+STDCALL
+RtlInitializeBitMap (
+ IN OUT PRTL_BITMAP BitMapHeader,
+ IN PULONG BitMapBuffer,
+ IN ULONG SizeOfBitMap
+ );
+
+NTSTATUS
+STDCALL
+RtlInitializeContext (
+ IN HANDLE ProcessHandle,
+ OUT PCONTEXT ThreadContext,
+ IN PVOID ThreadStartParam OPTIONAL,
+ IN PTHREAD_START_ROUTINE ThreadStartAddress,
+ IN PINITIAL_TEB InitialTeb
+ );
+
+VOID
+STDCALL
+RtlInitializeGenericTable (
+ PRTL_GENERIC_TABLE Table,
+ PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
+ PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
+ PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
+ PVOID TableContext
+ );
+
+VOID
+STDCALL
+RtlInitializeGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
+ PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
+ PRTL_AVL_FREE_ROUTINE FreeRoutine,
+ PVOID TableContext
+ );
+
+VOID STDCALL
+RtlInitializeRangeList (IN OUT PRTL_RANGE_LIST RangeList);
+
+PVOID
+STDCALL
+RtlInsertElementGenericTable (
+ PRTL_GENERIC_TABLE Table,
+ PVOID Buffer,
+ ULONG BufferSize,
+ PBOOLEAN NewElement OPTIONAL
+ );
+
+PVOID
+STDCALL
+RtlInsertElementGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID Buffer,
+ ULONG BufferSize,
+ PBOOLEAN NewElement OPTIONAL
+ );
+
+PVOID
+STDCALL
+RtlInsertElementGenericTableFull (
+ PRTL_GENERIC_TABLE Table,
+ PVOID Buffer,
+ ULONG BufferSize,
+ PBOOLEAN NewElement OPTIONAL,
+ PVOID NodeOrParent,
+ TABLE_SEARCH_RESULT SearchResult
+ );
+
+PVOID
+STDCALL
+RtlInsertElementGenericTableFullAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID Buffer,
+ ULONG BufferSize,
+ PBOOLEAN NewElement OPTIONAL,
+ PVOID NodeOrParent,
+ TABLE_SEARCH_RESULT SearchResult
+ );
+
+BOOLEAN
+STDCALL
+RtlInsertUnicodePrefix (
+ PUNICODE_PREFIX_TABLE PrefixTable,
+ PUNICODE_STRING Prefix,
+ PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry
+ );
+
+NTSTATUS
+STDCALL
+RtlInt64ToUnicodeString (
+ IN ULONGLONG Value,
+ IN ULONG Base OPTIONAL,
+ IN OUT PUNICODE_STRING String
+ );
+
+NTSTATUS
+STDCALL
+RtlIntegerToChar (
+ IN ULONG Value,
+ IN ULONG Base,
+ IN ULONG Length,
+ IN OUT PCHAR String
+ );
+
+NTSTATUS
+STDCALL
+RtlIntegerToUnicode(
+ IN ULONG Value,
+ IN ULONG Base OPTIONAL,
+ IN ULONG Length OPTIONAL,
+ IN OUT LPWSTR String
+ );
+
+NTSTATUS
+STDCALL
+RtlIntegerToUnicodeString (
+ IN ULONG Value,
+ IN ULONG Base,
+ IN OUT PUNICODE_STRING String
+ );
+
+NTSTATUS STDCALL
+RtlInvertRangeList (OUT PRTL_RANGE_LIST InvertedRangeList,
+ IN PRTL_RANGE_LIST RangeList);
+
+LPSTR
+STDCALL
+RtlIpv4AddressToStringA(
+ PULONG IP,
+ LPSTR Buffer
+ );
+
+NTSTATUS
+STDCALL
+RtlIpv4AddressToStringExA(
+ PULONG IP,
+ PULONG Port,
+ LPSTR Buffer,
+ PULONG MaxSize
+ );
+
+LPWSTR
+STDCALL
+RtlIpv4AddressToStringW(
+ PULONG IP,
+ LPWSTR Buffer
+ );
+
+NTSTATUS
+STDCALL
+RtlIpv4AddressToStringExW(
+ PULONG IP,
+ PULONG Port,
+ LPWSTR Buffer,
+ PULONG MaxSize
+ );
+
+NTSTATUS
+STDCALL
+RtlIpv4StringToAddressA(
+ IN LPSTR IpString,
+ IN ULONG Base,
+ OUT PVOID PtrToIpAddr,
+ OUT ULONG IpAddr
+ );
+
+NTSTATUS
+STDCALL
+RtlIpv4StringToAddressExA(
+ IN LPSTR IpString,
+ IN ULONG Base,
+ OUT PULONG IpAddr,
+ OUT PULONG Port
+ );
+
+NTSTATUS
+STDCALL
+RtlIpv4StringToAddressW(
+ IN LPWSTR IpString,
+ IN ULONG Base,
+ OUT PVOID PtrToIpAddr,
+ OUT ULONG IpAddr
+ );
+
+NTSTATUS
STDCALL
-RtlInitNlsTables (
- IN PUSHORT AnsiTableBase,
- IN PUSHORT OemTableBase,
- IN PUSHORT CaseTableBase,
- OUT PNLSTABLEINFO NlsTable
+RtlIpv4StringToAddressExW(
+ IN LPWSTR IpString,
+ IN ULONG Base,
+ OUT PULONG IpAddr,
+ OUT PULONG Port
);
-VOID
+NTSTATUS
STDCALL
-RtlInitString (
- PSTRING DestinationString,
- PCSZ SourceString
+RtlIpv6AddressToStringA(
+ PULONG IP,
+ LPSTR Buffer
);
-VOID
+NTSTATUS
STDCALL
-RtlInitUnicodeString (
- PUNICODE_STRING DestinationString,
- PCWSTR SourceString
+RtlIpv6AddressToStringExA(
+ PULONG IP,
+ PULONG Port,
+ LPSTR Buffer,
+ PULONG MaxSize
);
-VOID
+NTSTATUS
STDCALL
-RtlInitializeBitMap (
- IN OUT PRTL_BITMAP BitMapHeader,
- IN PULONG BitMapBuffer,
- IN ULONG SizeOfBitMap
+RtlIpv6AddressToStringW(
+ PULONG IP,
+ LPWSTR Buffer
);
NTSTATUS
STDCALL
-RtlInitializeContext (
- IN HANDLE ProcessHandle,
- IN PCONTEXT Context,
- IN PVOID Parameter,
- IN PTHREAD_START_ROUTINE StartAddress,
- IN OUT PUSER_STACK UserStack
+RtlIpv6AddressToStringExW(
+ PULONG IP,
+ PULONG Port,
+ LPWSTR Buffer,
+ PULONG MaxSize
);
-VOID
+NTSTATUS
STDCALL
-RtlInitializeGenericTable (
- IN OUT PRTL_GENERIC_TABLE Table,
- IN PVOID CompareRoutine,
- IN PVOID AllocateRoutine,
- IN PVOID FreeRoutine,
- IN ULONG UserParameter
+RtlIpv6StringToAddressA(
+ IN LPSTR IpString,
+ IN ULONG Base,
+ OUT PVOID PtrToIpAddr,
+ OUT ULONG IpAddr
);
-PVOID
+NTSTATUS
STDCALL
-RtlInsertElementGenericTable (
- IN OUT PRTL_GENERIC_TABLE Table,
- IN PVOID Element,
- IN ULONG ElementSize,
- IN ULONG Unknown4
+RtlIpv6StringToAddressExA(
+ IN LPSTR IpString,
+ IN ULONG Base,
+ OUT PULONG IpAddr,
+ OUT PULONG Port
);
NTSTATUS
STDCALL
-RtlIntegerToChar (
- IN ULONG Value,
- IN ULONG Base,
- IN ULONG Length,
- IN OUT PCHAR String
+RtlIpv6StringToAddressW(
+ IN LPWSTR IpString,
+ IN ULONG Base,
+ OUT PVOID PtrToIpAddr,
+ OUT ULONG IpAddr
);
NTSTATUS
STDCALL
-RtlIntegerToUnicodeString (
- IN ULONG Value,
- IN ULONG Base,
- IN OUT PUNICODE_STRING String
+RtlIpv6StringToAddressExW(
+ IN LPWSTR IpString,
+ IN ULONG Base,
+ OUT PULONG IpAddr,
+ OUT PULONG Port
);
BOOLEAN
STDCALL
RtlIsGenericTableEmpty (
- IN PRTL_GENERIC_TABLE Table
+ PRTL_GENERIC_TABLE Table
);
BOOLEAN
STDCALL
-RtlIsNameLegalDOS8Dot3 (
- IN PUNICODE_STRING UnicodeName,
- IN PANSI_STRING AnsiName,
- OUT PBOOLEAN SpacesFound
+RtlIsGenericTableEmptyAvl (
+ PRTL_AVL_TABLE Table
);
+
+BOOLEAN STDCALL
+RtlIsNameLegalDOS8Dot3 (IN PUNICODE_STRING UnicodeName,
+ IN PANSI_STRING AnsiName,
+ OUT PBOOLEAN SpacesFound);
+
+NTSTATUS STDCALL
+RtlIsRangeAvailable (IN PRTL_RANGE_LIST RangeList,
+ IN ULONGLONG Start,
+ IN ULONGLONG End,
+ IN ULONG Flags,
+ IN UCHAR AttributeAvailableMask,
+ IN PVOID Context OPTIONAL,
+ IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL,
+ OUT PBOOLEAN Available);
+
ULONG
STDCALL
RtlIsTextUnicode (
ULONG *Flags
);
+BOOLEAN
+STDCALL
+RtlIsValidOemCharacter (
+ IN PWCHAR Char
+ );
+
LARGE_INTEGER
STDCALL
RtlLargeIntegerAdd (
LARGE_INTEGER Subtrahend
);
-ULONG
+ULONG STDCALL
+RtlLengthRequiredSid (UCHAR SubAuthorityCount);
+
+ULONG STDCALL
+RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
+
+ULONG STDCALL
+RtlLengthSid (PSID Sid);
+
+NTSTATUS
+STDCALL
+RtlLockBootStatusData(
+ HANDLE Filehandle
+ );
+
+BOOLEAN STDCALL
+RtlLockHeap (IN HANDLE Heap);
+
+NTSTATUS STDCALL
+RtlLookupAtomInAtomTable (IN PRTL_ATOM_TABLE AtomTable,
+ IN PWSTR AtomName,
+ OUT PRTL_ATOM Atom);
+
+PVOID
+STDCALL
+RtlLookupElementGenericTable (
+ PRTL_GENERIC_TABLE Table,
+ PVOID Buffer
+ );
+
+PVOID
+STDCALL
+RtlLookupElementGenericTableAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID Buffer
+ );
+
+PVOID
STDCALL
-RtlLengthSecurityDescriptor (
- PSECURITY_DESCRIPTOR SecurityDescriptor
+RtlLookupElementGenericTableFull (
+ PRTL_GENERIC_TABLE Table,
+ PVOID Buffer,
+ OUT PVOID *NodeOrParent,
+ OUT TABLE_SEARCH_RESULT *SearchResult
);
-BOOL
+PVOID
STDCALL
-RtlLockHeap (
- HANDLE hheap
+RtlLookupElementGenericTableFullAvl (
+ PRTL_AVL_TABLE Table,
+ PVOID Buffer,
+ OUT PVOID *NodeOrParent,
+ OUT TABLE_SEARCH_RESULT *SearchResult
);
+NTSTATUS STDCALL
+RtlMakeSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD,
+ PSECURITY_DESCRIPTOR_RELATIVE RelSD,
+ PULONG BufferLength);
+
+VOID STDCALL
+RtlMapGenericMask (PACCESS_MASK AccessMask,
+ PGENERIC_MAPPING GenericMapping);
+
NTSTATUS
STDCALL
-RtlLookupAtomInAtomTable (
- IN PRTL_ATOM_TABLE AtomTable,
- IN PWSTR AtomName,
- OUT PRTL_ATOM Atom
+RtlMapSecurityErrorToNtStatus(
+ IN ULONG SecurityError
);
+NTSTATUS STDCALL
+RtlMergeRangeLists (OUT PRTL_RANGE_LIST MergedRangeList,
+ IN PRTL_RANGE_LIST RangeList1,
+ IN PRTL_RANGE_LIST RangeList2,
+ IN ULONG Flags);
+
NTSTATUS
STDCALL
RtlMultiByteToUnicodeN (
ULONG MbSize
);
+PUNICODE_PREFIX_TABLE_ENTRY
+STDCALL
+RtlNextUnicodePrefix (
+ PUNICODE_PREFIX_TABLE PrefixTable,
+ BOOLEAN Restart
+ );
+
DWORD
STDCALL
RtlNtStatusToDosError (
ULONG
STDCALL
-RtlNumberGenericTableElements (
- IN PRTL_GENERIC_TABLE Table
+RtlNumberGenericTableElements(
+ PRTL_GENERIC_TABLE Table
+ );
+
+ULONG
+STDCALL
+RtlNumberGenericTableElementsAvl (
+ PRTL_AVL_TABLE Table
);
+
ULONG
STDCALL
RtlNumberOfClearBits (
NTSTATUS
STDCALL
-RtlOemToUnicodeN (
- PWCHAR UnicodeString,
- ULONG UnicodeSize,
- PULONG ResultSize,
- PCHAR OemString,
- ULONG OemSize
+RtlOemToUnicodeN(
+ PWSTR UnicodeString,
+ ULONG MaxBytesInUnicodeString,
+ PULONG BytesInUnicodeString,
+ IN PCHAR OemString,
+ ULONG BytesInOemString
);
NTSTATUS STDCALL
IN RTL_ATOM Atom
);
+VOID
+FASTCALL
+RtlPrefetchMemoryNonTemporal(
+ IN PVOID Source,
+ IN SIZE_T Length
+ );
+
BOOLEAN
STDCALL
RtlPrefixString (
IN OUT PULONG NameLength OPTIONAL
);
-NTSTATUS
+NTSTATUS STDCALL
+RtlQueryInformationAcl (PACL Acl,
+ PVOID Information,
+ ULONG InformationLength,
+ ACL_INFORMATION_CLASS InformationClass);
+
+NTSTATUS STDCALL
+RtlQueryTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation);
+
+VOID STDCALL
+RtlRaiseException (IN PEXCEPTION_RECORD ExceptionRecord);
+
+VOID STDCALL
+RtlRaiseStatus(NTSTATUS Status);
+
+ULONG STDCALL
+RtlRandom (PULONG Seed);
+
+ULONG
STDCALL
-RtlQueryTimeZoneInformation (
- IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation
- );
+RtlRandomEx(
+ PULONG Seed
+ );
-VOID
+PRTL_SPLAY_LINKS
STDCALL
-RtlRaiseException (
- IN PEXCEPTION_RECORD ExceptionRecord
+RtlRealPredecessor (
+ PRTL_SPLAY_LINKS Links
);
-LPVOID
+PRTL_SPLAY_LINKS
STDCALL
+RtlRealSuccessor (
+ PRTL_SPLAY_LINKS Links
+ );
+
+PVOID STDCALL
RtlReAllocateHeap (
- HANDLE hheap,
- DWORD flags,
- LPVOID ptr,
- DWORD size
+ HANDLE Heap,
+ ULONG Flags,
+ PVOID Ptr,
+ ULONG Size
+ );
+
+VOID
+STDCALL
+RtlRemoveUnicodePrefix (
+ PUNICODE_PREFIX_TABLE PrefixTable,
+ PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry
);
NTSTATUS
IN ULONG ChunkSize
);
-VOID
-STDCALL
-RtlResetRtlTranslations (
- IN PNLSTABLEINFO NlsTable
- );
+VOID STDCALL
+RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable);
+
+VOID STDCALL
+RtlRestoreLastWin32Error(IN ULONG Error);
/*
* VOID
* );
*/
#define RtlRetrieveUlong(DestAddress,SrcAddress) \
- if ((ULONG)(SrcAddress) & LONG_MASK) \
+ if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
{ \
((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
* );
*/
#define RtlRetrieveUshort(DestAddress,SrcAddress) \
- if ((ULONG)(SrcAddress) & SHORT_MASK) \
+ if ((ULONG_PTR)(SrcAddress) & SHORT_MASK) \
{ \
((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
*((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
}
-VOID
-STDCALL
-RtlSecondsSince1970ToTime (
- ULONG SecondsSince1970,
- PLARGE_INTEGER Time
- );
+VOID STDCALL
+RtlSecondsSince1970ToTime (ULONG SecondsSince1970,
+ PLARGE_INTEGER Time);
-VOID
+VOID STDCALL
+RtlSecondsSince1980ToTime (ULONG SecondsSince1980,
+ PLARGE_INTEGER Time);
+
+NTSTATUS STDCALL
+RtlSelfRelativeToAbsoluteSD (PSECURITY_DESCRIPTOR_RELATIVE RelSD,
+ PSECURITY_DESCRIPTOR AbsSD,
+ PULONG AbsSDSize,
+ PACL Dacl,
+ PULONG DaclSize,
+ PACL Sacl,
+ PULONG SaclSize,
+ PSID Owner,
+ PULONG OwnerSize,
+ PSID Group,
+ PULONG GroupSize);
+
+NTSTATUS
STDCALL
-RtlSecondsSince1980ToTime (
- ULONG SecondsSince1980,
- PLARGE_INTEGER Time
+RtlSelfRelativeToAbsoluteSD2(
+ PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor,
+ PULONG BufferSize
);
+VOID STDCALL
+RtlSetAllBits (IN PRTL_BITMAP BitMapHeader);
+
+NTSTATUS STDCALL
+RtlSetAttributesSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+ IN SECURITY_DESCRIPTOR_CONTROL Control,
+ OUT PULONG Revision);
+
VOID
STDCALL
-RtlSetAllBits (
- IN PRTL_BITMAP BitMapHeader
+RtlSetBit (
+ PRTL_BITMAP BitMapHeader,
+ ULONG BitNumber
);
VOID
ULONG NumberToSet
);
-NTSTATUS
-STDCALL
-RtlSetDaclSecurityDescriptor (
- PSECURITY_DESCRIPTOR SecurityDescriptor,
- BOOLEAN DaclPresent,
- PACL Dacl,
- BOOLEAN DaclDefaulted
- );
+NTSTATUS STDCALL
+RtlSetControlSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+ IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
+ IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet);
-NTSTATUS
-STDCALL
-RtlSetTimeZoneInformation (
- IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation
- );
+NTSTATUS STDCALL
+RtlSetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ BOOLEAN DaclPresent,
+ PACL Dacl,
+ BOOLEAN DaclDefaulted);
-DWORD
+NTSTATUS STDCALL
+RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PSID Group,
+ BOOLEAN GroupDefaulted);
+
+NTSTATUS STDCALL
+RtlSetInformationAcl (PACL Acl,
+ PVOID Information,
+ ULONG InformationLength,
+ ACL_INFORMATION_CLASS InformationClass);
+
+VOID STDCALL
+RtlSetLastWin32Error(IN ULONG Error);
+
+VOID STDCALL
+RtlSetLastWin32ErrorAndNtStatusFromNtStatus(IN NTSTATUS Status);
+
+NTSTATUS STDCALL
+RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PSID Owner,
+ BOOLEAN OwnerDefaulted);
+
+NTSTATUS STDCALL
+RtlSetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
+ BOOLEAN SaclPresent,
+ PACL Sacl,
+ BOOLEAN SaclDefaulted);
+
+VOID STDCALL
+RtlSetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,
+ PUCHAR RMControl);
+
+NTSTATUS STDCALL
+RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation);
+
+ULONG STDCALL
+RtlSizeHeap(
+ IN PVOID HeapHandle,
+ IN ULONG Flags,
+ IN PVOID MemoryPointer
+ );
+
+PRTL_SPLAY_LINKS
STDCALL
-RtlSizeHeap (
- HANDLE hheap,
- DWORD flags,
- PVOID pmem
+RtlSplay (
+ PRTL_SPLAY_LINKS Links
);
/*
* );
*/
#define RtlStoreUlong(Address,Value) \
- if ((ULONG)(Address) & LONG_MASK) \
+ if ((ULONG_PTR)(Address) & LONG_MASK) \
{ \
((PUCHAR)(Address))[LONG_LEAST_SIGNIFICANT_BIT]=(UCHAR)(FIRSTBYTE(Value)); \
- ((PUCHAR)(Address))[LONG_3RD_MOST_SIGNIFICANT_BIT]=(UCHAR)(FIRSTBYTE(Value)); \
+ ((PUCHAR)(Address))[LONG_3RD_MOST_SIGNIFICANT_BIT]=(UCHAR)(SECONDBYTE(Value)); \
((PUCHAR)(Address))[LONG_2ND_MOST_SIGNIFICANT_BIT]=(UCHAR)(THIRDBYTE(Value)); \
((PUCHAR)(Address))[LONG_MOST_SIGNIFICANT_BIT]=(UCHAR)(FOURTHBYTE(Value)); \
} \
* );
*/
#define RtlStoreUshort(Address,Value) \
- if ((ULONG)(Address) & SHORT_MASK) \
+ if ((ULONG_PTR)(Address) & SHORT_MASK) \
{ \
((PUCHAR)(Address))[SHORT_LEAST_SIGNIFICANT_BIT]=(UCHAR)(FIRSTBYTE(Value)); \
((PUCHAR)(Address))[SHORT_MOST_SIGNIFICANT_BIT]=(UCHAR)(SECONDBYTE(Value)); \
{ \
*((PUSHORT)(Address))=(USHORT)(Value); \
}
-
+
+NTSTATUS STDCALL
+RtlStringFromGUID (IN REFGUID Guid,
+ OUT PUNICODE_STRING GuidString);
+
+PULONG STDCALL
+RtlSubAuthoritySid (PSID Sid,
+ ULONG SubAuthority);
+
+PULONG STDCALL
+RtlSubAuthoritySid (PSID Sid,
+ ULONG SubAuthority);
+
+PUCHAR STDCALL
+RtlSubAuthorityCountSid (PSID Sid);
+
+PRTL_SPLAY_LINKS
+STDCALL
+RtlSubtreePredecessor (
+ PRTL_SPLAY_LINKS Links
+ );
+
+PRTL_SPLAY_LINKS
+STDCALL
+RtlSubtreeSuccessor (
+ PRTL_SPLAY_LINKS Links
+ );
+
BOOLEAN
STDCALL
-RtlTimeFieldsToTime (
- PTIME_FIELDS TimeFields,
- PLARGE_INTEGER Time
+RtlTestBit (
+ PRTL_BITMAP BitMapHeader,
+ ULONG BitNumber
);
+
+BOOLEAN STDCALL
+RtlTimeFieldsToTime (PTIME_FIELDS TimeFields,
+ PLARGE_INTEGER Time);
+
BOOLEAN
STDCALL
RtlTimeToSecondsSince1970 (
PULONG SecondsSince1980
);
+VOID
+STDCALL
+RtlTimeToElapsedTimeFields(
+ PLARGE_INTEGER Time,
+ PTIME_FIELDS TimeFields
+ );
+
VOID
STDCALL
RtlTimeToTimeFields (
PTIME_FIELDS TimeFields
);
+
+ULONG FASTCALL
+RtlUlongByteSwap (IN ULONG Source);
+
+ULONGLONG FASTCALL
+RtlUlonglongByteSwap (IN ULONGLONG Source);
+
ULONG
STDCALL
RtlUnicodeStringToAnsiSize (
ULONG UnicodeSize
);
-BOOL
+ULONG STDCALL
+RtlUniform (PULONG Seed);
+
+BOOLEAN STDCALL
+RtlUnlockHeap (IN HANDLE Heap);
+
+NTSTATUS
STDCALL
-RtlUnlockHeap (
- HANDLE hheap
+RtlUnlockBootStatusData(
+ HANDLE Filehandle
);
VOID
ULONG UnicodeSize
);
-CHAR
+CHAR STDCALL
+RtlUpperChar (CHAR Source);
+
+VOID STDCALL
+RtlUpperString (PSTRING DestinationString,
+ PSTRING SourceString);
+
+USHORT FASTCALL
+RtlUshortByteSwap (IN USHORT Source);
+
+BOOLEAN STDCALL
+RtlValidAcl (PACL Acl);
+
+BOOLEAN STDCALL
+RtlValidateHeap (
+ HANDLE Heap,
+ ULONG Flags,
+ PVOID pmem
+ );
+
+BOOLEAN
STDCALL
-RtlUpperChar (
- CHAR Source
+RtlValidRelativeSecurityDescriptor (
+ IN PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput,
+ IN ULONG SecurityDescriptorLength,
+ IN SECURITY_INFORMATION RequiredInformation
);
-VOID
+BOOLEAN STDCALL
+RtlValidSecurityDescriptor (IN PSECURITY_DESCRIPTOR SecurityDescriptor);
+
+BOOLEAN STDCALL
+RtlValidSid (IN PSID Sid);
+
+/*
+NTSTATUS
STDCALL
-RtlUpperString (
- PSTRING DestinationString,
- PSTRING SourceString
+RtlVerifyVersionInfo(
+ IN PRTL_OSVERSIONINFOEXW VersionInfo,
+ IN ULONG TypeMask,
+ IN ULONGLONG ConditionMask
);
+*/
-BOOL
+NTSTATUS
STDCALL
-RtlValidateHeap (
- HANDLE hheap,
- DWORD flags,
- PVOID pmem
+RtlVolumeDeviceToDosName(
+ IN PVOID VolumeDeviceObject,
+ OUT PUNICODE_STRING DosName
);
-BOOLEAN
+ULONG
STDCALL
-RtlValidSecurityDescriptor (
- PSECURITY_DESCRIPTOR SecurityDescriptor
+RtlWalkFrameChain (
+ OUT PVOID *Callers,
+ IN ULONG Count,
+ IN ULONG Flags
);
BOOLEAN STDCALL
-RtlValidSid(IN PSID Sid);
+RtlZeroHeap(
+ IN PVOID HeapHandle,
+ IN ULONG Flags
+ );
ULONG
STDCALL
IN PUNICODE_STRING UnicodeString
);
+NTSTATUS
+FASTCALL
+RtlpOemStringToCountedUnicodeString(
+ IN OUT PUNICODE_STRING UniDest,
+ IN POEM_STRING OemSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUpcaseUnicodeString(
+ IN OUT PUNICODE_STRING UniDest,
+ IN PCUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUpcaseUnicodeStringToAnsiString(
+ IN OUT PANSI_STRING AnsiDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUpcaseUnicodeStringToCountedOemString(
+ IN OUT POEM_STRING OemDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUpcaseUnicodeStringToOemString (
+ IN OUT POEM_STRING OemDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpDowncaseUnicodeString(
+ IN OUT PUNICODE_STRING UniDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpAnsiStringToUnicodeString(
+ IN OUT PUNICODE_STRING DestinationString,
+ IN PANSI_STRING SourceString,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUnicodeStringToAnsiString(
+ IN OUT PANSI_STRING AnsiDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpOemStringToUnicodeString(
+ IN OUT PUNICODE_STRING UniDest,
+ IN POEM_STRING OemSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUnicodeStringToOemString(
+ IN OUT POEM_STRING OemDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+
+BOOLEAN
+FASTCALL
+RtlpCreateUnicodeString(
+ IN OUT PUNICODE_STRING UniDest,
+ IN PCWSTR Source,
+ IN POOL_TYPE PoolType);
+
+NTSTATUS
+FASTCALL
+RtlpUnicodeStringToCountedOemString(
+ IN OUT POEM_STRING OemDest,
+ IN PUNICODE_STRING UniSource,
+ IN BOOLEAN AllocateDestinationString,
+ IN POOL_TYPE PoolType);
+NTSTATUS STDCALL
+RtlpDuplicateUnicodeString(
+ INT AddNull,
+ IN PUNICODE_STRING SourceString,
+ PUNICODE_STRING DestinationString,
+ POOL_TYPE PoolType);
+
/* Register io functions */
UCHAR
);
-NTSTATUS STDCALL RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision);
-NTSTATUS STDCALL RtlQueryInformationAcl (PACL Acl, PVOID Information, ULONG InformationLength, ACL_INFORMATION_CLASS InformationClass);
-NTSTATUS STDCALL RtlSetInformationAcl (PACL Acl, PVOID Information, ULONG InformationLength, ACL_INFORMATION_CLASS InformationClass);
-BOOLEAN STDCALL RtlValidAcl (PACL Acl);
-
-NTSTATUS STDCALL RtlAddAccessAllowedAce(PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid);
-NTSTATUS STDCALL RtlAddAccessDeniedAce(PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid);
-NTSTATUS STDCALL RtlAddAce(PACL Acl, ULONG Revision, ULONG StartingIndex, PACE AceList, ULONG AceListLength);
-NTSTATUS STDCALL RtlAddAuditAccessAce (PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid, BOOLEAN Success, BOOLEAN Failure);
-NTSTATUS STDCALL RtlDeleteAce(PACL Acl, ULONG AceIndex);
-BOOLEAN STDCALL RtlFirstFreeAce(PACL Acl, PACE* Ace);
-NTSTATUS STDCALL RtlGetAce(PACL Acl, ULONG AceIndex, PACE *Ace);
-
-NTSTATUS STDCALL RtlAbsoluteToSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD, PSECURITY_DESCRIPTOR RelSD, PULONG BufferLength);
-NTSTATUS STDCALL RtlMakeSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD, PSECURITY_DESCRIPTOR RelSD, PULONG BufferLength);
-NTSTATUS STDCALL RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, ULONG Revision);
-BOOLEAN STDCALL RtlValidSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
-ULONG STDCALL RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
-NTSTATUS STDCALL RtlSetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN DaclPresent, PACL Dacl, BOOLEAN DaclDefaulted);
-NTSTATUS STDCALL RtlGetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PBOOLEAN DaclPresent, PACL* Dacl, PBOOLEAN DaclDefauted);
-NTSTATUS STDCALL RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID Owner, BOOLEAN OwnerDefaulted);
-NTSTATUS STDCALL RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID* Owner, PBOOLEAN OwnerDefaulted);
-NTSTATUS STDCALL RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID Group, BOOLEAN GroupDefaulted);
-NTSTATUS STDCALL RtlGetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID* Group, PBOOLEAN GroupDefaulted);
-NTSTATUS STDCALL RtlGetControlSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSECURITY_DESCRIPTOR_CONTROL Control, PULONG Revision);
-NTSTATUS STDCALL RtlSetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN SaclPresent, PACL Sacl, BOOLEAN SaclDefaulted);
-NTSTATUS STDCALL RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PBOOLEAN SaclPresent, PACL* Sacl, PBOOLEAN SaclDefauted);
-NTSTATUS STDCALL RtlSelfRelativeToAbsoluteSD (PSECURITY_DESCRIPTOR RelSD,
- PSECURITY_DESCRIPTOR AbsSD,
- PDWORD AbsSDSize,
- PACL Dacl,
- PDWORD DaclSize,
- PACL Sacl,
- PDWORD SaclSize,
- PSID Owner,
- PDWORD OwnerSize,
- PSID Group,
- PDWORD GroupSize);
-
-NTSTATUS STDCALL RtlAllocateAndInitializeSid (PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
- UCHAR SubAuthorityCount,
- ULONG SubAuthority0,
- ULONG SubAuthority1,
- ULONG SubAuthority2,
- ULONG SubAuthority3,
- ULONG SubAuthority4,
- ULONG SubAuthority5,
- ULONG SubAuthority6,
- ULONG SubAuthority7,
- PSID *Sid);
-ULONG STDCALL RtlLengthRequiredSid (UCHAR SubAuthorityCount);
-PSID_IDENTIFIER_AUTHORITY STDCALL RtlIdentifierAuthoritySid (PSID Sid);
-NTSTATUS STDCALL RtlInitializeSid (PSID Sid, PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, UCHAR SubAuthorityCount);
-PULONG STDCALL RtlSubAuthoritySid (PSID Sid, ULONG SubAuthority);
-BOOLEAN STDCALL RtlEqualPrefixSid (PSID Sid1, PSID Sid2);
-BOOLEAN STDCALL RtlEqualSid(PSID Sid1, PSID Sid2);
-PSID STDCALL RtlFreeSid (PSID Sid);
-ULONG STDCALL RtlLengthSid (PSID Sid);
-PULONG STDCALL RtlSubAuthoritySid (PSID Sid, ULONG SubAuthority);
-PUCHAR STDCALL RtlSubAuthorityCountSid (PSID Sid);
-BOOLEAN STDCALL RtlValidSid (PSID Sid);
-NTSTATUS STDCALL RtlConvertSidToUnicodeString (PUNICODE_STRING String, PSID Sid, BOOLEAN AllocateBuffer);
-
-BOOLEAN STDCALL RtlAreAllAccessesGranted (ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess);
-BOOLEAN STDCALL RtlAreAnyAccessesGranted (ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess);
-VOID STDCALL RtlMapGenericMask (PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping);
-
-ULONG STDCALL
-RtlRandom (PULONG Seed);
-
-PRTL_SPLAY_LINKS STDCALL
-RtlSubtreePredecessor (IN PRTL_SPLAY_LINKS Links);
-
-PRTL_SPLAY_LINKS STDCALL
-RtlSubtreeSuccessor (IN PRTL_SPLAY_LINKS Links);
-
-ULONG STDCALL
-RtlUniform (PULONG Seed);
-
/* functions exported from NTOSKRNL.EXE which are considered RTL */
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__) || defined(__NTDLL__) || defined(__NTAPP__)
char *_itoa (int value, char *string, int radix);
+wchar_t *_itow (int value, wchar_t *string, int radix);
int _snprintf(char * buf, size_t cnt, const char *fmt, ...);
int _snwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, ...);
int _stricmp(const char *s1, const char *s2);
#endif /* __NTOSKRNL__ || __NTDRIVER__ || __NTHAL__ || __NTDLL__ || __NTAPP__ */
#endif /* __DDK_RTL_H */
+
+