mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 12:23:29 +00:00
3063 lines
56 KiB
C
Executable File
3063 lines
56 KiB
C
Executable File
/* $Id: rtl.h,v 1.33 2004/08/12 06:04:21 ion Exp $
|
|
*
|
|
*/
|
|
#ifndef __DDK_RTL_H
|
|
#define __DDK_RTL_H
|
|
|
|
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__) || defined(__NTDLL__) || defined (__NTAPP__)
|
|
|
|
#include <stddef.h>
|
|
#include <stdarg.h>
|
|
|
|
#endif /* __NTOSKRNL__ || __NTDRIVER__ || __NTHAL__ || __NTDLL__ || __NTAPP__ */
|
|
|
|
#include <pe.h>
|
|
#include <ole32/guiddef.h>
|
|
|
|
#ifndef __USE_W32API
|
|
|
|
/*
|
|
* PURPOSE: Flags for RtlQueryRegistryValues
|
|
*/
|
|
#define RTL_QUERY_REGISTRY_SUBKEY (0x00000001)
|
|
#define RTL_QUERY_REGISTRY_TOPKEY (0x00000002)
|
|
#define RTL_QUERY_REGISTRY_REQUIRED (0x00000004)
|
|
#define RTL_QUERY_REGISTRY_NOVALUE (0x00000008)
|
|
#define RTL_QUERY_REGISTRY_NOEXPAND (0x00000010)
|
|
#define RTL_QUERY_REGISTRY_DIRECT (0x00000020)
|
|
#define RTL_QUERY_REGISTRY_DELETE (0x00000040)
|
|
|
|
|
|
/*
|
|
* PURPOSE: Flags used by RtlIsTextUnicode and IsTextUnicode
|
|
*/
|
|
#define IS_TEXT_UNICODE_ASCII16 (0x00000001)
|
|
#define IS_TEXT_UNICODE_REVERSE_ASCII16 (0x00000010)
|
|
#define IS_TEXT_UNICODE_STATISTICS (0x00000002)
|
|
#define IS_TEXT_UNICODE_REVERSE_STATISTICS (0x00000020)
|
|
#define IS_TEXT_UNICODE_CONTROLS (0x00000004)
|
|
#define IS_TEXT_UNICODE_REVERSE_CONTROLS (0x00000040)
|
|
#define IS_TEXT_UNICODE_SIGNATURE (0x00000008)
|
|
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE (0x00000080)
|
|
#define IS_TEXT_UNICODE_ILLEGAL_CHARS (0x00000100)
|
|
#define IS_TEXT_UNICODE_ODD_LENGTH (0x00000200)
|
|
#define IS_TEXT_UNICODE_NULL_BYTES (0x00001000)
|
|
#define IS_TEXT_UNICODE_UNICODE_MASK (0x0000000F)
|
|
#define IS_TEXT_UNICODE_REVERSE_MASK (0x000000F0)
|
|
#define IS_TEXT_UNICODE_NOT_UNICODE_MASK (0x00000F00)
|
|
#define IS_TEXT_UNICODE_NOT_ASCII_MASK (0x0000F000)
|
|
|
|
/*
|
|
* VOID
|
|
* InitializeObjectAttributes (
|
|
* POBJECT_ATTRIBUTES InitializedAttributes,
|
|
* PUNICODE_STRING ObjectName,
|
|
* ULONG Attributes,
|
|
* HANDLE RootDirectory,
|
|
* PSECURITY_DESCRIPTOR SecurityDescriptor
|
|
* );
|
|
*
|
|
* FUNCTION: Sets up a parameter of type OBJECT_ATTRIBUTES for a
|
|
* subsequent call to ZwCreateXXX or ZwOpenXXX
|
|
* ARGUMENTS:
|
|
* InitializedAttributes (OUT) = Caller supplied storage for the
|
|
* object attributes
|
|
* ObjectName = Full path name for object
|
|
* Attributes = Attributes for the object
|
|
* RootDirectory = Where the object should be placed or NULL
|
|
* SecurityDescriptor = Ignored
|
|
*/
|
|
#define InitializeObjectAttributes(p,n,a,r,s) \
|
|
{ \
|
|
(p)->Length = sizeof(OBJECT_ATTRIBUTES); \
|
|
(p)->ObjectName = n; \
|
|
(p)->Attributes = a; \
|
|
(p)->RootDirectory = r; \
|
|
(p)->SecurityDescriptor = s; \
|
|
(p)->SecurityQualityOfService = NULL; \
|
|
}
|
|
|
|
|
|
/*
|
|
* VOID
|
|
* InitializeListHead (
|
|
* PLIST_ENTRY ListHead
|
|
* );
|
|
*
|
|
* FUNCTION: Initializes a double linked list
|
|
* ARGUMENTS:
|
|
* ListHead = Caller supplied storage for the head of the list
|
|
*/
|
|
#define InitializeListHead(ListHead) \
|
|
{ \
|
|
(ListHead)->Flink = (ListHead); \
|
|
(ListHead)->Blink = (ListHead); \
|
|
}
|
|
|
|
|
|
/*
|
|
* VOID
|
|
* InsertHeadList (
|
|
* PLIST_ENTRY ListHead,
|
|
* PLIST_ENTRY Entry
|
|
* );
|
|
*
|
|
* FUNCTION: Inserts an entry in a double linked list
|
|
* ARGUMENTS:
|
|
* 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)); \
|
|
}
|
|
|
|
|
|
/*
|
|
* VOID
|
|
* InsertTailList (
|
|
* PLIST_ENTRY ListHead,
|
|
* PLIST_ENTRY Entry
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Inserts an entry in a double linked list
|
|
*
|
|
* ARGUMENTS:
|
|
* 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); \
|
|
}
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* IsListEmpty (
|
|
* PLIST_ENTRY ListHead
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Checks if a double linked list is empty
|
|
*
|
|
* ARGUMENTS:
|
|
* ListHead = Head of the list
|
|
*/
|
|
#define IsListEmpty(ListHead) \
|
|
((ListHead)->Flink == (ListHead))
|
|
|
|
|
|
/*
|
|
* PSINGLE_LIST_ENTRY
|
|
* PopEntryList (
|
|
* PSINGLE_LIST_ENTRY ListHead
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Removes an entry from the head of a single linked list
|
|
*
|
|
* ARGUMENTS:
|
|
* ListHead = Head of the list
|
|
*
|
|
* RETURNS:
|
|
* The removed entry
|
|
*/
|
|
/*
|
|
#define PopEntryList(ListHead) \
|
|
(ListHead)->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;
|
|
}
|
|
|
|
/*
|
|
*VOID
|
|
*RemoveEntryList (
|
|
* PLIST_ENTRY Entry
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Removes an entry from a double linked list
|
|
*
|
|
* 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; \
|
|
}
|
|
|
|
|
|
/*
|
|
* PLIST_ENTRY
|
|
* RemoveHeadList (
|
|
* PLIST_ENTRY ListHead
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Removes the head entry from a double linked list
|
|
*
|
|
* ARGUMENTS:
|
|
* ListHead = Head of the list
|
|
*
|
|
* 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
|
|
)
|
|
{
|
|
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
|
|
* RemoveTailList (
|
|
* PLIST_ENTRY ListHead
|
|
* );
|
|
*
|
|
* FUNCTION:
|
|
* Removes the tail entry from a double linked list
|
|
*
|
|
* ARGUMENTS:
|
|
* ListHead = Head of the list
|
|
*
|
|
* 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
|
|
)
|
|
{
|
|
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);
|
|
}
|
|
|
|
|
|
/*
|
|
* FIFO versions are slower but ensures that entries with equal SortField value
|
|
* are placed in FIFO order (assuming that entries are removed from Head).
|
|
*/
|
|
|
|
#define InsertAscendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
{\
|
|
PLIST_ENTRY current;\
|
|
\
|
|
current = (ListHead)->Flink;\
|
|
while (current != (ListHead))\
|
|
{\
|
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >\
|
|
(NewEntry)->SortField)\
|
|
{\
|
|
break;\
|
|
}\
|
|
current = current->Flink;\
|
|
}\
|
|
\
|
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
}
|
|
|
|
|
|
#define InsertDescendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
{\
|
|
PLIST_ENTRY current;\
|
|
\
|
|
current = (ListHead)->Flink;\
|
|
while (current != (ListHead))\
|
|
{\
|
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <\
|
|
(NewEntry)->SortField)\
|
|
{\
|
|
break;\
|
|
}\
|
|
current = current->Flink;\
|
|
}\
|
|
\
|
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
}
|
|
|
|
|
|
#define InsertAscendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
{\
|
|
PLIST_ENTRY current;\
|
|
\
|
|
current = (ListHead)->Flink;\
|
|
while (current != (ListHead))\
|
|
{\
|
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >=\
|
|
(NewEntry)->SortField)\
|
|
{\
|
|
break;\
|
|
}\
|
|
current = current->Flink;\
|
|
}\
|
|
\
|
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
}
|
|
|
|
|
|
#define InsertDescendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
|
|
{\
|
|
PLIST_ENTRY current;\
|
|
\
|
|
current = (ListHead)->Flink;\
|
|
while (current != (ListHead))\
|
|
{\
|
|
if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <=\
|
|
(NewEntry)->SortField)\
|
|
{\
|
|
break;\
|
|
}\
|
|
current = current->Flink;\
|
|
}\
|
|
\
|
|
InsertTailList(current, &((NewEntry)->ListEntryField));\
|
|
}
|
|
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* IsXstEntry (
|
|
* PLIST_ENTRY ListHead,
|
|
* PLIST_ENTRY Entry
|
|
* );
|
|
*/
|
|
#define IsFirstEntry(ListHead, Entry) ((ListHead)->Flink == Entry)
|
|
|
|
#define IsLastEntry(ListHead, Entry) ((ListHead)->Blink == Entry)
|
|
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlAppendUnicodeToString (
|
|
PUNICODE_STRING Destination,
|
|
PWSTR Source
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlCompareMemory (
|
|
PVOID Source1,
|
|
PVOID Source2,
|
|
ULONG Length
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlEqualUnicodeString (
|
|
PUNICODE_STRING String1,
|
|
PUNICODE_STRING String2,
|
|
BOOLEAN CaseInSensitive
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlQueryRegistryValues (
|
|
IN ULONG RelativeTo,
|
|
IN PCWSTR Path,
|
|
IN PRTL_QUERY_REGISTRY_TABLE QueryTable,
|
|
IN PVOID Context,
|
|
IN PVOID Environment
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlWriteRegistryValue (
|
|
ULONG RelativeTo,
|
|
PCWSTR Path,
|
|
PCWSTR ValueName,
|
|
ULONG ValueType,
|
|
PVOID ValueData,
|
|
ULONG ValueLength
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlDeleteRegistryValue(IN ULONG RelativeTo,
|
|
IN PCWSTR Path,
|
|
IN PCWSTR ValueName);
|
|
|
|
VOID STDCALL
|
|
RtlMoveMemory (PVOID Destination, CONST VOID* Source, ULONG Length);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlEqualLuid(IN PLUID Luid1,
|
|
IN PLUID Luid2);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlFillMemory (
|
|
PVOID Destination,
|
|
ULONG Length,
|
|
UCHAR Fill
|
|
);
|
|
|
|
VOID STDCALL
|
|
RtlZeroMemory (PVOID Destination, ULONG Length);
|
|
|
|
#else /* __USE_W32API */
|
|
|
|
#include <ddk/ntifs.h>
|
|
|
|
#endif /* __USE_W32API */
|
|
|
|
|
|
/*
|
|
* PURPOSE: Used with RtlCheckRegistryKey, RtlCreateRegistryKey,
|
|
* RtlDeleteRegistryKey
|
|
*/
|
|
#define RTL_REGISTRY_ABSOLUTE 0
|
|
#define RTL_REGISTRY_SERVICES 1
|
|
#define RTL_REGISTRY_CONTROL 2
|
|
#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_HANDLE 0x40000000
|
|
#define RTL_REGISTRY_OPTIONAL 0x80000000
|
|
|
|
|
|
#define SHORT_SIZE (sizeof(USHORT))
|
|
#define SHORT_MASK (SHORT_SIZE-1)
|
|
#define LONG_SIZE (sizeof(ULONG))
|
|
#define LONG_MASK (LONG_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)
|
|
|
|
/* FIXME: reverse byte-order on big-endian machines (e.g. MIPS) */
|
|
#define SHORT_LEAST_SIGNIFICANT_BIT 0
|
|
#define SHORT_MOST_SIGNIFICANT_BIT 1
|
|
|
|
#define LONG_LEAST_SIGNIFICANT_BIT 0
|
|
#define LONG_3RD_MOST_SIGNIFICANT_BIT 1
|
|
#define LONG_2RD_MOST_SIGNIFICANT_BIT 2
|
|
#define LONG_MOST_SIGNIFICANT_BIT 3
|
|
|
|
|
|
#define NLS_ANSI_CODE_PAGE NlsAnsiCodePage
|
|
#define NLS_LEAD_BYTE_INFO NlsLeadByteInfo
|
|
#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
|
|
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
|
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
|
|
|
|
#if defined(__NTOSKRNL__) || defined(__NTDLL__)
|
|
extern USHORT EXPORTED NlsAnsiCodePage;
|
|
extern PUSHORT EXPORTED NlsLeadByteInfo;
|
|
extern BOOLEAN EXPORTED NlsMbCodePageTag;
|
|
extern BOOLEAN EXPORTED NlsMbOemCodePageTag;
|
|
extern PUSHORT EXPORTED NlsOemLeadByteInfo;
|
|
#else
|
|
extern USHORT IMPORTED NlsAnsiCodePage;
|
|
extern PUSHORT IMPORTED NlsLeadByteInfo;
|
|
extern BOOLEAN IMPORTED NlsMbCodePageTag;
|
|
extern BOOLEAN IMPORTED NlsMbOemCodePageTag;
|
|
extern PUSHORT IMPORTED NlsOemLeadByteInfo;
|
|
#endif /* __NTOSKRNL__ || __NTDLL__ */
|
|
|
|
/*
|
|
VOID
|
|
PushEntryList (
|
|
PSINGLE_LIST_ENTRY ListHead,
|
|
PSINGLE_LIST_ENTRY Entry
|
|
);
|
|
*/
|
|
/*
|
|
#define PushEntryList(ListHead,Entry) \
|
|
(Entry)->Next = (ListHead)->Next; \
|
|
(ListHead)->Next = (Entry)
|
|
*/
|
|
|
|
|
|
NTSTATUS STDCALL
|
|
RtlAbsoluteToSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD,
|
|
PSECURITY_DESCRIPTOR 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 (
|
|
HANDLE Heap,
|
|
ULONG Flags,
|
|
ULONG Size
|
|
);
|
|
|
|
WCHAR STDCALL
|
|
RtlAnsiCharToUnicodeChar (IN CHAR AnsiChar);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlAnsiStringToUnicodeSize (
|
|
PANSI_STRING AnsiString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlAnsiStringToUnicodeString (
|
|
PUNICODE_STRING DestinationString,
|
|
PANSI_STRING SourceString,
|
|
BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlAppendAsciizToString(
|
|
PSTRING Destination,
|
|
PCSZ Source
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlAppendStringToString (
|
|
PSTRING Destination,
|
|
PSTRING Source
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlAppendUnicodeStringToString (
|
|
PUNICODE_STRING Destination,
|
|
PUNICODE_STRING Source
|
|
);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlAreAllAccessesGranted (ACCESS_MASK GrantedAccess,
|
|
ACCESS_MASK DesiredAccess);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlAreAnyAccessesGranted (ACCESS_MASK GrantedAccess,
|
|
ACCESS_MASK DesiredAccess);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlAreBitsClear (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG StartingIndex,
|
|
ULONG Length
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlAreBitsSet (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG StartingIndex,
|
|
ULONG Length
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlAssert (
|
|
PVOID FailedAssertion,
|
|
PVOID FileName,
|
|
ULONG LineNumber,
|
|
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 (
|
|
PCSZ String,
|
|
ULONG Base,
|
|
PULONG Value
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlCheckRegistryKey (
|
|
ULONG RelativeTo,
|
|
PWSTR Path
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlClearAllBits (
|
|
IN PRTL_BITMAP BitMapHeader
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlClearBit (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG BitNumber
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlClearBits (
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
IN ULONG StartingIndex,
|
|
IN ULONG NumberToClear
|
|
);
|
|
|
|
DWORD
|
|
STDCALL
|
|
RtlCompactHeap (
|
|
HANDLE hheap,
|
|
DWORD flags
|
|
);
|
|
|
|
LONG
|
|
STDCALL
|
|
RtlCompareString (
|
|
PSTRING String1,
|
|
PSTRING String2,
|
|
BOOLEAN CaseInsensitive
|
|
);
|
|
|
|
LONG
|
|
STDCALL
|
|
RtlCompareUnicodeString (
|
|
PUNICODE_STRING String1,
|
|
PUNICODE_STRING String2,
|
|
BOOLEAN CaseInsensitive
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlCompressBuffer(IN USHORT CompressionFormatAndEngine,
|
|
IN PUCHAR UncompressedBuffer,
|
|
IN ULONG UncompressedBufferSize,
|
|
OUT PUCHAR CompressedBuffer,
|
|
IN ULONG CompressedBufferSize,
|
|
IN ULONG UncompressedChunkSize,
|
|
OUT PULONG FinalCompressedSize,
|
|
IN PVOID WorkSpace);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlCompressChunks(IN PUCHAR UncompressedBuffer,
|
|
IN ULONG UncompressedBufferSize,
|
|
OUT PUCHAR CompressedBuffer,
|
|
IN ULONG CompressedBufferSize,
|
|
IN OUT PCOMPRESSED_DATA_INFO CompressedDataInfo,
|
|
IN ULONG CompressedDataInfoLength,
|
|
IN PVOID WorkSpace);
|
|
|
|
LARGE_INTEGER STDCALL
|
|
RtlConvertLongToLargeInteger (IN LONG SignedInteger);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlConvertSidToUnicodeString (IN OUT PUNICODE_STRING String,
|
|
IN PSID Sid,
|
|
IN BOOLEAN AllocateString);
|
|
|
|
LARGE_INTEGER STDCALL
|
|
RtlConvertUlongToLargeInteger (IN ULONG UnsignedInteger);
|
|
|
|
#if 0
|
|
VOID
|
|
RtlCopyBytes (
|
|
PVOID Destination,
|
|
CONST VOID * Source,
|
|
ULONG Length
|
|
);
|
|
|
|
VOID
|
|
RtlCopyMemory (
|
|
VOID * Destination,
|
|
CONST VOID * Source,
|
|
ULONG Length
|
|
);
|
|
#endif
|
|
|
|
#define RtlCopyBytes RtlCopyMemory
|
|
|
|
VOID STDCALL
|
|
RtlCopyLuid(IN PLUID LuidDest,
|
|
IN PLUID LuidSrc);
|
|
|
|
VOID STDCALL
|
|
RtlCopyLuidAndAttributesArray(ULONG Count,
|
|
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,
|
|
PSID Src);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlCopySidAndAttributesArray(ULONG Count,
|
|
PSID_AND_ATTRIBUTES Src,
|
|
ULONG SidAreaSize,
|
|
PSID_AND_ATTRIBUTES Dest,
|
|
PVOID SidArea,
|
|
PVOID* RemainingSidArea,
|
|
PULONG RemainingSidAreaSize);
|
|
|
|
VOID STDCALL
|
|
RtlCopyString(PSTRING DestinationString,
|
|
PSTRING SourceString);
|
|
|
|
VOID STDCALL
|
|
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);
|
|
|
|
HANDLE
|
|
STDCALL
|
|
RtlCreateHeap (
|
|
ULONG Flags,
|
|
PVOID BaseAddress,
|
|
ULONG SizeToReserve, /* dwMaximumSize */
|
|
ULONG SizeToCommit, /* dwInitialSize */
|
|
PVOID Unknown,
|
|
PRTL_HEAP_DEFINITION Definition
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlCreateRegistryKey (ULONG RelativeTo,
|
|
PWSTR Path);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
ULONG Revision);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlCreateSystemVolumeInformationFolder(
|
|
IN PUNICODE_STRING VolumeRootPath
|
|
);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlCreateUnicodeString (OUT PUNICODE_STRING Destination,
|
|
IN PWSTR Source);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlCreateUnicodeStringFromAsciiz (OUT PUNICODE_STRING Destination,
|
|
IN PCSZ Source);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlCustomCPToUnicodeN (
|
|
IN PCPTABLEINFO CustomCP,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize,
|
|
PULONG ResultSize,
|
|
PCHAR CustomString,
|
|
ULONG CustomSize
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlDecompressBuffer(IN USHORT CompressionFormat,
|
|
OUT PUCHAR UncompressedBuffer,
|
|
IN ULONG UncompressedBufferSize,
|
|
IN PUCHAR CompressedBuffer,
|
|
IN ULONG CompressedBufferSize,
|
|
OUT PULONG FinalUncompressedSize);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlDecompressChunks(OUT PUCHAR UncompressedBuffer,
|
|
IN ULONG UncompressedBufferSize,
|
|
IN PUCHAR CompressedBuffer,
|
|
IN ULONG CompressedBufferSize,
|
|
IN PUCHAR CompressedTail,
|
|
IN ULONG CompressedTailSize,
|
|
IN PCOMPRESSED_DATA_INFO CompressedDataInfo);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlDecompressFragment(IN USHORT CompressionFormat,
|
|
OUT PUCHAR UncompressedFragment,
|
|
IN ULONG UncompressedFragmentSize,
|
|
IN PUCHAR CompressedBuffer,
|
|
IN ULONG CompressedBufferSize,
|
|
IN ULONG FragmentOffset,
|
|
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);
|
|
|
|
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,
|
|
IN OUT PUCHAR *CompressedBuffer,
|
|
IN PUCHAR EndOfCompressedBufferPlus1,
|
|
OUT PUCHAR *ChunkBuffer,
|
|
OUT PULONG ChunkSize);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlDestroyAtomTable (IN PRTL_ATOM_TABLE AtomTable);
|
|
|
|
BOOL STDCALL
|
|
RtlDestroyHeap (HANDLE hheap);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlDispatchException(
|
|
PEXCEPTION_RECORD pExcptRec,
|
|
CONTEXT * pContext
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlDowncaseUnicodeString (
|
|
IN OUT PUNICODE_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlEmptyAtomTable (
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
IN BOOLEAN DeletePinned
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlEnlargedIntegerMultiply (
|
|
LONG Multiplicand,
|
|
LONG Multiplier
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlEnlargedUnsignedDivide (
|
|
ULARGE_INTEGER Dividend,
|
|
ULONG Divisor,
|
|
PULONG Remainder
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlEnlargedUnsignedMultiply (
|
|
ULONG Multiplicand,
|
|
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 (
|
|
PSTRING String1,
|
|
PSTRING String2,
|
|
BOOLEAN CaseInSensitive
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlExtendedIntegerMultiply (
|
|
LARGE_INTEGER Multiplicand,
|
|
LONG Multiplier
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlExtendedLargeIntegerDivide (
|
|
LARGE_INTEGER Dividend,
|
|
ULONG Divisor,
|
|
PULONG Remainder
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlExtendedMagicDivide (
|
|
LARGE_INTEGER Dividend,
|
|
LARGE_INTEGER MagicDivisor,
|
|
CCHAR ShiftCount
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlFillMemoryUlong (
|
|
PVOID Destination,
|
|
ULONG Length,
|
|
ULONG Fill
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindClearBits (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG NumberToFind,
|
|
ULONG HintIndex
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindClearBitsAndSet (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG NumberToFind,
|
|
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 (
|
|
PRTL_BITMAP BitMapHeader,
|
|
PULONG StartingIndex
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindFirstRunSet (
|
|
PRTL_BITMAP BitMapHeader,
|
|
PULONG StartingIndex
|
|
);
|
|
|
|
CCHAR STDCALL
|
|
RtlFindLeastSignificantBit (IN ULONGLONG Set);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindLongestRunClear (
|
|
PRTL_BITMAP BitMapHeader,
|
|
PULONG StartingIndex
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindLongestRunSet (
|
|
PRTL_BITMAP BitMapHeader,
|
|
PULONG StartingIndex
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlFindMessage (
|
|
IN PVOID BaseAddress,
|
|
IN ULONG Type,
|
|
IN ULONG Language,
|
|
IN ULONG MessageId,
|
|
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 (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG NumberToFind,
|
|
ULONG HintIndex
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlFindSetBitsAndClear (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG NumberToFind,
|
|
ULONG HintIndex
|
|
);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlFirstFreeAce (PACL Acl,
|
|
PACE* Ace);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlFormatCurrentUserKeyPath (IN OUT PUNICODE_STRING KeyPath);
|
|
|
|
VOID STDCALL
|
|
RtlFreeAnsiString (IN PANSI_STRING AnsiString);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlFreeHeap (
|
|
HANDLE Heap,
|
|
ULONG Flags,
|
|
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
|
|
RtlGetCallersAddress(
|
|
OUT PVOID *CallersAddress,
|
|
OUT PVOID *CallersCaller
|
|
);
|
|
|
|
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
|
|
RtlGetElementGenericTable(
|
|
PRTL_GENERIC_TABLE Table,
|
|
ULONG I
|
|
);
|
|
|
|
PVOID
|
|
STDCALL
|
|
RtlGetElementGenericTableAvl (
|
|
PRTL_AVL_TABLE Table,
|
|
ULONG I
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlGetFirstRange (IN PRTL_RANGE_LIST RangeList,
|
|
OUT PRTL_RANGE_LIST_ITERATOR Iterator,
|
|
OUT PRTL_RANGE *Range);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlGetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
PSID* Group,
|
|
PBOOLEAN GroupDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
|
|
OUT PRTL_RANGE *Range,
|
|
IN BOOLEAN MoveForwards);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlGetNtGlobalFlags (
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
PSID* Owner,
|
|
PBOOLEAN OwnerDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
PBOOLEAN SaclPresent,
|
|
PACL* Sacl,
|
|
PBOOLEAN SaclDefaulted);
|
|
|
|
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 (
|
|
PVOID BaseAddress,
|
|
BOOLEAN bFlag,
|
|
ULONG Directory,
|
|
PULONG Size
|
|
);
|
|
|
|
PIMAGE_NT_HEADERS
|
|
STDCALL
|
|
RtlImageNtHeader (
|
|
IN PVOID BaseAddress
|
|
);
|
|
|
|
PIMAGE_SECTION_HEADER
|
|
STDCALL
|
|
RtlImageRvaToSection (
|
|
PIMAGE_NT_HEADERS NtHeader,
|
|
PVOID BaseAddress,
|
|
ULONG Rva
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlImageRvaToVa (
|
|
PIMAGE_NT_HEADERS NtHeader,
|
|
PVOID BaseAddress,
|
|
ULONG Rva,
|
|
PIMAGE_SECTION_HEADER *SectionHeader
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlInitAnsiString (
|
|
PANSI_STRING DestinationString,
|
|
PCSZ SourceString
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlInitCodePageTable (
|
|
IN PUSHORT TableBase,
|
|
OUT PCPTABLEINFO CodePageTable
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlInitializeUnicodePrefix (
|
|
PUNICODE_PREFIX_TABLE PrefixTable
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlInitializeSid (PSID Sid,
|
|
PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
|
|
UCHAR SubAuthorityCount);
|
|
|
|
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,
|
|
IN PCONTEXT Context,
|
|
IN PVOID Parameter,
|
|
IN PTHREAD_START_ROUTINE StartAddress,
|
|
IN OUT PUSER_STACK UserStack
|
|
);
|
|
|
|
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);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv4AddressToStringA(
|
|
PULONG IP,
|
|
LPSTR Buffer
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv4AddressToStringExA(
|
|
PULONG IP,
|
|
PULONG Port,
|
|
LPSTR Buffer,
|
|
PULONG MaxSize
|
|
);
|
|
|
|
NTSTATUS
|
|
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
|
|
RtlIpv4StringToAddressExW(
|
|
IN LPWSTR IpString,
|
|
IN ULONG Base,
|
|
OUT PULONG IpAddr,
|
|
OUT PULONG Port
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6AddressToStringA(
|
|
PULONG IP,
|
|
LPSTR Buffer
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6AddressToStringExA(
|
|
PULONG IP,
|
|
PULONG Port,
|
|
LPSTR Buffer,
|
|
PULONG MaxSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6AddressToStringW(
|
|
PULONG IP,
|
|
LPWSTR Buffer
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6AddressToStringExW(
|
|
PULONG IP,
|
|
PULONG Port,
|
|
LPWSTR Buffer,
|
|
PULONG MaxSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6StringToAddressA(
|
|
IN LPSTR IpString,
|
|
IN ULONG Base,
|
|
OUT PVOID PtrToIpAddr,
|
|
OUT ULONG IpAddr
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6StringToAddressExA(
|
|
IN LPSTR IpString,
|
|
IN ULONG Base,
|
|
OUT PULONG IpAddr,
|
|
OUT PULONG Port
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6StringToAddressW(
|
|
IN LPWSTR IpString,
|
|
IN ULONG Base,
|
|
OUT PVOID PtrToIpAddr,
|
|
OUT ULONG IpAddr
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlIpv6StringToAddressExW(
|
|
IN LPWSTR IpString,
|
|
IN ULONG Base,
|
|
OUT PULONG IpAddr,
|
|
OUT PULONG Port
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlIsGenericTableEmpty (
|
|
PRTL_GENERIC_TABLE Table
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
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 (
|
|
PVOID Buffer,
|
|
ULONG Length,
|
|
ULONG *Flags
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlIsValidOemCharacter (
|
|
IN PWCHAR Char
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerAdd (
|
|
LARGE_INTEGER Addend1,
|
|
LARGE_INTEGER Addend2
|
|
);
|
|
|
|
/*
|
|
* VOID
|
|
* RtlLargeIntegerAnd (
|
|
* PLARGE_INTEGER Result,
|
|
* LARGE_INTEGER Source,
|
|
* LARGE_INTEGER Mask
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerAnd(Result, Source, Mask) \
|
|
{ \
|
|
Result.HighPart = Source.HighPart & Mask.HighPart; \
|
|
Result.LowPart = Source.LowPart & Mask.LowPart; \
|
|
}
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerArithmeticShift (
|
|
LARGE_INTEGER LargeInteger,
|
|
CCHAR ShiftCount
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerDivide (
|
|
LARGE_INTEGER Dividend,
|
|
LARGE_INTEGER Divisor,
|
|
PLARGE_INTEGER Remainder
|
|
);
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerEqualTo (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerEqualTo(X,Y) \
|
|
(!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerEqualToZero (
|
|
* LARGE_INTEGER Operand
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerEqualToZero(X) \
|
|
(!((X).LowPart | (X).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerGreaterThan (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerGreaterThan(X,Y) \
|
|
((((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
|
|
((X).HighPart > (Y).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerGreaterThanOrEqualTo (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) \
|
|
((((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
|
|
((X).HighPart > (Y).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerGreaterThanOrEqualToZero (
|
|
* LARGE_INTEGER Operand1
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerGreaterOrEqualToZero(X) \
|
|
((X).HighPart >= 0)
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerGreaterThanZero (
|
|
* LARGE_INTEGER Operand1
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerGreaterThanZero(X) \
|
|
((((X).HighPart == 0) && ((X).LowPart > 0)) || \
|
|
((X).HighPart > 0 ))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerLessThan (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerLessThan(X,Y) \
|
|
((((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
|
|
((X).HighPart < (Y).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerLessThanOrEqualTo (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerLessThanOrEqualTo(X,Y) \
|
|
((((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
|
|
((X).HighPart < (Y).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerLessThanOrEqualToZero (
|
|
* LARGE_INTEGER Operand
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerLessOrEqualToZero(X) \
|
|
(((X).HighPart < 0) || !((X).LowPart | (X).HighPart))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerLessThanZero (
|
|
* LARGE_INTEGER Operand
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerLessThanZero(X) \
|
|
(((X).HighPart < 0))
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerNegate (
|
|
LARGE_INTEGER Subtrahend
|
|
);
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerNotEqualTo (
|
|
* LARGE_INTEGER Operand1,
|
|
* LARGE_INTEGER Operand2
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerNotEqualTo(X,Y) \
|
|
((((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
|
|
|
|
/*
|
|
* BOOLEAN
|
|
* RtlLargeIntegerNotEqualToZero (
|
|
* LARGE_INTEGER Operand
|
|
* );
|
|
*/
|
|
#define RtlLargeIntegerNotEqualToZero(X) \
|
|
(((X).LowPart | (X).HighPart))
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerShiftLeft (
|
|
LARGE_INTEGER LargeInteger,
|
|
CCHAR ShiftCount
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerShiftRight (
|
|
LARGE_INTEGER LargeInteger,
|
|
CCHAR ShiftCount
|
|
);
|
|
|
|
LARGE_INTEGER
|
|
STDCALL
|
|
RtlLargeIntegerSubtract (
|
|
LARGE_INTEGER Minuend,
|
|
LARGE_INTEGER Subtrahend
|
|
);
|
|
|
|
ULONG STDCALL
|
|
RtlLengthRequiredSid (UCHAR SubAuthorityCount);
|
|
|
|
ULONG STDCALL
|
|
RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
|
|
|
|
ULONG STDCALL
|
|
RtlLengthSid (PSID Sid);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlLockBootStatusData(
|
|
HANDLE Filehandle
|
|
);
|
|
|
|
BOOL
|
|
STDCALL
|
|
RtlLockHeap (
|
|
HANDLE hheap
|
|
);
|
|
|
|
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
|
|
RtlLookupElementGenericTableFull (
|
|
PRTL_GENERIC_TABLE Table,
|
|
PVOID Buffer,
|
|
OUT PVOID *NodeOrParent,
|
|
OUT TABLE_SEARCH_RESULT *SearchResult
|
|
);
|
|
|
|
PVOID
|
|
STDCALL
|
|
RtlLookupElementGenericTableFullAvl (
|
|
PRTL_AVL_TABLE Table,
|
|
PVOID Buffer,
|
|
OUT PVOID *NodeOrParent,
|
|
OUT TABLE_SEARCH_RESULT *SearchResult
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlMakeSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD,
|
|
PSECURITY_DESCRIPTOR RelSD,
|
|
PULONG BufferLength);
|
|
|
|
VOID STDCALL
|
|
RtlMapGenericMask (PACCESS_MASK AccessMask,
|
|
PGENERIC_MAPPING GenericMapping);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
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 (
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize,
|
|
PULONG ResultSize,
|
|
const PCHAR MbString,
|
|
ULONG MbSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlMultiByteToUnicodeSize (
|
|
PULONG UnicodeSize,
|
|
PCHAR MbString,
|
|
ULONG MbSize
|
|
);
|
|
|
|
PUNICODE_PREFIX_TABLE_ENTRY
|
|
STDCALL
|
|
RtlNextUnicodePrefix (
|
|
PUNICODE_PREFIX_TABLE PrefixTable,
|
|
BOOLEAN Restart
|
|
);
|
|
|
|
DWORD
|
|
STDCALL
|
|
RtlNtStatusToDosError (
|
|
NTSTATUS StatusCode
|
|
);
|
|
|
|
DWORD
|
|
STDCALL
|
|
RtlNtStatusToDosErrorNoTeb (
|
|
NTSTATUS StatusCode
|
|
);
|
|
|
|
int
|
|
STDCALL
|
|
RtlNtStatusToPsxErrno (
|
|
NTSTATUS StatusCode
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlNumberGenericTableElements(
|
|
PRTL_GENERIC_TABLE Table
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlNumberGenericTableElementsAvl (
|
|
PRTL_AVL_TABLE Table
|
|
);
|
|
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlNumberOfClearBits (
|
|
PRTL_BITMAP BitMapHeader
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlNumberOfSetBits (
|
|
PRTL_BITMAP BitMapHeader
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlOemStringToUnicodeSize (
|
|
POEM_STRING AnsiString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlOemStringToUnicodeString (
|
|
PUNICODE_STRING DestinationString,
|
|
POEM_STRING SourceString,
|
|
BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlOemToUnicodeN(
|
|
PWSTR UnicodeString,
|
|
ULONG MaxBytesInUnicodeString,
|
|
PULONG BytesInUnicodeString,
|
|
IN PCHAR OemString,
|
|
ULONG BytesInOemString
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlPinAtomInAtomTable (
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
IN RTL_ATOM Atom
|
|
);
|
|
|
|
VOID
|
|
FASTCALL
|
|
RtlPrefetchMemoryNonTemporal(
|
|
IN PVOID Source,
|
|
IN SIZE_T Length
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlPrefixString (
|
|
PANSI_STRING String1,
|
|
PANSI_STRING String2,
|
|
BOOLEAN CaseInsensitive
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlPrefixUnicodeString (
|
|
PUNICODE_STRING String1,
|
|
PUNICODE_STRING String2,
|
|
BOOLEAN CaseInsensitive
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlQueryAtomInAtomTable (
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
IN RTL_ATOM Atom,
|
|
IN OUT PULONG RefCount OPTIONAL,
|
|
IN OUT PULONG PinCount OPTIONAL,
|
|
IN OUT PWSTR AtomName OPTIONAL,
|
|
IN OUT PULONG NameLength OPTIONAL
|
|
);
|
|
|
|
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
|
|
RtlRandomEx(
|
|
PULONG Seed
|
|
);
|
|
|
|
PRTL_SPLAY_LINKS
|
|
STDCALL
|
|
RtlRealPredecessor (
|
|
PRTL_SPLAY_LINKS Links
|
|
);
|
|
|
|
PRTL_SPLAY_LINKS
|
|
STDCALL
|
|
RtlRealSuccessor (
|
|
PRTL_SPLAY_LINKS Links
|
|
);
|
|
|
|
LPVOID
|
|
STDCALL
|
|
RtlReAllocateHeap (
|
|
HANDLE hheap,
|
|
DWORD flags,
|
|
LPVOID ptr,
|
|
DWORD size
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlRemoveUnicodePrefix (
|
|
PUNICODE_PREFIX_TABLE PrefixTable,
|
|
PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlReserveChunk (
|
|
IN USHORT CompressionFormat,
|
|
IN OUT PUCHAR *CompressedBuffer,
|
|
IN PUCHAR EndOfCompressedBufferPlus1,
|
|
OUT PUCHAR *ChunkBuffer,
|
|
IN ULONG ChunkSize
|
|
);
|
|
|
|
VOID STDCALL
|
|
RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable);
|
|
|
|
/*
|
|
* VOID
|
|
* RtlRetrieveUlong (
|
|
* PULONG DestinationAddress,
|
|
* PULONG SourceAddress
|
|
* );
|
|
*/
|
|
#define RtlRetrieveUlong(DestAddress,SrcAddress) \
|
|
if ((ULONG)(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)); \
|
|
}
|
|
|
|
/*
|
|
* VOID
|
|
* RtlRetrieveUshort (
|
|
* PUSHORT DestinationAddress,
|
|
* PUSHORT SourceAddress
|
|
* );
|
|
*/
|
|
#define RtlRetrieveUshort(DestAddress,SrcAddress) \
|
|
if ((ULONG)(SrcAddress) & SHORT_MASK) \
|
|
{ \
|
|
((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
|
|
((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
|
|
} \
|
|
else \
|
|
{ \
|
|
*((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
|
|
}
|
|
|
|
VOID STDCALL
|
|
RtlSecondsSince1970ToTime (ULONG SecondsSince1970,
|
|
PLARGE_INTEGER Time);
|
|
|
|
VOID STDCALL
|
|
RtlSecondsSince1980ToTime (ULONG SecondsSince1980,
|
|
PLARGE_INTEGER Time);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSelfRelativeToAbsoluteSD (PSECURITY_DESCRIPTOR RelSD,
|
|
PSECURITY_DESCRIPTOR AbsSD,
|
|
PULONG AbsSDSize,
|
|
PACL Dacl,
|
|
PULONG DaclSize,
|
|
PACL Sacl,
|
|
PULONG SaclSize,
|
|
PSID Owner,
|
|
PULONG OwnerSize,
|
|
PSID Group,
|
|
PULONG GroupSize);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlSelfRelativeToAbsoluteSD2(
|
|
PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
|
|
PULONG BufferSize
|
|
);
|
|
|
|
VOID STDCALL
|
|
RtlSetAllBits (IN PRTL_BITMAP BitMapHeader);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlSetBit (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG BitNumber
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlSetBits (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG StartingIndex,
|
|
ULONG NumberToSet
|
|
);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
BOOLEAN DaclPresent,
|
|
PACL Dacl,
|
|
BOOLEAN DaclDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
PSID Group,
|
|
BOOLEAN GroupDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
PSID Owner,
|
|
BOOLEAN OwnerDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
BOOLEAN SaclPresent,
|
|
PACL Sacl,
|
|
BOOLEAN SaclDefaulted);
|
|
|
|
NTSTATUS STDCALL
|
|
RtlSetInformationAcl (PACL Acl,
|
|
PVOID Information,
|
|
ULONG InformationLength,
|
|
ACL_INFORMATION_CLASS InformationClass);
|
|
|
|
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
|
|
RtlSplay (
|
|
PRTL_SPLAY_LINKS Links
|
|
);
|
|
|
|
/*
|
|
* VOID
|
|
* RtlStoreUlong (
|
|
* PULONG Address,
|
|
* ULONG Value
|
|
* );
|
|
*/
|
|
#define RtlStoreUlong(Address,Value) \
|
|
if ((ULONG)(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_2ND_MOST_SIGNIFICANT_BIT]=(UCHAR)(THIRDBYTE(Value)); \
|
|
((PUCHAR)(Address))[LONG_MOST_SIGNIFICANT_BIT]=(UCHAR)(FOURTHBYTE(Value)); \
|
|
} \
|
|
else \
|
|
{ \
|
|
*((PULONG)(Address))=(ULONG)(Value); \
|
|
}
|
|
|
|
/*
|
|
* VOID
|
|
* RtlStoreUshort (
|
|
* PUSHORT Address,
|
|
* USHORT Value
|
|
* );
|
|
*/
|
|
#define RtlStoreUshort(Address,Value) \
|
|
if ((ULONG)(Address) & SHORT_MASK) \
|
|
{ \
|
|
((PUCHAR)(Address))[SHORT_LEAST_SIGNIFICANT_BIT]=(UCHAR)(FIRSTBYTE(Value)); \
|
|
((PUCHAR)(Address))[SHORT_MOST_SIGNIFICANT_BIT]=(UCHAR)(SECONDBYTE(Value)); \
|
|
} \
|
|
else \
|
|
{ \
|
|
*((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
|
|
RtlTestBit (
|
|
PRTL_BITMAP BitMapHeader,
|
|
ULONG BitNumber
|
|
);
|
|
|
|
|
|
BOOLEAN STDCALL
|
|
RtlTimeFieldsToTime (PTIME_FIELDS TimeFields,
|
|
PLARGE_INTEGER Time);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlTimeToSecondsSince1970 (
|
|
PLARGE_INTEGER Time,
|
|
PULONG SecondsSince1970
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlTimeToSecondsSince1980 (
|
|
PLARGE_INTEGER Time,
|
|
PULONG SecondsSince1980
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlTimeToElapsedTimeFields(
|
|
PLARGE_INTEGER Time,
|
|
PTIME_FIELDS TimeFields
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlTimeToTimeFields (
|
|
PLARGE_INTEGER Time,
|
|
PTIME_FIELDS TimeFields
|
|
);
|
|
|
|
|
|
ULONG FASTCALL
|
|
RtlUlongByteSwap (IN ULONG Source);
|
|
|
|
ULONGLONG FASTCALL
|
|
RtlUlonglongByteSwap (IN ULONGLONG Source);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlUnicodeStringToAnsiSize (
|
|
IN PUNICODE_STRING UnicodeString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeStringToAnsiString (
|
|
IN OUT PANSI_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeStringToInteger (
|
|
IN PUNICODE_STRING String,
|
|
IN ULONG Base,
|
|
OUT PULONG Value
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlUnicodeStringToOemSize (
|
|
IN PUNICODE_STRING UnicodeString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeStringToCountedOemString (
|
|
IN OUT POEM_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeStringToOemString (
|
|
IN OUT POEM_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeToCustomCPN (
|
|
IN PCPTABLEINFO CustomCP,
|
|
PCHAR MbString,
|
|
ULONG MbSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeToMultiByteN (
|
|
PCHAR MbString,
|
|
ULONG MbSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeToMultiByteSize (
|
|
PULONG MbSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnicodeToOemN (
|
|
PCHAR OemString,
|
|
ULONG OemSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
ULONG STDCALL
|
|
RtlUniform (PULONG Seed);
|
|
|
|
BOOL
|
|
STDCALL
|
|
RtlUnlockHeap (
|
|
HANDLE hheap
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUnlockBootStatusData(
|
|
HANDLE Filehandle
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
RtlUnwind (
|
|
PEXCEPTION_REGISTRATION RegistrationFrame,
|
|
PVOID ReturnAddress,
|
|
PEXCEPTION_RECORD ExceptionRecord,
|
|
DWORD EaxValue
|
|
);
|
|
|
|
WCHAR
|
|
STDCALL
|
|
RtlUpcaseUnicodeChar (
|
|
WCHAR Source
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeString (
|
|
IN OUT PUNICODE_STRING DestinationString,
|
|
IN PCUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeStringToAnsiString (
|
|
IN OUT PANSI_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeStringToCountedOemString (
|
|
IN OUT POEM_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeStringToOemString (
|
|
IN OUT POEM_STRING DestinationString,
|
|
IN PUNICODE_STRING SourceString,
|
|
IN BOOLEAN AllocateDestinationString
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeToCustomCPN (
|
|
IN PCPTABLEINFO CustomCP,
|
|
PCHAR MbString,
|
|
ULONG MbSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeToMultiByteN (
|
|
PCHAR MbString,
|
|
ULONG MbSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlUpcaseUnicodeToOemN (
|
|
PCHAR OemString,
|
|
ULONG OemSize,
|
|
PULONG ResultSize,
|
|
PWCHAR UnicodeString,
|
|
ULONG UnicodeSize
|
|
);
|
|
|
|
CHAR STDCALL
|
|
RtlUpperChar (CHAR Source);
|
|
|
|
VOID STDCALL
|
|
RtlUpperString (PSTRING DestinationString,
|
|
PSTRING SourceString);
|
|
|
|
USHORT FASTCALL
|
|
RtlUshortByteSwap (IN USHORT Source);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlValidAcl (PACL Acl);
|
|
|
|
BOOL
|
|
STDCALL
|
|
RtlValidateHeap (
|
|
HANDLE hheap,
|
|
DWORD flags,
|
|
PVOID pmem
|
|
);
|
|
|
|
BOOLEAN
|
|
STDCALL
|
|
RtlValidRelativeSecurityDescriptor (
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
|
|
IN ULONG SecurityDescriptorLength,
|
|
IN SECURITY_INFORMATION RequiredInformation
|
|
);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlValidSecurityDescriptor (IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
|
|
|
BOOLEAN STDCALL
|
|
RtlValidSid (IN PSID Sid);
|
|
|
|
/*
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlVerifyVersionInfo(
|
|
IN PRTL_OSVERSIONINFOEXW VersionInfo,
|
|
IN ULONG TypeMask,
|
|
IN ULONGLONG ConditionMask
|
|
);
|
|
*/
|
|
|
|
NTSTATUS
|
|
STDCALL
|
|
RtlVolumeDeviceToDosName(
|
|
IN PVOID VolumeDeviceObject,
|
|
OUT PUNICODE_STRING DosName
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlWalkFrameChain (
|
|
OUT PVOID *Callers,
|
|
IN ULONG Count,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlZeroHeap(
|
|
IN PVOID HeapHandle,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlxAnsiStringToUnicodeSize (
|
|
IN PANSI_STRING AnsiString
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlxOemStringToUnicodeSize (
|
|
IN POEM_STRING OemString
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlxUnicodeStringToAnsiSize (
|
|
IN PUNICODE_STRING UnicodeString
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
RtlxUnicodeStringToOemSize (
|
|
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 PWSTR 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
|
|
STDCALL
|
|
READ_REGISTER_UCHAR (
|
|
PUCHAR Register
|
|
);
|
|
|
|
USHORT
|
|
STDCALL
|
|
READ_REGISTER_USHORT (
|
|
PUSHORT Register
|
|
);
|
|
|
|
ULONG
|
|
STDCALL
|
|
READ_REGISTER_ULONG (
|
|
PULONG Register
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
READ_REGISTER_BUFFER_UCHAR (
|
|
PUCHAR Register,
|
|
PUCHAR Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
READ_REGISTER_BUFFER_USHORT (
|
|
PUSHORT Register,
|
|
PUSHORT Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
READ_REGISTER_BUFFER_ULONG (
|
|
PULONG Register,
|
|
PULONG Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_UCHAR (
|
|
PUCHAR Register,
|
|
UCHAR Value
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_USHORT (
|
|
PUSHORT Register,
|
|
USHORT Value
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_ULONG (
|
|
PULONG Register,
|
|
ULONG Value
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_BUFFER_UCHAR (
|
|
PUCHAR Register,
|
|
PUCHAR Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_BUFFER_USHORT (
|
|
PUSHORT Register,
|
|
PUSHORT Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
VOID
|
|
STDCALL
|
|
WRITE_REGISTER_BUFFER_ULONG (
|
|
PULONG Register,
|
|
PULONG Buffer,
|
|
ULONG Count
|
|
);
|
|
|
|
|
|
/* 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);
|
|
char * _strlwr(char *x);
|
|
int _strnicmp(const char *s1, const char *s2, size_t n);
|
|
char * _strnset(char* szToFill, int szFill, size_t sizeMaxFill);
|
|
char * _strrev(char *s);
|
|
char * _strset(char* szToFill, int szFill);
|
|
char * _strupr(char *x);
|
|
int _vsnprintf(char *buf, size_t cnt, const char *fmt, va_list args);
|
|
int _wcsicmp (const wchar_t* cs, const wchar_t* ct);
|
|
wchar_t * _wcslwr (wchar_t *x);
|
|
int _wcsnicmp (const wchar_t * cs,const wchar_t * ct,size_t count);
|
|
wchar_t* _wcsnset (wchar_t* wsToFill, wchar_t wcFill, size_t sizeMaxFill);
|
|
wchar_t * _wcsrev(wchar_t *s);
|
|
wchar_t *_wcsupr(wchar_t *x);
|
|
|
|
int atoi(const char *str);
|
|
long atol(const char *str);
|
|
int isdigit(int c);
|
|
int islower(int c);
|
|
int isprint(int c);
|
|
int isspace(int c);
|
|
int isupper(int c);
|
|
int isxdigit(int c);
|
|
size_t mbstowcs (wchar_t *wcstr, const char *mbstr, size_t count);
|
|
int mbtowc (wchar_t *wchar, const char *mbchar, size_t count);
|
|
void * memchr(const void *s, int c, size_t n);
|
|
void * memcpy(void *to, const void *from, size_t count);
|
|
void * memmove(void *dest,const void *src, size_t count);
|
|
void * memset(void *src, int val, size_t count);
|
|
|
|
#if 0
|
|
qsort
|
|
#endif
|
|
|
|
int rand(void);
|
|
int sprintf(char * buf, const char *fmt, ...);
|
|
void srand(unsigned seed);
|
|
char * strcat(char *s, const char *append);
|
|
char * strchr(const char *s, int c);
|
|
int strcmp(const char *s1, const char *s2);
|
|
char * strcpy(char *to, const char *from);
|
|
size_t strlen(const char *str);
|
|
char * strncat(char *dst, const char *src, size_t n);
|
|
int strncmp(const char *s1, const char *s2, size_t n);
|
|
char *strncpy(char *dst, const char *src, size_t n);
|
|
char *strrchr(const char *s, int c);
|
|
size_t strspn(const char *s1, const char *s2);
|
|
char *strstr(const char *s, const char *find);
|
|
int swprintf(wchar_t *buf, const wchar_t *fmt, ...);
|
|
int tolower(int c);
|
|
int toupper(int c);
|
|
wchar_t towlower(wchar_t c);
|
|
wchar_t towupper(wchar_t c);
|
|
int vsprintf(char *buf, const char *fmt, va_list args);
|
|
wchar_t * wcscat(wchar_t *dest, const wchar_t *src);
|
|
wchar_t * wcschr(const wchar_t *str, wchar_t ch);
|
|
int wcscmp(const wchar_t *cs, const wchar_t *ct);
|
|
wchar_t* wcscpy(wchar_t* str1, const wchar_t* str2);
|
|
size_t wcscspn(const wchar_t *str,const wchar_t *reject);
|
|
size_t wcslen(const wchar_t *s);
|
|
wchar_t * wcsncat(wchar_t *dest, const wchar_t *src, size_t count);
|
|
int wcsncmp(const wchar_t *cs, const wchar_t *ct, size_t count);
|
|
wchar_t * wcsncpy(wchar_t *dest, const wchar_t *src, size_t count);
|
|
wchar_t * wcsrchr(const wchar_t *str, wchar_t ch);
|
|
size_t wcsspn(const wchar_t *str,const wchar_t *accept);
|
|
wchar_t *wcsstr(const wchar_t *s,const wchar_t *b);
|
|
size_t wcstombs (char *mbstr, const wchar_t *wcstr, size_t count);
|
|
int wctomb (char *mbchar, wchar_t wchar);
|
|
|
|
#endif /* __NTOSKRNL__ || __NTDRIVER__ || __NTHAL__ || __NTDLL__ || __NTAPP__ */
|
|
|
|
#endif /* __DDK_RTL_H */
|
|
|
|
|