2005-06-18 23:33:40 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: ReactOS Native Headers
|
|
|
|
* FILE: include/ndk/rtlfuncs.h
|
|
|
|
* PURPOSE: Prototypes for Runtime Library Functions not defined in DDK/IFS
|
|
|
|
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
|
|
|
|
* UPDATE HISTORY:
|
|
|
|
* Created 06/10/04
|
|
|
|
*/
|
|
|
|
#ifndef _RTLFUNCS_H
|
|
|
|
#define _RTLFUNCS_H
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/* DEPENDENCIES **************************************************************/
|
2005-06-18 23:33:40 +00:00
|
|
|
#include <ndk/rtltypes.h>
|
2005-06-19 03:25:33 +00:00
|
|
|
#include <ndk/pstypes.h>
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/* PROTOTYPES ****************************************************************/
|
|
|
|
|
2005-06-20 18:58:56 +00:00
|
|
|
/* FIXME: FILE NEEDS SOME ALPHABETIZING AND REGROUP */
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/* List Macros */
|
|
|
|
static __inline
|
|
|
|
VOID
|
2005-06-19 19:36:05 +00:00
|
|
|
InitializeListHead(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY ListHead)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
ListHead->Flink = ListHead->Blink = ListHead;
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
static __inline
|
|
|
|
VOID
|
2005-06-19 19:36:05 +00:00
|
|
|
InsertHeadList(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY ListHead,
|
|
|
|
IN PLIST_ENTRY Entry)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
PLIST_ENTRY OldFlink;
|
|
|
|
OldFlink = ListHead->Flink;
|
|
|
|
Entry->Flink = OldFlink;
|
|
|
|
Entry->Blink = ListHead;
|
|
|
|
OldFlink->Blink = Entry;
|
|
|
|
ListHead->Flink = Entry;
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
static __inline
|
|
|
|
VOID
|
2005-06-19 19:36:05 +00:00
|
|
|
InsertTailList(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY ListHead,
|
|
|
|
IN PLIST_ENTRY Entry)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
PLIST_ENTRY OldBlink;
|
|
|
|
OldBlink = ListHead->Blink;
|
|
|
|
Entry->Flink = ListHead;
|
|
|
|
Entry->Blink = OldBlink;
|
|
|
|
OldBlink->Flink = Entry;
|
|
|
|
ListHead->Blink = Entry;
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#define IsListEmpty(ListHead) \
|
2005-06-20 05:36:32 +00:00
|
|
|
((ListHead)->Flink == (ListHead))
|
2005-06-19 19:36:05 +00:00
|
|
|
|
|
|
|
#define PopEntryList(ListHead) \
|
2005-06-20 05:36:32 +00:00
|
|
|
(ListHead)->Next; \
|
|
|
|
{ \
|
|
|
|
PSINGLE_LIST_ENTRY _FirstEntry; \
|
|
|
|
_FirstEntry = (ListHead)->Next; \
|
|
|
|
if (_FirstEntry != NULL) \
|
|
|
|
(ListHead)->Next = _FirstEntry->Next; \
|
|
|
|
}
|
2005-06-19 19:36:05 +00:00
|
|
|
|
|
|
|
#define PushEntryList(_ListHead, _Entry) \
|
2005-06-20 05:36:32 +00:00
|
|
|
(_Entry)->Next = (_ListHead)->Next; \
|
|
|
|
(_ListHead)->Next = (_Entry); \
|
2005-06-19 19:36:05 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
static __inline
|
|
|
|
BOOLEAN
|
2005-06-19 19:36:05 +00:00
|
|
|
RemoveEntryList(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY Entry)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
PLIST_ENTRY OldFlink;
|
|
|
|
PLIST_ENTRY OldBlink;
|
|
|
|
|
|
|
|
OldFlink = Entry->Flink;
|
|
|
|
OldBlink = Entry->Blink;
|
|
|
|
OldFlink->Blink = OldBlink;
|
|
|
|
OldBlink->Flink = OldFlink;
|
|
|
|
return (OldFlink == OldBlink);
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
static __inline
|
|
|
|
PLIST_ENTRY
|
2005-06-19 19:36:05 +00:00
|
|
|
RemoveHeadList(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY ListHead)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
PLIST_ENTRY Flink;
|
|
|
|
PLIST_ENTRY Entry;
|
|
|
|
|
|
|
|
Entry = ListHead->Flink;
|
|
|
|
Flink = Entry->Flink;
|
|
|
|
ListHead->Flink = Flink;
|
|
|
|
Flink->Blink = ListHead;
|
|
|
|
return Entry;
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
static __inline
|
|
|
|
PLIST_ENTRY
|
2005-06-19 19:36:05 +00:00
|
|
|
RemoveTailList(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PLIST_ENTRY ListHead)
|
2005-06-19 19:36:05 +00:00
|
|
|
{
|
2005-06-20 05:36:32 +00:00
|
|
|
PLIST_ENTRY Blink;
|
|
|
|
PLIST_ENTRY Entry;
|
|
|
|
|
|
|
|
Entry = ListHead->Blink;
|
|
|
|
Blink = Entry->Blink;
|
|
|
|
ListHead->Blink = Blink;
|
|
|
|
Blink->Flink = ListHead;
|
|
|
|
return Entry;
|
2005-06-19 19:36:05 +00:00
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
#define IsFirstEntry(ListHead, Entry) \
|
|
|
|
((ListHead)->Flink == Entry)
|
2005-06-19 19:36:05 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
#define IsLastEntry(ListHead, Entry) \
|
|
|
|
((ListHead)->Blink == Entry)
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
#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));\
|
|
|
|
}
|
|
|
|
|
2005-06-20 18:58:56 +00:00
|
|
|
/*
|
|
|
|
* Constant String Macro
|
|
|
|
*/
|
|
|
|
#define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
|
|
|
|
{ \
|
|
|
|
sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
|
|
|
|
sizeof(__SOURCE_STRING__), \
|
|
|
|
(__SOURCE_STRING__) \
|
|
|
|
}
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Debug Functions
|
|
|
|
*/
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
ULONG
|
2005-06-19 03:25:33 +00:00
|
|
|
CDECL
|
2005-06-18 23:33:40 +00:00
|
|
|
DbgPrint(
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PCH Format,
|
|
|
|
IN ...
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
DbgBreakPoint(VOID);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlAssert(
|
|
|
|
PVOID FailedAssertion,
|
|
|
|
PVOID FileName,
|
|
|
|
ULONG LineNumber,
|
|
|
|
PCHAR Message
|
|
|
|
);
|
|
|
|
|
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlNtStatusToDosError(IN NTSTATUS Status);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlRaiseException(IN PEXCEPTION_RECORD ExceptionRecord);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlRaiseStatus(NTSTATUS Status);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlUnwind(
|
|
|
|
PEXCEPTION_REGISTRATION RegistrationFrame,
|
|
|
|
PVOID ReturnAddress,
|
|
|
|
PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
DWORD EaxValue
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Heap Functions
|
|
|
|
*/
|
|
|
|
|
|
|
|
PVOID
|
|
|
|
STDCALL
|
|
|
|
RtlAllocateHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ULONG Size
|
|
|
|
);
|
|
|
|
|
|
|
|
PVOID
|
|
|
|
STDCALL
|
|
|
|
RtlCreateHeap(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress OPTIONAL,
|
|
|
|
IN ULONG SizeToReserve OPTIONAL,
|
|
|
|
IN ULONG SizeToCommit OPTIONAL,
|
|
|
|
IN PVOID Lock OPTIONAL,
|
|
|
|
IN PRTL_HEAP_DEFINITION Definition OPTIONAL
|
|
|
|
);
|
|
|
|
|
|
|
|
HANDLE
|
|
|
|
STDCALL
|
|
|
|
RtlDestroyHeap(HANDLE hheap);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlFreeHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID P
|
|
|
|
);
|
|
|
|
|
|
|
|
PVOID
|
|
|
|
STDCALL
|
|
|
|
RtlReAllocateHeap(
|
|
|
|
HANDLE Heap,
|
|
|
|
ULONG Flags,
|
|
|
|
PVOID Ptr,
|
|
|
|
ULONG Size
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlLockHeap(IN HANDLE Heap);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlUnlockHeap(IN HANDLE Heap);
|
|
|
|
|
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlSizeHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID MemoryPointer
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlValidateHeap(
|
|
|
|
HANDLE Heap,
|
|
|
|
ULONG Flags,
|
|
|
|
PVOID pmem
|
|
|
|
);
|
|
|
|
|
|
|
|
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Security Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAbsoluteToSelfRelativeSD(
|
2005-06-18 23:33:40 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor,
|
|
|
|
IN PULONG BufferLength
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAddAccessAllowedAce(
|
2005-06-18 23:33:40 +00:00
|
|
|
PACL Acl,
|
|
|
|
ULONG Revision,
|
|
|
|
ACCESS_MASK AccessMask,
|
|
|
|
PSID Sid
|
|
|
|
);
|
2005-06-20 18:54:47 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
RtlAddAccessDeniedAceEx(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ACCESS_MASK AccessMask,
|
|
|
|
IN PSID Sid
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlAddAuditAccessAceEx(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ACCESS_MASK AccessMask,
|
|
|
|
IN PSID Sid,
|
|
|
|
IN BOOLEAN Success,
|
|
|
|
IN BOOLEAN Failure
|
|
|
|
);
|
|
|
|
|
|
|
|
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
|
|
|
|
);
|
|
|
|
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAllocateAndInitializeSid(
|
2005-06-19 23:59:40 +00:00
|
|
|
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
|
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlAreAllAccessesGranted(
|
|
|
|
ACCESS_MASK GrantedAccess,
|
|
|
|
ACCESS_MASK DesiredAccess
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlAreAnyAccessesGranted(
|
|
|
|
ACCESS_MASK GrantedAccess,
|
|
|
|
ACCESS_MASK DesiredAccess
|
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlCopyLuid(
|
|
|
|
IN PLUID LuidDest,
|
|
|
|
IN PLUID LuidSrc
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlCopyLuidAndAttributesArray(
|
|
|
|
ULONG Count,
|
|
|
|
PLUID_AND_ATTRIBUTES Src,
|
|
|
|
PLUID_AND_ATTRIBUTES Dest
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlCopySidAndAttributesArray(
|
|
|
|
ULONG Count,
|
|
|
|
PSID_AND_ATTRIBUTES Src,
|
|
|
|
ULONG SidAreaSize,
|
|
|
|
PSID_AND_ATTRIBUTES Dest,
|
|
|
|
PVOID SidArea,
|
|
|
|
PVOID* RemainingSidArea,
|
|
|
|
PULONG RemainingSidAreaSize
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlConvertSidToUnicodeString(
|
2005-06-18 23:33:40 +00:00
|
|
|
OUT PUNICODE_STRING DestinationString,
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PSID Sid,
|
|
|
|
IN BOOLEAN AllocateDestinationString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCopySid(
|
|
|
|
IN ULONG Length,
|
|
|
|
IN PSID Destination,
|
|
|
|
IN PSID Source
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlCreateAcl(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AclSize,
|
|
|
|
ULONG AclRevision
|
|
|
|
);
|
2005-06-19 19:36:05 +00:00
|
|
|
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlCreateSecurityDescriptor(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
ULONG Revision
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-19 23:59:40 +00:00
|
|
|
RtlCreateSecurityDescriptorRelative(
|
|
|
|
PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor,
|
|
|
|
ULONG Revision
|
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlDeleteAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AceIndex
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlEqualPrefixSid(
|
|
|
|
PSID Sid1,
|
|
|
|
PSID Sid2
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlEqualSid (
|
|
|
|
IN PSID Sid1,
|
|
|
|
IN PSID Sid2
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlFirstFreeAce(
|
|
|
|
PACL Acl,
|
|
|
|
PACE* Ace
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
PVOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeSid (
|
|
|
|
IN PSID Sid
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlGetAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AceIndex,
|
|
|
|
PACE *Ace
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlGetControlSecurityDescriptor(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PSECURITY_DESCRIPTOR_CONTROL Control,
|
|
|
|
PULONG Revision
|
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetDaclSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PBOOLEAN DaclPresent,
|
|
|
|
OUT PACL *Dacl,
|
|
|
|
OUT PBOOLEAN DaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetSaclSecurityDescriptor(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PBOOLEAN SaclPresent,
|
|
|
|
PACL* Sacl,
|
|
|
|
PBOOLEAN SaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetGroupSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PSID *Group,
|
|
|
|
OUT PBOOLEAN GroupDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetOwnerSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PSID *Owner,
|
|
|
|
OUT PBOOLEAN OwnerDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlGetSecurityDescriptorRMControl(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PUCHAR RMControl
|
|
|
|
);
|
|
|
|
|
|
|
|
PSID_IDENTIFIER_AUTHORITY
|
|
|
|
STDCALL
|
|
|
|
RtlIdentifierAuthoritySid(PSID Sid);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitializeSid(
|
|
|
|
IN OUT PSID Sid,
|
|
|
|
IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
|
|
|
|
IN UCHAR SubAuthorityCount
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlLengthRequiredSid(IN UCHAR SubAuthorityCount);
|
|
|
|
|
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlLengthSid(IN PSID Sid);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlQueryInformationAcl(
|
|
|
|
PACL Acl,
|
|
|
|
PVOID Information,
|
|
|
|
ULONG InformationLength,
|
|
|
|
ACL_INFORMATION_CLASS InformationClass
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSelfRelativeToAbsoluteSD(
|
2005-06-20 18:54:47 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSD,
|
2005-06-20 05:36:32 +00:00
|
|
|
OUT PSECURITY_DESCRIPTOR AbsoluteSD,
|
|
|
|
IN PULONG AbsoluteSDSize,
|
|
|
|
IN PACL Dacl,
|
|
|
|
IN PULONG DaclSize,
|
|
|
|
IN PACL Sacl,
|
|
|
|
IN PULONG SaclSize,
|
|
|
|
IN PSID Owner,
|
|
|
|
IN PULONG OwnerSize,
|
|
|
|
IN PSID PrimaryGroup,
|
|
|
|
IN PULONG PrimaryGroupSize
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlSetControlSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
|
|
|
|
IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetDaclSecurityDescriptor (
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
BOOLEAN DaclPresent,
|
|
|
|
PACL Dacl,
|
|
|
|
BOOLEAN DaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetGroupSecurityDescriptor(
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN PSID Group,
|
|
|
|
IN BOOLEAN GroupDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlSetInformationAcl(
|
|
|
|
PACL Acl,
|
|
|
|
PVOID Information,
|
|
|
|
ULONG InformationLength,
|
|
|
|
ACL_INFORMATION_CLASS InformationClass
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetOwnerSecurityDescriptor(
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN PSID Owner,
|
|
|
|
IN BOOLEAN OwnerDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetSaclSecurityDescriptor(
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN BOOLEAN SaclPresent,
|
|
|
|
IN PACL Sacl,
|
|
|
|
IN BOOLEAN SaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlSetSecurityDescriptorRMControl(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PUCHAR RMControl
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
PUCHAR
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSubAuthorityCountSid(
|
|
|
|
IN PSID Sid
|
|
|
|
);
|
|
|
|
|
|
|
|
PULONG
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSubAuthoritySid(
|
|
|
|
IN PSID Sid,
|
|
|
|
IN ULONG SubAuthority
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 18:54:47 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlValidRelativeSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput,
|
|
|
|
IN ULONG SecurityDescriptorLength,
|
|
|
|
IN SECURITY_INFORMATION RequiredInformation
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlValidSid(IN PSID Sid);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-06-20 04:07:34 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlValidAcl(PACL Acl);
|
2005-06-20 04:07:34 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Single-Character Functions
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlLargeIntegerToChar(
|
|
|
|
IN PLARGE_INTEGER Value,
|
|
|
|
IN ULONG Base,
|
|
|
|
IN ULONG Length,
|
|
|
|
IN OUT PCHAR String
|
|
|
|
);
|
|
|
|
|
|
|
|
CHAR
|
2005-06-20 04:07:34 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpperChar(CHAR Source);
|
2005-06-20 04:07:34 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
WCHAR
|
2005-06-20 04:07:34 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeChar(WCHAR Source);
|
2005-06-20 04:07:34 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
WCHAR
|
|
|
|
STDCALL
|
|
|
|
RtlDowncaseUnicodeChar(IN WCHAR Source);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
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
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlIntegerToUnicodeString(
|
|
|
|
IN ULONG Value,
|
|
|
|
IN ULONG Base,
|
|
|
|
IN OUT PUNICODE_STRING String
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-19 23:59:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCharToInteger(
|
|
|
|
PCSZ String,
|
|
|
|
ULONG Base,
|
|
|
|
PULONG Value
|
|
|
|
);
|
2005-06-19 23:59:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
USHORT
|
|
|
|
FASTCALL
|
|
|
|
RtlUshortByteSwap(IN USHORT Source);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Unicode->Ansi String Functions
|
|
|
|
*/
|
|
|
|
ULONG
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToAnsiString(
|
|
|
|
PANSI_STRING DestinationString,
|
|
|
|
PUNICODE_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Unicode->OEM String Functions
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeStringToOemString(
|
|
|
|
POEM_STRING DestinationString,
|
|
|
|
PUNICODE_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeStringToCountedOemString(
|
|
|
|
IN OUT POEM_STRING DestinationString,
|
|
|
|
IN PUNICODE_STRING SourceString,
|
|
|
|
IN BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PCUNICODE_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToOemString(
|
|
|
|
POEM_STRING DestinationString,
|
|
|
|
PUNICODE_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-19 23:59:40 +00:00
|
|
|
|
2005-06-19 19:36:05 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeToOemN(
|
|
|
|
PCHAR OemString,
|
|
|
|
ULONG OemSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
|
|
|
|
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToOemN(
|
|
|
|
PCHAR OemString,
|
|
|
|
ULONG OemSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Unicode->MultiByte String Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToMultiByteN(
|
|
|
|
PCHAR MbString,
|
|
|
|
ULONG MbSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeToMultiByteN(
|
|
|
|
PCHAR MbString,
|
|
|
|
ULONG MbSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToMultiByteSize(
|
|
|
|
PULONG MbSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* OEM to Unicode Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
ULONG
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOemStringToUnicodeSize(POEM_STRING AnsiString);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-19 23:59:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOemStringToUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
POEM_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-06-19 20:01:07 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOemToUnicodeN(
|
|
|
|
PWSTR UnicodeString,
|
|
|
|
ULONG MaxBytesInUnicodeString,
|
|
|
|
PULONG BytesInUnicodeString,
|
|
|
|
IN PCHAR OemString,
|
|
|
|
ULONG BytesInOemString
|
|
|
|
);
|
2005-06-19 20:01:07 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Ansi->Multibyte String Functions
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Ansi->Unicode String Functions
|
|
|
|
*/
|
2005-06-19 19:36:05 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAnsiStringToUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PANSI_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-19 19:36:05 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAnsiStringToUnicodeSize(
|
|
|
|
PANSI_STRING AnsiString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateUnicodeStringFromAsciiz(
|
|
|
|
OUT PUNICODE_STRING Destination,
|
|
|
|
IN PCSZ Source
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Unicode String Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAppendUnicodeToString(
|
|
|
|
PUNICODE_STRING Destination,
|
|
|
|
PCWSTR Source
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAppendUnicodeStringToString(
|
|
|
|
PUNICODE_STRING Destination,
|
|
|
|
PUNICODE_STRING Source
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
LONG
|
2005-06-19 23:59:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCompareUnicodeString(
|
|
|
|
PUNICODE_STRING String1,
|
|
|
|
PUNICODE_STRING String2,
|
|
|
|
BOOLEAN CaseInsensitive
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCopyUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PUNICODE_STRING SourceString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PCWSTR SourceString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlEqualUnicodeString(
|
|
|
|
PCUNICODE_STRING String1,
|
|
|
|
PCUNICODE_STRING String2,
|
|
|
|
BOOLEAN CaseInsensitive
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitUnicodeString(
|
|
|
|
IN OUT PUNICODE_STRING DestinationString,
|
|
|
|
IN PCWSTR SourceString);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlPrefixUnicodeString(
|
|
|
|
PUNICODE_STRING String1,
|
|
|
|
PUNICODE_STRING String2,
|
|
|
|
BOOLEAN CaseInsensitive
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToInteger(
|
|
|
|
PUNICODE_STRING String,
|
|
|
|
ULONG Base,
|
|
|
|
PULONG Value
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Ansi String Functions
|
|
|
|
*/
|
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeAnsiString(IN PANSI_STRING AnsiString);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitAnsiString(
|
|
|
|
PANSI_STRING DestinationString,
|
|
|
|
PCSZ SourceString
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* OEM String Functions
|
|
|
|
*/
|
|
|
|
VOID
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeOemString(IN POEM_STRING OemString);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* MultiByte->Unicode String Functions
|
|
|
|
*/
|
2005-06-20 03:55:42 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlMultiByteToUnicodeN(
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
const PCHAR MbString,
|
|
|
|
ULONG MbSize
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlMultiByteToUnicodeSize(
|
|
|
|
PULONG UnicodeSize,
|
|
|
|
PCHAR MbString,
|
|
|
|
ULONG MbSize
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Atom Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAddAtomToAtomTable(
|
|
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
|
|
IN PWSTR AtomName,
|
|
|
|
OUT PRTL_ATOM Atom
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateAtomTable(
|
|
|
|
IN ULONG TableSize,
|
|
|
|
IN OUT PRTL_ATOM_TABLE *AtomTable
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDeleteAtomFromAtomTable(
|
|
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
|
|
IN RTL_ATOM Atom
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlQueryAtomInAtomTable(
|
2005-06-18 23:33:40 +00:00
|
|
|
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
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlLookupAtomInAtomTable(
|
2005-06-18 23:33:40 +00:00
|
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
|
|
IN PWSTR AtomName,
|
|
|
|
OUT PRTL_ATOM Atom
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Memory Functions
|
|
|
|
*/
|
|
|
|
SIZE_T
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCompareMemory(
|
|
|
|
IN const VOID *Source1,
|
|
|
|
IN const VOID *Source2,
|
|
|
|
IN SIZE_T Length
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFillMemoryUlong(
|
|
|
|
IN PVOID Destination,
|
|
|
|
IN ULONG Length,
|
|
|
|
IN ULONG Fill
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Process Management Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAcquirePebLock(VOID);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-19 23:59:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlReleasePebLock(VOID);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 19:50:52 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlCreateEnvironment(
|
|
|
|
BOOLEAN Inherit,
|
|
|
|
PWSTR *Environment
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateUserThread(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN BOOLEAN CreateSuspended,
|
|
|
|
IN LONG StackZeroBits,
|
|
|
|
IN OUT PULONG StackReserve,
|
|
|
|
IN OUT PULONG StackCommit,
|
|
|
|
IN PTHREAD_START_ROUTINE StartAddress,
|
|
|
|
IN PVOID Parameter,
|
|
|
|
IN OUT PHANDLE ThreadHandle,
|
|
|
|
IN OUT PCLIENT_ID ClientId
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
PRTL_USER_PROCESS_PARAMETERS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDeNormalizeProcessParams(
|
|
|
|
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 19:50:52 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlDestroyEnvironment(
|
|
|
|
PWSTR Environment
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlExpandEnvironmentStrings_U(
|
|
|
|
PWSTR Environment,
|
|
|
|
PUNICODE_STRING Source,
|
|
|
|
PUNICODE_STRING Destination,
|
|
|
|
PULONG Length
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
PRTL_USER_PROCESS_PARAMETERS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlNormalizeProcessParams(
|
|
|
|
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlQueryEnvironmentVariable_U(
|
|
|
|
PWSTR Environment,
|
|
|
|
PUNICODE_STRING Name,
|
|
|
|
PUNICODE_STRING Value
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 19:50:52 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlSetEnvironmentVariable(
|
|
|
|
PWSTR *Environment,
|
|
|
|
PUNICODE_STRING Name,
|
|
|
|
PUNICODE_STRING Value
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Critical Section/Resource Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDeleteCriticalSection (
|
|
|
|
PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlEnterCriticalSection(
|
|
|
|
PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitializeCriticalSection(
|
|
|
|
PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlLeaveCriticalSection(
|
|
|
|
PRTL_CRITICAL_SECTION CriticalSection
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Compression Functions
|
|
|
|
*/
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
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
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDecompressBuffer(
|
|
|
|
IN USHORT CompressionFormat,
|
|
|
|
OUT PUCHAR UncompressedBuffer,
|
|
|
|
IN ULONG UncompressedBufferSize,
|
|
|
|
IN PUCHAR CompressedBuffer,
|
|
|
|
IN ULONG CompressedBufferSize,
|
|
|
|
OUT PULONG FinalUncompressedSize
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetCompressionWorkSpaceSize(
|
|
|
|
IN USHORT CompressionFormatAndEngine,
|
|
|
|
OUT PULONG CompressBufferWorkSpaceSize,
|
|
|
|
OUT PULONG CompressFragmentWorkSpaceSize
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Bitmap Functions
|
|
|
|
*/
|
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAreBitsClear(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG StartingIndex,
|
|
|
|
IN ULONG Length
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAreBitsSet(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG StartingIndex,
|
|
|
|
IN ULONG Length
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlClearBits(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG StartingIndex,
|
|
|
|
IN ULONG NumberToClear
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFindClearBits(
|
|
|
|
PRTL_BITMAP BitMapHeader,
|
|
|
|
ULONG NumberToFind,
|
|
|
|
ULONG HintIndex
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFindClearBitsAndSet(
|
|
|
|
PRTL_BITMAP BitMapHeader,
|
|
|
|
ULONG NumberToFind,
|
|
|
|
ULONG HintIndex
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitializeBitMap(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN PULONG BitMapBuffer,
|
|
|
|
IN ULONG SizeOfBitMap
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetBits (
|
|
|
|
PRTL_BITMAP BitMapHeader,
|
|
|
|
ULONG StartingIndex,
|
|
|
|
ULONG NumberToSet
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* PE Functions
|
|
|
|
*/
|
|
|
|
PVOID
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageDirectoryEntryToData(
|
|
|
|
PVOID BaseAddress,
|
|
|
|
BOOLEAN bFlag,
|
|
|
|
ULONG Directory,
|
|
|
|
PULONG Size
|
|
|
|
);
|
|
|
|
|
|
|
|
ULONG
|
2005-06-20 03:55:42 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageRvaToVa(
|
|
|
|
PIMAGE_NT_HEADERS NtHeader,
|
|
|
|
PVOID BaseAddress,
|
|
|
|
ULONG Rva,
|
|
|
|
PIMAGE_SECTION_HEADER *SectionHeader
|
|
|
|
);
|
|
|
|
|
|
|
|
PIMAGE_NT_HEADERS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageNtHeader(IN PVOID BaseAddress);
|
|
|
|
|
|
|
|
PIMAGE_SECTION_HEADER
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageRvaToSection(
|
|
|
|
PIMAGE_NT_HEADERS NtHeader,
|
|
|
|
PVOID BaseAddress,
|
|
|
|
ULONG Rva
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Registry Functions
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlOpenCurrentUser(
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
OUT PHANDLE KeyHandle
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlQueryRegistryValues(
|
2005-06-18 23:33:40 +00:00
|
|
|
IN ULONG RelativeTo,
|
|
|
|
IN PCWSTR Path,
|
|
|
|
IN PRTL_QUERY_REGISTRY_TABLE QueryTable,
|
|
|
|
IN PVOID Context,
|
|
|
|
IN PVOID Environment
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlWriteRegistryValue(
|
2005-06-18 23:33:40 +00:00
|
|
|
ULONG RelativeTo,
|
|
|
|
PCWSTR Path,
|
|
|
|
PCWSTR ValueName,
|
|
|
|
ULONG ValueType,
|
|
|
|
PVOID ValueData,
|
|
|
|
ULONG ValueLength
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlFindMessage (
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
IN ULONG Type,
|
|
|
|
IN ULONG Language,
|
|
|
|
IN ULONG MessageId,
|
|
|
|
OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* NLS Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitNlsTables(
|
|
|
|
IN PUSHORT AnsiTableBase,
|
|
|
|
IN PUSHORT OemTableBase,
|
|
|
|
IN PUSHORT CaseTableBase,
|
|
|
|
OUT PNLSTABLEINFO NlsTable
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlInitCodePageTable(
|
|
|
|
IN PUSHORT TableBase,
|
|
|
|
OUT PCPTABLEINFO CodePageTable
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Misc String Functions
|
2005-06-20 18:54:47 +00:00
|
|
|
*/
|
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlDosPathNameToNtPathName_U(
|
|
|
|
PWSTR DosName,
|
|
|
|
PUNICODE_STRING NtName,
|
|
|
|
PWSTR *ShortName,
|
|
|
|
PCURDIR CurrentDirectory
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
|
|
|
RtlIsNameLegalDOS8Dot3(
|
|
|
|
IN PUNICODE_STRING UnicodeName,
|
|
|
|
IN PANSI_STRING AnsiName,
|
|
|
|
PBOOLEAN Unknown
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
|
|
|
STDCALL
|
|
|
|
RtlIsTextUnicode(
|
|
|
|
PVOID Buffer,
|
|
|
|
ULONG Length,
|
|
|
|
ULONG *Flags
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 19:28:45 +00:00
|
|
|
/*
|
|
|
|
* Misc conversion functions
|
|
|
|
*/
|
|
|
|
LARGE_INTEGER
|
|
|
|
STDCALL
|
|
|
|
RtlConvertLongToLargeInteger(IN LONG SignedInteger);
|
|
|
|
|
|
|
|
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
|
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* Time Functions
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-06-18 23:33:40 +00:00
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSecondsSince1970ToTime(
|
|
|
|
IN ULONG SecondsSince1970,
|
|
|
|
OUT PLARGE_INTEGER Time
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
BOOLEAN
|
|
|
|
STDCALL
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlTimeFieldsToTime(
|
|
|
|
PTIME_FIELDS TimeFields,
|
|
|
|
PLARGE_INTEGER Time
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
STDCALL
|
|
|
|
RtlTimeToTimeFields(
|
|
|
|
PLARGE_INTEGER Time,
|
|
|
|
PTIME_FIELDS TimeFields
|
|
|
|
);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Version Functions
|
|
|
|
*/
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlVerifyVersionInfo(
|
|
|
|
IN PRTL_OSVERSIONINFOEXW VersionInfo,
|
|
|
|
IN ULONG TypeMask,
|
|
|
|
IN ULONGLONG ConditionMask
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
STDCALL
|
|
|
|
RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
/*
|
|
|
|
* C Runtime Library Functions
|
|
|
|
*/
|
2005-06-18 23:33:40 +00:00
|
|
|
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);
|
2005-06-20 05:36:32 +00:00
|
|
|
int isalpha(int c);
|
2005-06-18 23:33:40 +00:00
|
|
|
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);
|
|
|
|
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
|