2006-05-10 17:47:44 +00:00
|
|
|
/*++ NDK Version: 0098
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
Copyright (c) Alex Ionescu. All rights reserved.
|
|
|
|
|
|
|
|
Header Name:
|
|
|
|
|
|
|
|
rtlfuncs.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Function definitions for the Run-Time Library
|
|
|
|
|
|
|
|
Author:
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
--*/
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
#ifndef _RTLFUNCS_H
|
|
|
|
#define _RTLFUNCS_H
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Dependencies
|
|
|
|
//
|
2005-11-25 00:17:40 +00:00
|
|
|
#include <umtypes.h>
|
2005-07-26 14:00:45 +00:00
|
|
|
#include <ntnls.h>
|
2005-11-25 00:17:40 +00:00
|
|
|
#include <rtltypes.h>
|
2006-05-10 17:47:44 +00:00
|
|
|
#include <extypes.h>
|
|
|
|
#include "in6addr.h"
|
|
|
|
#include "inaddr.h"
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// List Functions
|
|
|
|
//
|
|
|
|
FORCEINLINE
|
|
|
|
VOID
|
|
|
|
InitializeListHead(
|
|
|
|
IN PLIST_ENTRY ListHead
|
|
|
|
)
|
|
|
|
{
|
|
|
|
ListHead->Flink = ListHead->Blink = ListHead;
|
|
|
|
}
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
VOID
|
|
|
|
InsertHeadList(
|
|
|
|
IN PLIST_ENTRY ListHead,
|
|
|
|
IN PLIST_ENTRY Entry
|
|
|
|
)
|
|
|
|
{
|
|
|
|
PLIST_ENTRY OldFlink;
|
|
|
|
OldFlink = ListHead->Flink;
|
|
|
|
Entry->Flink = OldFlink;
|
|
|
|
Entry->Blink = ListHead;
|
|
|
|
OldFlink->Blink = Entry;
|
|
|
|
ListHead->Flink = Entry;
|
|
|
|
}
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
VOID
|
|
|
|
InsertTailList(
|
|
|
|
IN PLIST_ENTRY ListHead,
|
|
|
|
IN PLIST_ENTRY Entry
|
|
|
|
)
|
|
|
|
{
|
|
|
|
PLIST_ENTRY OldBlink;
|
|
|
|
OldBlink = ListHead->Blink;
|
|
|
|
Entry->Flink = ListHead;
|
|
|
|
Entry->Blink = OldBlink;
|
|
|
|
OldBlink->Flink = Entry;
|
|
|
|
ListHead->Blink = Entry;
|
|
|
|
}
|
2005-11-08 22:54:39 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
2008-12-03 17:28:24 +00:00
|
|
|
BOOLEAN
|
2005-11-22 04:57:45 +00:00
|
|
|
IsListEmpty(
|
|
|
|
IN const LIST_ENTRY * ListHead
|
|
|
|
)
|
|
|
|
{
|
|
|
|
return (BOOLEAN)(ListHead->Flink == ListHead);
|
|
|
|
}
|
2005-11-07 19:14:38 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
PSINGLE_LIST_ENTRY
|
|
|
|
PopEntryList(
|
|
|
|
PSINGLE_LIST_ENTRY ListHead
|
|
|
|
)
|
|
|
|
{
|
|
|
|
PSINGLE_LIST_ENTRY FirstEntry;
|
|
|
|
FirstEntry = ListHead->Next;
|
|
|
|
if (FirstEntry != NULL) {
|
|
|
|
ListHead->Next = FirstEntry->Next;
|
|
|
|
}
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
return FirstEntry;
|
|
|
|
}
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
VOID
|
|
|
|
PushEntryList(
|
|
|
|
PSINGLE_LIST_ENTRY ListHead,
|
|
|
|
PSINGLE_LIST_ENTRY Entry
|
|
|
|
)
|
|
|
|
{
|
|
|
|
Entry->Next = ListHead->Next;
|
|
|
|
ListHead->Next = Entry;
|
|
|
|
}
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
BOOLEAN
|
|
|
|
RemoveEntryList(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PLIST_ENTRY Entry)
|
2005-11-22 04:57:45 +00:00
|
|
|
{
|
|
|
|
PLIST_ENTRY OldFlink;
|
|
|
|
PLIST_ENTRY OldBlink;
|
|
|
|
|
|
|
|
OldFlink = Entry->Flink;
|
|
|
|
OldBlink = Entry->Blink;
|
|
|
|
OldFlink->Blink = OldBlink;
|
|
|
|
OldBlink->Flink = OldFlink;
|
|
|
|
return (BOOLEAN)(OldFlink == OldBlink);
|
|
|
|
}
|
2005-11-07 19:31:15 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
PLIST_ENTRY
|
|
|
|
RemoveHeadList(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PLIST_ENTRY ListHead)
|
2005-11-22 04:57:45 +00:00
|
|
|
{
|
|
|
|
PLIST_ENTRY Flink;
|
|
|
|
PLIST_ENTRY Entry;
|
|
|
|
|
|
|
|
Entry = ListHead->Flink;
|
|
|
|
Flink = Entry->Flink;
|
|
|
|
ListHead->Flink = Flink;
|
|
|
|
Flink->Blink = ListHead;
|
|
|
|
return Entry;
|
|
|
|
}
|
2005-11-07 22:05:46 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
FORCEINLINE
|
|
|
|
PLIST_ENTRY
|
|
|
|
RemoveTailList(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PLIST_ENTRY ListHead)
|
2005-11-22 04:57:45 +00:00
|
|
|
{
|
|
|
|
PLIST_ENTRY Blink;
|
|
|
|
PLIST_ENTRY Entry;
|
|
|
|
|
|
|
|
Entry = ListHead->Blink;
|
|
|
|
Blink = Entry->Blink;
|
|
|
|
ListHead->Blink = Blink;
|
|
|
|
Blink->Flink = ListHead;
|
|
|
|
return Entry;
|
|
|
|
}
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
//
|
|
|
|
// Unicode string macros
|
|
|
|
//
|
|
|
|
FORCEINLINE
|
|
|
|
VOID
|
|
|
|
RtlInitEmptyUnicodeString(OUT PUNICODE_STRING UnicodeString,
|
|
|
|
IN PWSTR Buffer,
|
|
|
|
IN USHORT BufferSize)
|
|
|
|
{
|
|
|
|
UnicodeString->Length = 0;
|
|
|
|
UnicodeString->MaximumLength = BufferSize;
|
|
|
|
UnicodeString->Buffer = Buffer;
|
|
|
|
}
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// LUID Macros
|
|
|
|
//
|
|
|
|
#define RtlEqualLuid(L1, L2) (((L1)->HighPart == (L2)->HighPart) && \
|
|
|
|
((L1)->LowPart == (L2)->LowPart))
|
2006-05-10 17:47:44 +00:00
|
|
|
FORCEINLINE
|
|
|
|
LUID
|
|
|
|
NTAPI_INLINE
|
|
|
|
RtlConvertUlongToLuid(ULONG Ulong)
|
|
|
|
{
|
|
|
|
LUID TempLuid;
|
|
|
|
|
|
|
|
TempLuid.LowPart = Ulong;
|
|
|
|
TempLuid.HighPart = 0;
|
|
|
|
return TempLuid;
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// ASSERT Macros
|
|
|
|
//
|
|
|
|
#ifndef ASSERT
|
|
|
|
#if DBG
|
|
|
|
|
|
|
|
#define ASSERT( exp ) \
|
2008-11-28 14:33:21 +00:00
|
|
|
((void)((!(exp)) ? \
|
2006-05-10 17:47:44 +00:00
|
|
|
(RtlAssert( #exp, __FILE__, __LINE__, NULL ),FALSE) : \
|
2008-11-28 14:33:21 +00:00
|
|
|
TRUE))
|
2006-05-10 17:47:44 +00:00
|
|
|
|
|
|
|
#define ASSERTMSG( msg, exp ) \
|
2008-11-28 14:33:21 +00:00
|
|
|
((void)((!(exp)) ? \
|
2006-05-10 17:47:44 +00:00
|
|
|
(RtlAssert( #exp, __FILE__, __LINE__, msg ),FALSE) : \
|
2008-11-28 14:33:21 +00:00
|
|
|
TRUE))
|
2006-05-10 17:47:44 +00:00
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
#define ASSERT( exp ) ((void) 0)
|
|
|
|
#define ASSERTMSG( msg, exp ) ((void) 0)
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
2005-11-07 22:05:46 +00:00
|
|
|
|
2006-10-16 03:19:14 +00:00
|
|
|
#ifdef NTOS_KERNEL_RUNTIME
|
|
|
|
|
2006-06-23 21:21:45 +00:00
|
|
|
//
|
2006-10-16 03:19:14 +00:00
|
|
|
// Executing RTL functions at DISPATCH_LEVEL or higher will result in a
|
|
|
|
// bugcheck.
|
|
|
|
//
|
|
|
|
#define RTL_PAGED_CODE PAGED_CODE
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
//
|
|
|
|
// This macro does nothing in user mode
|
2006-06-23 21:21:45 +00:00
|
|
|
//
|
|
|
|
#define RTL_PAGED_CODE NOP_FUNCTION
|
|
|
|
|
2006-10-16 03:19:14 +00:00
|
|
|
#endif
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// RTL Splay Tree Functions
|
|
|
|
//
|
2005-11-07 01:01:29 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlSplay(
|
|
|
|
IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlDelete(IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlDeleteNoSplay(
|
2006-10-16 03:19:14 +00:00
|
|
|
IN PRTL_SPLAY_LINKS Links,
|
|
|
|
OUT PRTL_SPLAY_LINKS *Root
|
2005-11-07 01:01:29 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlSubtreeSuccessor(
|
|
|
|
IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlSubtreePredecessor(
|
|
|
|
IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlRealSuccessor(
|
|
|
|
IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PRTL_SPLAY_LINKS
|
|
|
|
NTAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
RtlRealPredecessor(
|
|
|
|
IN PRTL_SPLAY_LINKS Links
|
|
|
|
);
|
2005-11-07 01:01:29 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
#define RtlIsLeftChild(Links) \
|
|
|
|
(RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
|
|
|
|
|
|
|
|
#define RtlIsRightChild(Links) \
|
|
|
|
(RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
|
|
|
|
|
|
|
|
#define RtlRightChild(Links) \
|
|
|
|
((PRTL_SPLAY_LINKS)(Links))->RightChild
|
|
|
|
|
|
|
|
#define RtlIsRoot(Links) \
|
|
|
|
(RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
|
|
|
|
|
|
|
|
#define RtlLeftChild(Links) \
|
|
|
|
((PRTL_SPLAY_LINKS)(Links))->LeftChild
|
|
|
|
|
|
|
|
#define RtlParent(Links) \
|
|
|
|
((PRTL_SPLAY_LINKS)(Links))->Parent
|
|
|
|
|
|
|
|
#define RtlInitializeSplayLinks(Links) \
|
|
|
|
{ \
|
|
|
|
PRTL_SPLAY_LINKS _SplayLinks; \
|
|
|
|
_SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
|
|
|
|
_SplayLinks->Parent = _SplayLinks; \
|
|
|
|
_SplayLinks->LeftChild = NULL; \
|
|
|
|
_SplayLinks->RightChild = NULL; \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define RtlInsertAsLeftChild(ParentLinks,ChildLinks) \
|
|
|
|
{ \
|
|
|
|
PRTL_SPLAY_LINKS _SplayParent; \
|
|
|
|
PRTL_SPLAY_LINKS _SplayChild; \
|
|
|
|
_SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
|
|
|
|
_SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
|
|
|
|
_SplayParent->LeftChild = _SplayChild; \
|
|
|
|
_SplayChild->Parent = _SplayParent; \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define RtlInsertAsRightChild(ParentLinks,ChildLinks) \
|
|
|
|
{ \
|
|
|
|
PRTL_SPLAY_LINKS _SplayParent; \
|
|
|
|
PRTL_SPLAY_LINKS _SplayChild; \
|
|
|
|
_SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
|
|
|
|
_SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \
|
|
|
|
_SplayParent->RightChild = _SplayChild; \
|
|
|
|
_SplayChild->Parent = _SplayParent; \
|
|
|
|
}
|
2006-01-03 21:34:19 +00:00
|
|
|
#endif
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Error and Exception Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlAddVectoredExceptionHandler(
|
|
|
|
IN ULONG FirstHandler,
|
2005-06-21 02:58:22 +00:00
|
|
|
IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAssert(
|
2006-06-26 14:10:10 +00:00
|
|
|
IN PVOID FailedAssertion,
|
|
|
|
IN PVOID FileName,
|
|
|
|
IN ULONG LineNumber,
|
|
|
|
IN PCHAR Message
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
Major refactoring of the exception handling code + misc fixes:
- Fix/add prototypes for RtlCaptureContext, RtlDispatchException and RtlUnwind
- Fix EXCEPTION_REGISTRATION_RECORD structure and PEXCEPTION_ROUTINE
- Add w32api excpt.h (based on mingw) with PSDK compatibility fixes
- Fix seriously broken User-Mode Ldr thunk and APC Callback prototypes
- Fix KiUserExceptionDispatcher
- Remove useless NTDLL entrypoint
- Implement NTDLL Ki* callbacks in ASM
- Implement RtlCaptureContext
- Fix RtlRaiseException to handle cases when a user-mode debugger is present
- Fix RtlRaiseStatus as above, plus set the exception address and capture context
- Little cleanup of RTL headers
- Implement RtlpGetStackLimits, RtlpGetExceptionList, RtlpSetExceptionList, RtlpGetExceptionAddress in ASM
- Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the
exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of
Context.
- Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL.
- Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax
and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some
optimizations to increase speed.
- Modify some kernel functions (like KeContextToTrapFrame, KiDispatchException, KiInitializeUserApc, etc.) to
support a PKEXCEPTION_FRAME for future PPC compatibility.
- Reimplement RtlCaptureUnicodeString/FreeUnicodeString as inlined probe macros and optimize them.
- Export ExRaiseStatus/Exception as Rtl*
- Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context
and parameters with SEH.
- Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack.
- Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during
v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the
user-mode callback.
- Implement KiUnexpectedInterrupt and KiCoprocessorError
- Reimplement NtRaiseException in ASM to take advantage of optimizations due to the trap frame being in the
stack when called through System call interface.
- Fix Ntcontinue to respect AlertThread paramter
- Fix some functiosn to return with KiServiceExit2 instead of KiServiceExit when required/needed
- Fix KiDispatchException's logic, fix hacks when calling KeUserExceptionDispatcher, use correct context
flags,...
- Make NTDLL Ki* callbacks have SEH to protect them and return to kernel-mode with notification of any
exceptions (the kernel-mode code to handle this isn't written yet though)
svn path=/trunk/; revision=17811
2005-09-11 22:32:20 +00:00
|
|
|
NTSYSAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
PVOID
|
Major refactoring of the exception handling code + misc fixes:
- Fix/add prototypes for RtlCaptureContext, RtlDispatchException and RtlUnwind
- Fix EXCEPTION_REGISTRATION_RECORD structure and PEXCEPTION_ROUTINE
- Add w32api excpt.h (based on mingw) with PSDK compatibility fixes
- Fix seriously broken User-Mode Ldr thunk and APC Callback prototypes
- Fix KiUserExceptionDispatcher
- Remove useless NTDLL entrypoint
- Implement NTDLL Ki* callbacks in ASM
- Implement RtlCaptureContext
- Fix RtlRaiseException to handle cases when a user-mode debugger is present
- Fix RtlRaiseStatus as above, plus set the exception address and capture context
- Little cleanup of RTL headers
- Implement RtlpGetStackLimits, RtlpGetExceptionList, RtlpSetExceptionList, RtlpGetExceptionAddress in ASM
- Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the
exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of
Context.
- Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL.
- Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax
and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some
optimizations to increase speed.
- Modify some kernel functions (like KeContextToTrapFrame, KiDispatchException, KiInitializeUserApc, etc.) to
support a PKEXCEPTION_FRAME for future PPC compatibility.
- Reimplement RtlCaptureUnicodeString/FreeUnicodeString as inlined probe macros and optimize them.
- Export ExRaiseStatus/Exception as Rtl*
- Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context
and parameters with SEH.
- Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack.
- Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during
v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the
user-mode callback.
- Implement KiUnexpectedInterrupt and KiCoprocessorError
- Reimplement NtRaiseException in ASM to take advantage of optimizations due to the trap frame being in the
stack when called through System call interface.
- Fix Ntcontinue to respect AlertThread paramter
- Fix some functiosn to return with KiServiceExit2 instead of KiServiceExit when required/needed
- Fix KiDispatchException's logic, fix hacks when calling KeUserExceptionDispatcher, use correct context
flags,...
- Make NTDLL Ki* callbacks have SEH to protect them and return to kernel-mode with notification of any
exceptions (the kernel-mode code to handle this isn't written yet though)
svn path=/trunk/; revision=17811
2005-09-11 22:32:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlSetUnhandledExceptionFilter(
|
|
|
|
IN PVOID TopLevelExceptionFilter
|
|
|
|
);
|
Major refactoring of the exception handling code + misc fixes:
- Fix/add prototypes for RtlCaptureContext, RtlDispatchException and RtlUnwind
- Fix EXCEPTION_REGISTRATION_RECORD structure and PEXCEPTION_ROUTINE
- Add w32api excpt.h (based on mingw) with PSDK compatibility fixes
- Fix seriously broken User-Mode Ldr thunk and APC Callback prototypes
- Fix KiUserExceptionDispatcher
- Remove useless NTDLL entrypoint
- Implement NTDLL Ki* callbacks in ASM
- Implement RtlCaptureContext
- Fix RtlRaiseException to handle cases when a user-mode debugger is present
- Fix RtlRaiseStatus as above, plus set the exception address and capture context
- Little cleanup of RTL headers
- Implement RtlpGetStackLimits, RtlpGetExceptionList, RtlpSetExceptionList, RtlpGetExceptionAddress in ASM
- Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the
exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of
Context.
- Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL.
- Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax
and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some
optimizations to increase speed.
- Modify some kernel functions (like KeContextToTrapFrame, KiDispatchException, KiInitializeUserApc, etc.) to
support a PKEXCEPTION_FRAME for future PPC compatibility.
- Reimplement RtlCaptureUnicodeString/FreeUnicodeString as inlined probe macros and optimize them.
- Export ExRaiseStatus/Exception as Rtl*
- Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context
and parameters with SEH.
- Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack.
- Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during
v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the
user-mode callback.
- Implement KiUnexpectedInterrupt and KiCoprocessorError
- Reimplement NtRaiseException in ASM to take advantage of optimizations due to the trap frame being in the
stack when called through System call interface.
- Fix Ntcontinue to respect AlertThread paramter
- Fix some functiosn to return with KiServiceExit2 instead of KiServiceExit when required/needed
- Fix KiDispatchException's logic, fix hacks when calling KeUserExceptionDispatcher, use correct context
flags,...
- Make NTDLL Ki* callbacks have SEH to protect them and return to kernel-mode with notification of any
exceptions (the kernel-mode code to handle this isn't written yet though)
svn path=/trunk/; revision=17811
2005-09-11 22:32:20 +00:00
|
|
|
|
2006-04-10 19:57:47 +00:00
|
|
|
NTSYSAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
VOID
|
2006-04-10 19:57:47 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlCaptureContext(
|
|
|
|
OUT PCONTEXT ContextRecord
|
|
|
|
);
|
2006-04-10 19:57:47 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlEncodePointer(
|
|
|
|
IN PVOID Pointer
|
|
|
|
);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlDecodePointer(
|
|
|
|
IN PVOID Pointer
|
|
|
|
);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PVOID
|
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlEncodeSystemPointer(
|
|
|
|
IN PVOID Pointer
|
|
|
|
);
|
2006-05-10 17:47:44 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
PVOID
|
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlDecodeSystemPointer(
|
|
|
|
IN PVOID Pointer
|
|
|
|
);
|
2006-05-10 17:47:44 +00:00
|
|
|
|
Major refactoring of the exception handling code + misc fixes:
- Fix/add prototypes for RtlCaptureContext, RtlDispatchException and RtlUnwind
- Fix EXCEPTION_REGISTRATION_RECORD structure and PEXCEPTION_ROUTINE
- Add w32api excpt.h (based on mingw) with PSDK compatibility fixes
- Fix seriously broken User-Mode Ldr thunk and APC Callback prototypes
- Fix KiUserExceptionDispatcher
- Remove useless NTDLL entrypoint
- Implement NTDLL Ki* callbacks in ASM
- Implement RtlCaptureContext
- Fix RtlRaiseException to handle cases when a user-mode debugger is present
- Fix RtlRaiseStatus as above, plus set the exception address and capture context
- Little cleanup of RTL headers
- Implement RtlpGetStackLimits, RtlpGetExceptionList, RtlpSetExceptionList, RtlpGetExceptionAddress in ASM
- Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the
exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of
Context.
- Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL.
- Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax
and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some
optimizations to increase speed.
- Modify some kernel functions (like KeContextToTrapFrame, KiDispatchException, KiInitializeUserApc, etc.) to
support a PKEXCEPTION_FRAME for future PPC compatibility.
- Reimplement RtlCaptureUnicodeString/FreeUnicodeString as inlined probe macros and optimize them.
- Export ExRaiseStatus/Exception as Rtl*
- Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context
and parameters with SEH.
- Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack.
- Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during
v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the
user-mode callback.
- Implement KiUnexpectedInterrupt and KiCoprocessorError
- Reimplement NtRaiseException in ASM to take advantage of optimizations due to the trap frame being in the
stack when called through System call interface.
- Fix Ntcontinue to respect AlertThread paramter
- Fix some functiosn to return with KiServiceExit2 instead of KiServiceExit when required/needed
- Fix KiDispatchException's logic, fix hacks when calling KeUserExceptionDispatcher, use correct context
flags,...
- Make NTDLL Ki* callbacks have SEH to protect them and return to kernel-mode with notification of any
exceptions (the kernel-mode code to handle this isn't written yet though)
svn path=/trunk/; revision=17811
2005-09-11 22:32:20 +00:00
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlDispatchException(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord,
|
|
|
|
IN PCONTEXT Context
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlNtStatusToDosError(
|
|
|
|
IN NTSTATUS Status
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlNtStatusToDosErrorNoTeb(
|
|
|
|
IN NTSTATUS Status
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlSetLastWin32ErrorAndNtStatusFromNtStatus(
|
|
|
|
IN NTSTATUS Status
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlRaiseException(
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord
|
|
|
|
);
|
|
|
|
|
2009-01-17 21:11:38 +00:00
|
|
|
DECLSPEC_NORETURN
|
2006-06-26 14:10:10 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlRaiseStatus(
|
|
|
|
IN NTSTATUS Status
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-09-04 18:00:59 +00:00
|
|
|
LONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlUnhandledExceptionFilter(
|
|
|
|
IN struct _EXCEPTION_POINTERS* ExceptionInfo
|
|
|
|
);
|
2005-09-04 18:00:59 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnwind(
|
Major refactoring of the exception handling code + misc fixes:
- Fix/add prototypes for RtlCaptureContext, RtlDispatchException and RtlUnwind
- Fix EXCEPTION_REGISTRATION_RECORD structure and PEXCEPTION_ROUTINE
- Add w32api excpt.h (based on mingw) with PSDK compatibility fixes
- Fix seriously broken User-Mode Ldr thunk and APC Callback prototypes
- Fix KiUserExceptionDispatcher
- Remove useless NTDLL entrypoint
- Implement NTDLL Ki* callbacks in ASM
- Implement RtlCaptureContext
- Fix RtlRaiseException to handle cases when a user-mode debugger is present
- Fix RtlRaiseStatus as above, plus set the exception address and capture context
- Little cleanup of RTL headers
- Implement RtlpGetStackLimits, RtlpGetExceptionList, RtlpSetExceptionList, RtlpGetExceptionAddress in ASM
- Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the
exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of
Context.
- Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL.
- Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax
and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some
optimizations to increase speed.
- Modify some kernel functions (like KeContextToTrapFrame, KiDispatchException, KiInitializeUserApc, etc.) to
support a PKEXCEPTION_FRAME for future PPC compatibility.
- Reimplement RtlCaptureUnicodeString/FreeUnicodeString as inlined probe macros and optimize them.
- Export ExRaiseStatus/Exception as Rtl*
- Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context
and parameters with SEH.
- Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack.
- Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during
v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the
user-mode callback.
- Implement KiUnexpectedInterrupt and KiCoprocessorError
- Reimplement NtRaiseException in ASM to take advantage of optimizations due to the trap frame being in the
stack when called through System call interface.
- Fix Ntcontinue to respect AlertThread paramter
- Fix some functiosn to return with KiServiceExit2 instead of KiServiceExit when required/needed
- Fix KiDispatchException's logic, fix hacks when calling KeUserExceptionDispatcher, use correct context
flags,...
- Make NTDLL Ki* callbacks have SEH to protect them and return to kernel-mode with notification of any
exceptions (the kernel-mode code to handle this isn't written yet though)
svn path=/trunk/; revision=17811
2005-09-11 22:32:20 +00:00
|
|
|
IN PVOID TargetFrame OPTIONAL,
|
|
|
|
IN PVOID TargetIp OPTIONAL,
|
|
|
|
IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
|
|
|
|
IN PVOID ReturnValue
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
//
|
|
|
|
// Tracing Functions
|
|
|
|
//
|
2007-10-01 17:58:49 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlWalkFrameChain(
|
|
|
|
OUT PVOID *Callers,
|
|
|
|
IN ULONG Count,
|
|
|
|
IN ULONG Flags
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
USHORT
|
|
|
|
NTAPI
|
2006-06-26 14:10:10 +00:00
|
|
|
RtlLogStackBackTrace(
|
|
|
|
VOID
|
|
|
|
);
|
2006-05-10 17:47:44 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Heap Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAllocateHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN ULONG Flags,
|
2009-02-06 23:45:18 +00:00
|
|
|
IN SIZE_T Size
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateHeap(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress OPTIONAL,
|
2005-08-01 10:19:22 +00:00
|
|
|
IN SIZE_T SizeToReserve OPTIONAL,
|
|
|
|
IN SIZE_T SizeToCommit OPTIONAL,
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PVOID Lock OPTIONAL,
|
2005-08-01 10:19:22 +00:00
|
|
|
IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlCreateTagHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PWSTR TagName,
|
|
|
|
IN PWSTR TagSubName
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
ULONG
|
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlCompactHeap(
|
2006-06-24 19:49:28 +00:00
|
|
|
HANDLE Heap,
|
|
|
|
ULONG Flags
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2006-06-23 21:21:45 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PVOID
|
|
|
|
NTAPI
|
|
|
|
RtlDebugCreateHeap(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress OPTIONAL,
|
|
|
|
IN SIZE_T SizeToReserve OPTIONAL,
|
|
|
|
IN SIZE_T SizeToCommit OPTIONAL,
|
|
|
|
IN PVOID Lock OPTIONAL,
|
|
|
|
IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
HANDLE
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-24 19:49:28 +00:00
|
|
|
RtlDestroyHeap(
|
|
|
|
IN HANDLE Heap
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlExtendHeap(
|
|
|
|
IN HANDLE Heap,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID P,
|
2009-02-06 23:45:18 +00:00
|
|
|
IN SIZE_T Size
|
2006-06-24 19:49:28 +00:00
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID P
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2006-06-23 21:21:45 +00:00
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlGetNtGlobalFlags(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlGetProcessHeaps(
|
|
|
|
ULONG HeapCount,
|
|
|
|
HANDLE *HeapArray
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2006-06-23 23:10:58 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlGetUserInfoHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
OUT PVOID *UserValue,
|
|
|
|
OUT PULONG UserFlags
|
|
|
|
);
|
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PVOID
|
|
|
|
NTAPI
|
|
|
|
RtlProtectHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN BOOLEAN Protect
|
|
|
|
);
|
|
|
|
|
2006-06-24 19:49:28 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PWSTR
|
|
|
|
NTAPI
|
|
|
|
RtlQueryTagHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN USHORT TagIndex,
|
|
|
|
IN BOOLEAN ResetCounters,
|
|
|
|
OUT PRTL_HEAP_TAG_INFO HeapTagInfo
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlReAllocateHeap(
|
|
|
|
HANDLE Heap,
|
|
|
|
ULONG Flags,
|
|
|
|
PVOID Ptr,
|
2007-07-28 21:30:16 +00:00
|
|
|
SIZE_T Size
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-24 19:49:28 +00:00
|
|
|
RtlLockHeap(
|
|
|
|
IN HANDLE Heap
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlUsageHeap(
|
|
|
|
IN HANDLE Heap,
|
|
|
|
IN ULONG Flags,
|
|
|
|
OUT PRTL_HEAP_USAGE Usage
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-24 19:49:28 +00:00
|
|
|
RtlUnlockHeap(
|
|
|
|
IN HANDLE Heap
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2006-06-23 23:10:58 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlSetUserValueHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
IN PVOID UserValue
|
|
|
|
);
|
|
|
|
|
2008-07-10 09:46:25 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlSetUserFlagsHeap(
|
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
IN ULONG UserFlags
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2009-02-06 23:45:18 +00:00
|
|
|
SIZE_T
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSizeHeap(
|
2005-06-26 01:08:55 +00:00
|
|
|
IN PVOID HeapHandle,
|
|
|
|
IN ULONG Flags,
|
2005-06-20 05:36:32 +00:00
|
|
|
IN PVOID MemoryPointer
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlValidateHeap(
|
|
|
|
HANDLE Heap,
|
|
|
|
ULONG Flags,
|
2006-06-24 19:49:28 +00:00
|
|
|
PVOID P
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlWalkHeap(
|
|
|
|
IN HANDLE HeapHandle,
|
|
|
|
IN PVOID HeapEntry
|
|
|
|
);
|
2008-11-28 14:33:21 +00:00
|
|
|
|
2005-06-20 05:36:32 +00:00
|
|
|
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Security Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAbsoluteToSelfRelativeSD(
|
2005-06-18 23:33:40 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
|
2005-09-05 18:06:20 +00:00
|
|
|
IN OUT PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
|
2005-06-18 23:33:40 +00:00
|
|
|
IN PULONG BufferLength
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAddAccessAllowedAceEx(
|
|
|
|
IN OUT PACL pAcl,
|
2005-09-05 18:06:20 +00:00
|
|
|
IN ULONG dwAceRevision,
|
|
|
|
IN ULONG AceFlags,
|
2007-07-28 19:20:30 +00:00
|
|
|
IN ACCESS_MASK AccessMask,
|
2005-06-20 18:54:47 +00:00
|
|
|
IN PSID pSid
|
|
|
|
);
|
|
|
|
|
2006-05-10 09:32:23 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAddAccessAllowedObjectAce(
|
|
|
|
IN OUT PACL pAcl,
|
|
|
|
IN ULONG dwAceRevision,
|
|
|
|
IN ULONG AceFlags,
|
2007-07-28 19:20:30 +00:00
|
|
|
IN ACCESS_MASK AccessMask,
|
2006-05-10 09:32:23 +00:00
|
|
|
IN GUID *ObjectTypeGuid OPTIONAL,
|
|
|
|
IN GUID *InheritedObjectTypeGuid OPTIONAL,
|
|
|
|
IN PSID pSid
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAddAccessDeniedAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG Revision,
|
|
|
|
ACCESS_MASK AccessMask,
|
|
|
|
PSID Sid
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAddAccessDeniedAceEx(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ACCESS_MASK AccessMask,
|
|
|
|
IN PSID Sid
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 09:32:23 +00:00
|
|
|
RtlAddAccessDeniedObjectAce(
|
|
|
|
IN OUT PACL pAcl,
|
|
|
|
IN ULONG dwAceRevision,
|
|
|
|
IN ULONG AceFlags,
|
2007-07-28 19:20:30 +00:00
|
|
|
IN ACCESS_MASK AccessMask,
|
2006-05-10 09:32:23 +00:00
|
|
|
IN GUID *ObjectTypeGuid OPTIONAL,
|
|
|
|
IN GUID *InheritedObjectTypeGuid OPTIONAL,
|
|
|
|
IN PSID pSid
|
2005-06-20 18:54:47 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAddAce(
|
|
|
|
PACL Acl,
|
2005-09-05 18:06:20 +00:00
|
|
|
ULONG AceRevision,
|
|
|
|
ULONG StartingAceIndex,
|
|
|
|
PVOID AceList,
|
2005-06-20 18:54:47 +00:00
|
|
|
ULONG AceListLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAddAuditAccessAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG Revision,
|
|
|
|
ACCESS_MASK AccessMask,
|
|
|
|
PSID Sid,
|
|
|
|
BOOLEAN Success,
|
|
|
|
BOOLEAN Failure
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAcquirePrivilege(
|
|
|
|
IN PULONG Privilege,
|
|
|
|
IN ULONG NumPriv,
|
|
|
|
IN ULONG Flags,
|
|
|
|
OUT PVOID *ReturnedState
|
|
|
|
);
|
|
|
|
|
2006-05-10 09:32:23 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAddAuditAccessAceEx(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ACCESS_MASK AccessMask,
|
|
|
|
IN PSID Sid,
|
|
|
|
IN BOOLEAN Success,
|
|
|
|
IN BOOLEAN Failure
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAddAuditAccessObjectAce(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ACCESS_MASK AccessMask,
|
|
|
|
IN GUID *ObjectTypeGuid OPTIONAL,
|
|
|
|
IN GUID *InheritedObjectTypeGuid OPTIONAL,
|
|
|
|
IN PSID Sid,
|
|
|
|
IN BOOLEAN Success,
|
|
|
|
IN BOOLEAN Failure
|
|
|
|
);
|
|
|
|
|
2006-10-15 16:52:25 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAddMandatoryAce(
|
|
|
|
IN OUT PACL Acl,
|
|
|
|
IN ULONG Revision,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN ULONG MandatoryFlags,
|
|
|
|
IN ULONG AceType,
|
|
|
|
IN PSID LabelSid);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-09-04 18:00:59 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-09-04 18:00:59 +00:00
|
|
|
RtlAdjustPrivilege(
|
|
|
|
IN ULONG Privilege,
|
|
|
|
IN BOOLEAN NewValue,
|
|
|
|
IN BOOLEAN ForThread,
|
|
|
|
OUT PBOOLEAN OldValue
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAreAllAccessesGranted(
|
|
|
|
ACCESS_MASK GrantedAccess,
|
|
|
|
ACCESS_MASK DesiredAccess
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlAreAnyAccessesGranted(
|
|
|
|
ACCESS_MASK GrantedAccess,
|
|
|
|
ACCESS_MASK DesiredAccess
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
RtlCopyLuid(
|
|
|
|
IN PLUID LuidDest,
|
|
|
|
IN PLUID LuidSrc
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
RtlCopyLuidAndAttributesArray(
|
|
|
|
ULONG Count,
|
|
|
|
PLUID_AND_ATTRIBUTES Src,
|
|
|
|
PLUID_AND_ATTRIBUTES Dest
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
RtlCopySidAndAttributesArray(
|
|
|
|
ULONG Count,
|
|
|
|
PSID_AND_ATTRIBUTES Src,
|
|
|
|
ULONG SidAreaSize,
|
|
|
|
PSID_AND_ATTRIBUTES Dest,
|
|
|
|
PVOID SidArea,
|
|
|
|
PVOID* RemainingSidArea,
|
|
|
|
PULONG RemainingSidAreaSize
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
RtlCreateAcl(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AclSize,
|
|
|
|
ULONG AclRevision
|
|
|
|
);
|
2005-06-19 19:36:05 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
RtlCreateSecurityDescriptor(
|
2005-12-21 19:07:47 +00:00
|
|
|
OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN ULONG Revision
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
RtlCreateSecurityDescriptorRelative(
|
2005-12-21 19:07:47 +00:00
|
|
|
OUT PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor,
|
|
|
|
IN ULONG Revision
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2007-10-23 21:42:03 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlCopySecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR pSourceSecurityDescriptor,
|
|
|
|
OUT PSECURITY_DESCRIPTOR pDestinationSecurityDescriptor
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlDeleteAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AceIndex
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlEqualPrefixSid(
|
|
|
|
PSID Sid1,
|
|
|
|
PSID Sid2
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlEqualSid (
|
|
|
|
IN PSID Sid1,
|
|
|
|
IN PSID Sid2
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlFirstFreeAce(
|
|
|
|
PACL Acl,
|
|
|
|
PACE* Ace
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeSid (
|
|
|
|
IN PSID Sid
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlGetAce(
|
|
|
|
PACL Acl,
|
|
|
|
ULONG AceIndex,
|
2005-09-05 18:06:20 +00:00
|
|
|
PVOID *Ace
|
2005-06-20 18:54:47 +00:00
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlGetControlSecurityDescriptor(
|
2005-12-21 19:07:47 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PSECURITY_DESCRIPTOR_CONTROL Control,
|
|
|
|
OUT PULONG Revision
|
2005-06-20 18:54:47 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetSaclSecurityDescriptor(
|
2005-12-21 19:07:47 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PBOOLEAN SaclPresent,
|
|
|
|
OUT PACL* Sacl,
|
|
|
|
OUT PBOOLEAN SaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlGetSecurityDescriptorRMControl(
|
2005-12-21 19:07:47 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
OUT PUCHAR RMControl
|
2005-06-20 18:54:47 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
PSID_IDENTIFIER_AUTHORITY
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlIdentifierAuthoritySid(PSID Sid);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
|
|
|
RtlLengthRequiredSid(IN ULONG SubAuthorityCount);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlLengthSid(IN PSID Sid);
|
|
|
|
|
2005-12-20 23:16:09 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlMakeSelfRelativeSD(
|
|
|
|
IN PSECURITY_DESCRIPTOR AbsoluteSD,
|
|
|
|
OUT PSECURITY_DESCRIPTOR SelfRelativeSD,
|
|
|
|
IN OUT PULONG BufferLength);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlMapGenericMask(
|
|
|
|
PACCESS_MASK AccessMask,
|
|
|
|
PGENERIC_MAPPING GenericMapping
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2008-12-01 15:12:23 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlQueryInformationAcl(
|
|
|
|
PACL Acl,
|
|
|
|
PVOID Information,
|
|
|
|
ULONG InformationLength,
|
|
|
|
ACL_INFORMATION_CLASS InformationClass
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2008-12-01 15:12:23 +00:00
|
|
|
#endif
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlReleasePrivilege(
|
|
|
|
IN PVOID ReturnedState
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSelfRelativeToAbsoluteSD(
|
2005-09-05 18:06:20 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR 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-10-23 18:23:57 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlSelfRelativeToAbsoluteSD2(
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR SelfRelativeSD,
|
|
|
|
OUT PULONG BufferSize
|
|
|
|
);
|
|
|
|
|
2005-12-21 19:07:47 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlSetAttributesSecurityDescriptor(
|
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN SECURITY_DESCRIPTOR_CONTROL Control,
|
|
|
|
OUT PULONG Revision
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlSetControlSecurityDescriptor(
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
|
|
|
|
IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
|
|
|
|
);
|
2005-06-20 05:36:32 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSetDaclSecurityDescriptor (
|
2005-12-21 19:07:47 +00:00
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN BOOLEAN DaclPresent,
|
|
|
|
IN PACL Dacl,
|
|
|
|
IN BOOLEAN DaclDefaulted
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2008-12-01 15:12:23 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlSetInformationAcl(
|
|
|
|
PACL Acl,
|
|
|
|
PVOID Information,
|
|
|
|
ULONG InformationLength,
|
|
|
|
ACL_INFORMATION_CLASS InformationClass
|
|
|
|
);
|
|
|
|
|
2008-12-01 15:12:23 +00:00
|
|
|
#endif
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlSetSecurityDescriptorRMControl(
|
2005-12-21 19:07:47 +00:00
|
|
|
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN PUCHAR RMControl
|
2005-06-20 18:54:47 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PUCHAR
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSubAuthorityCountSid(
|
|
|
|
IN PSID Sid
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlSubAuthoritySid(
|
|
|
|
IN PSID Sid,
|
|
|
|
IN ULONG SubAuthority
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlValidRelativeSecurityDescriptor(
|
2005-09-05 18:06:20 +00:00
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
|
2005-06-20 18:54:47 +00:00
|
|
|
IN ULONG SecurityDescriptorLength,
|
|
|
|
IN SECURITY_INFORMATION RequiredInformation
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 18:54:47 +00:00
|
|
|
RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlValidSid(IN PSID Sid);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlValidAcl(PACL Acl);
|
2005-06-20 04:07:34 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlDeleteSecurityObject(
|
|
|
|
IN PSECURITY_DESCRIPTOR *ObjectDescriptor
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlNewSecurityObject(
|
|
|
|
IN PSECURITY_DESCRIPTOR ParentDescriptor,
|
|
|
|
IN PSECURITY_DESCRIPTOR CreatorDescriptor,
|
|
|
|
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
|
|
|
|
IN BOOLEAN IsDirectoryObject,
|
|
|
|
IN HANDLE Token,
|
|
|
|
IN PGENERIC_MAPPING GenericMapping
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlQuerySecurityObject(
|
|
|
|
IN PSECURITY_DESCRIPTOR ObjectDescriptor,
|
|
|
|
IN SECURITY_INFORMATION SecurityInformation,
|
|
|
|
OUT PSECURITY_DESCRIPTOR ResultantDescriptor,
|
|
|
|
IN ULONG DescriptorLength,
|
|
|
|
OUT PULONG ReturnLength
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlSetSecurityObject(
|
|
|
|
IN SECURITY_INFORMATION SecurityInformation,
|
|
|
|
IN PSECURITY_DESCRIPTOR ModificationDescriptor,
|
|
|
|
OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
|
|
|
|
IN PGENERIC_MAPPING GenericMapping,
|
|
|
|
IN HANDLE Token
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Single-Character Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlLargeIntegerToChar(
|
|
|
|
IN PLARGE_INTEGER Value,
|
|
|
|
IN ULONG Base,
|
|
|
|
IN ULONG Length,
|
|
|
|
IN OUT PCHAR String
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
CHAR
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpperChar(CHAR Source);
|
2005-06-20 04:07:34 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
WCHAR
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeChar(WCHAR Source);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
WCHAR
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDowncaseUnicodeChar(IN WCHAR Source);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlIntegerToChar(
|
|
|
|
IN ULONG Value,
|
|
|
|
IN ULONG Base,
|
|
|
|
IN ULONG Length,
|
|
|
|
IN OUT PCHAR String
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlIntegerToUnicode(
|
|
|
|
IN ULONG Value,
|
|
|
|
IN ULONG Base OPTIONAL,
|
|
|
|
IN ULONG Length OPTIONAL,
|
|
|
|
IN OUT LPWSTR String
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCharToInteger(
|
|
|
|
PCSZ String,
|
|
|
|
ULONG Base,
|
|
|
|
PULONG Value
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Byte Swap Functions
|
|
|
|
//
|
2009-02-06 13:04:18 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
|
|
|
|
((defined(_M_AMD64) || \
|
|
|
|
defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
unsigned short __cdecl _byteswap_ushort(unsigned short);
|
|
|
|
unsigned long __cdecl _byteswap_ulong (unsigned long);
|
|
|
|
unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
|
|
|
|
#pragma intrinsic(_byteswap_ushort)
|
|
|
|
#pragma intrinsic(_byteswap_ulong)
|
|
|
|
#pragma intrinsic(_byteswap_uint64)
|
|
|
|
#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
|
|
|
|
#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
|
|
|
|
#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2009-02-06 13:04:18 +00:00
|
|
|
#elif defined (__GNUC__)
|
|
|
|
|
|
|
|
#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
|
|
|
|
#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
|
|
|
|
#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
#else
|
|
|
|
|
2009-02-06 13:04:18 +00:00
|
|
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
USHORT
|
2005-06-20 05:36:32 +00:00
|
|
|
FASTCALL
|
|
|
|
RtlUshortByteSwap(IN USHORT Source);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
2005-09-05 18:06:20 +00:00
|
|
|
ULONG
|
|
|
|
FASTCALL
|
|
|
|
RtlUlongByteSwap(IN ULONG Source);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
2005-09-05 18:06:20 +00:00
|
|
|
ULONGLONG
|
|
|
|
FASTCALL
|
|
|
|
RtlUlonglongByteSwap(IN ULONGLONG Source);
|
2009-02-06 13:04:18 +00:00
|
|
|
#endif
|
2005-09-05 18:06:20 +00:00
|
|
|
|
|
|
|
#endif
|
2009-02-06 13:04:18 +00:00
|
|
|
#endif // NTOS_MODE_USER
|
2005-09-05 18:06:20 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Unicode->Ansi String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-09-06 17:33:56 +00:00
|
|
|
RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString);
|
|
|
|
|
|
|
|
#ifdef NTOS_MODE_USER
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-06 17:33:56 +00:00
|
|
|
#define RtlUnicodeStringToAnsiSize(STRING) ( \
|
|
|
|
NLS_MB_CODE_PAGE_TAG ? \
|
|
|
|
RtlxUnicodeStringToAnsiSize(STRING) : \
|
|
|
|
((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
|
|
|
|
)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-06 17:33:56 +00:00
|
|
|
#endif
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToAnsiString(
|
|
|
|
PANSI_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Unicode->OEM String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeStringToOemString(
|
|
|
|
POEM_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeStringToCountedOemString(
|
|
|
|
IN OUT POEM_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
IN PCUNICODE_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
IN BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToOemString(
|
|
|
|
POEM_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 19:36:05 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeToOemN(
|
|
|
|
PCHAR OemString,
|
|
|
|
ULONG OemSize,
|
|
|
|
PULONG ResultSize,
|
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
2010-03-10 04:16:52 +00:00
|
|
|
PCWCH UnicodeString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-09-06 17:33:56 +00:00
|
|
|
RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString);
|
|
|
|
|
|
|
|
#ifdef NTOS_MODE_USER
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
#define RtlUnicodeStringToOemSize(STRING) ( \
|
|
|
|
NLS_MB_OEM_CODE_PAGE_TAG ? \
|
|
|
|
RtlxUnicodeStringToOemSize(STRING) : \
|
|
|
|
((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
|
2005-09-06 17:33:56 +00:00
|
|
|
)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
#define RtlUnicodeStringToCountedOemSize(STRING) ( \
|
|
|
|
(ULONG)(RtlUnicodeStringToOemSize(STRING) - sizeof(ANSI_NULL)) \
|
2005-09-06 17:33:56 +00:00
|
|
|
)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-06 17:33:56 +00:00
|
|
|
#endif
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToOemN(
|
|
|
|
PCHAR OemString,
|
|
|
|
ULONG OemSize,
|
|
|
|
PULONG ResultSize,
|
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
2010-03-10 04:16:52 +00:00
|
|
|
PCWCH UnicodeString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Unicode->MultiByte String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToMultiByteN(
|
|
|
|
PCHAR MbString,
|
|
|
|
ULONG MbSize,
|
|
|
|
PULONG ResultSize,
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUpcaseUnicodeToMultiByteN(
|
|
|
|
PCHAR MbString,
|
|
|
|
ULONG MbSize,
|
|
|
|
PULONG ResultSize,
|
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
2010-03-10 04:16:52 +00:00
|
|
|
PCWCH UnicodeString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeToMultiByteSize(
|
|
|
|
PULONG MbSize,
|
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
2010-03-10 04:16:52 +00:00
|
|
|
PCWCH UnicodeString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG UnicodeSize
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-09-06 17:33:56 +00:00
|
|
|
RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// OEM to Unicode Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOemStringToUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
2006-03-17 10:51:45 +00:00
|
|
|
PCOEM_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 20:01:07 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOemToUnicodeN(
|
|
|
|
PWSTR UnicodeString,
|
|
|
|
ULONG MaxBytesInUnicodeString,
|
|
|
|
PULONG BytesInUnicodeString,
|
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
2010-03-10 04:16:52 +00:00
|
|
|
IN PCCH OemString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG BytesInOemString
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
|
|
|
|
|
|
|
#define RtlOemStringToUnicodeSize(STRING) ( \
|
|
|
|
NLS_MB_OEM_CODE_PAGE_TAG ? \
|
|
|
|
RtlxOemStringToUnicodeSize(STRING) : \
|
|
|
|
((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
|
|
|
|
)
|
|
|
|
|
|
|
|
#define RtlOemStringToCountedUnicodeSize(STRING) ( \
|
|
|
|
(ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
|
|
|
|
)
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//
|
|
|
|
// Ansi->Unicode String Functions
|
|
|
|
//
|
2005-09-23 07:19:47 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlxAnsiStringToUnicodeSize(
|
|
|
|
PCANSI_STRING AnsiString
|
|
|
|
);
|
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 19:36:05 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAnsiStringToUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCANSI_STRING SourceString,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-06 17:33:56 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
#define RtlAnsiStringToUnicodeSize(STRING) ( \
|
|
|
|
NLS_MB_CODE_PAGE_TAG ? \
|
|
|
|
RtlxAnsiStringToUnicodeSize(STRING) : \
|
|
|
|
((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
|
2005-09-06 17:33:56 +00:00
|
|
|
)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-06 17:33:56 +00:00
|
|
|
#endif
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Unicode String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAppendUnicodeToString(
|
|
|
|
PUNICODE_STRING Destination,
|
|
|
|
PCWSTR Source
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAppendUnicodeStringToString(
|
|
|
|
PUNICODE_STRING Destination,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING Source
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
LONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCompareUnicodeString(
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING String1,
|
|
|
|
PCUNICODE_STRING String2,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN CaseInsensitive
|
2005-06-19 23:59:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCopyUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING SourceString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PCWSTR SourceString
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
#ifdef NTOS_MODE_USER
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-22 22:25:25 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-22 22:25:25 +00:00
|
|
|
RtlDowncaseUnicodeString(
|
|
|
|
IN OUT PUNICODE_STRING UniDest,
|
2005-09-05 18:06:20 +00:00
|
|
|
IN PCUNICODE_STRING UniSource,
|
2005-07-20 02:52:52 +00:00
|
|
|
IN BOOLEAN AllocateDestinationString
|
|
|
|
);
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-22 22:25:25 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-22 22:25:25 +00:00
|
|
|
RtlDuplicateUnicodeString(
|
2005-09-05 18:06:20 +00:00
|
|
|
IN ULONG Flags,
|
|
|
|
IN PCUNICODE_STRING SourceString,
|
2005-07-22 22:25:25 +00:00
|
|
|
OUT PUNICODE_STRING DestinationString
|
|
|
|
);
|
|
|
|
|
2008-06-02 10:21:49 +00:00
|
|
|
#endif
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlFindCharInUnicodeString(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PUNICODE_STRING SearchString,
|
|
|
|
IN PCUNICODE_STRING MatchString,
|
|
|
|
OUT PUSHORT Position
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-20 02:52:52 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-20 02:52:52 +00:00
|
|
|
RtlHashUnicodeString(
|
|
|
|
IN CONST UNICODE_STRING *String,
|
|
|
|
IN BOOLEAN CaseInSensitive,
|
|
|
|
IN ULONG HashAlgorithm,
|
|
|
|
OUT PULONG HashValue
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitUnicodeString(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN OUT PUNICODE_STRING DestinationString,
|
|
|
|
IN PCWSTR SourceString
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlInitUnicodeStringEx(
|
|
|
|
OUT PUNICODE_STRING DestinationString,
|
|
|
|
IN PCWSTR SourceString OPTIONAL
|
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2008-06-06 21:33:43 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlIsTextUnicode(
|
2008-12-01 15:12:23 +00:00
|
|
|
PVOID Buffer,
|
2008-06-06 21:33:43 +00:00
|
|
|
INT Length,
|
|
|
|
INT *Flags
|
2005-06-26 16:35:51 +00:00
|
|
|
);
|
|
|
|
|
2005-11-08 20:53:53 +00:00
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlPrefixString(
|
|
|
|
PCANSI_STRING String1,
|
|
|
|
PCANSI_STRING String2,
|
|
|
|
BOOLEAN CaseInsensitive
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlPrefixUnicodeString(
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING String1,
|
|
|
|
PCUNICODE_STRING String2,
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN CaseInsensitive
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-20 02:52:52 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-20 02:52:52 +00:00
|
|
|
RtlUpcaseUnicodeString(
|
|
|
|
PUNICODE_STRING DestinationString,
|
|
|
|
PCUNICODE_STRING SourceString,
|
|
|
|
BOOLEAN AllocateDestinationString
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlUnicodeStringToInteger(
|
2005-09-05 18:06:20 +00:00
|
|
|
PCUNICODE_STRING String,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG Base,
|
|
|
|
PULONG Value
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlValidateUnicodeString(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PCUNICODE_STRING String
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Ansi String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeAnsiString(IN PANSI_STRING AnsiString);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitAnsiString(
|
|
|
|
PANSI_STRING DestinationString,
|
|
|
|
PCSZ SourceString
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2008-06-02 10:21:49 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlInitAnsiStringEx(
|
|
|
|
PANSI_STRING DestinationString,
|
|
|
|
PCSZ SourceString
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// OEM String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFreeOemString(IN POEM_STRING OemString);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// MultiByte->Unicode String Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 03:55:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlMultiByteToUnicodeN(
|
|
|
|
PWCHAR UnicodeString,
|
|
|
|
ULONG UnicodeSize,
|
|
|
|
PULONG ResultSize,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCSTR MbString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG MbSize
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlMultiByteToUnicodeSize(
|
|
|
|
PULONG UnicodeSize,
|
2005-09-05 18:06:20 +00:00
|
|
|
PCSTR MbString,
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG MbSize
|
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Atom Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-12 05:51:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlPinAtomInAtomTable(
|
|
|
|
IN PRTL_ATOM_TABLE AtomTable,
|
|
|
|
IN RTL_ATOM Atom
|
2005-12-20 23:16:09 +00:00
|
|
|
);
|
2005-11-12 05:51:44 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Memory Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Process Management Functions
|
|
|
|
//
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
PPEB
|
|
|
|
NTAPI
|
|
|
|
RtlGetCurrentPeb(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlAcquirePebLock(VOID);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlCreateProcessParameters (
|
|
|
|
OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
|
|
|
|
IN PUNICODE_STRING ImagePathName OPTIONAL,
|
|
|
|
IN PUNICODE_STRING DllPath OPTIONAL,
|
|
|
|
IN PUNICODE_STRING CurrentDirectory OPTIONAL,
|
|
|
|
IN PUNICODE_STRING CommandLine OPTIONAL,
|
|
|
|
IN PWSTR Environment OPTIONAL,
|
|
|
|
IN PUNICODE_STRING WindowTitle OPTIONAL,
|
|
|
|
IN PUNICODE_STRING DesktopInfo OPTIONAL,
|
|
|
|
IN PUNICODE_STRING ShellInfo OPTIONAL,
|
|
|
|
IN PUNICODE_STRING RuntimeInfo OPTIONAL
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlCreateUserProcess(
|
|
|
|
IN PUNICODE_STRING ImageFileName,
|
|
|
|
IN ULONG Attributes,
|
|
|
|
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters,
|
|
|
|
IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL,
|
|
|
|
IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL,
|
|
|
|
IN HANDLE ParentProcess OPTIONAL,
|
|
|
|
IN BOOLEAN CurrentDirectory,
|
|
|
|
IN HANDLE DebugPort OPTIONAL,
|
|
|
|
IN HANDLE ExceptionPort OPTIONAL,
|
2005-07-12 01:56:14 +00:00
|
|
|
OUT PRTL_USER_PROCESS_INFORMATION ProcessInfo
|
2005-06-20 21:16:59 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlCreateUserThread(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
IN BOOLEAN CreateSuspended,
|
- Fix critical bugs in exception handling: Unwinding was completely broken, using the wrong SEH protector to detect collided unwinding. The correct protector itself also had a broken check.
- Fix architectural bug in the entire TrapFrame<->Context conversion system and Ring Privilege Transitions (Inter-ring and intra-ring) which was lacking proper sanitation and validation of segments, flags and debug registers. Among other things, IOPL is now respected, CS is not KGDT_R0_CODE | RPL_MASK anymore, and the GPF code is now properly being called. This completely fixes exception handling being totally broken and crashing firefox installer, mirc, and other applications.
- Rewrite the page fault handler base code in assembly instead of relying on a broken C routine. Detect VDM, V8086, detecting expected/normal fault in ExpInterlockedPopEntrySList and faults in the system handler code. Rewrite MmAccessFault to be the main function that calls out to other sub-fault functions, and use the same prototype as NT.
- Fix the KGDT boot table to have proper granularity and big flags, and extend it to 256 entries.
- Create proper thread context in RtlInitializeContext and cleanup Rtl Thread routines.
- Remove all int3 and breakpoints from trap handlers, and replace them with a much better "UNHANDLED_PATH" macro which freezes the system, beeps, and displays a message with the line of code that's unhandled. This is to clearly tell the user that something is unhandled, instead of nesting infinite exceptions due to the int3.
- Fix a bug in INT_PROLOG.
- Sanitize EFLAGS and Code Segments in KeContextToTrapFrame and KeTrapFrameToContext.
- Implement KiUpdateDr7 and KiRecordDr7 as well as DR_MASK and other DR-validation macros and functions to protect against DR-vulnerabilites as well as to properly account for each active hardware breakpoint in a per-thread fashion by using the dispatcher header.
- Allow CR0_EM when running in a VDM.
- Fix FPU/NPX Register handling in KeContextToTrapFrame and KeTrapFrameToContext, and also speed it up by manual copying instead of a memory move.
- Properly give IOPL 3 to user-mode threads if they requested it.
- Detect GPF during GPF.
- Detect pagefault with a trap-frame spread over two or more pages and nested.
- Properly sanitize and set correct trap frame in KiInitailizeUserApc.
- Return STATUS_ACCESS_VIOLATION during page faults instead of STATUS_UNSUCESSFUL.
- Fix assert in VdmSwapContext, as well as Code Selector check which was broken.
- Fix delayed object deletion (ObDeferDeleteObject) and the Ob Repear Routine and list.
- Update Kernel Fun.
- BUGBUG: Temporaily hack VMWare to detection to always detect VMWare.
svn path=/trunk/; revision=25238
2006-12-29 18:49:00 +00:00
|
|
|
IN ULONG StackZeroBits,
|
|
|
|
IN SIZE_T StackReserve,
|
|
|
|
IN SIZE_T StackCommit,
|
2005-06-20 05:36:32 +00:00
|
|
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PRTL_USER_PROCESS_PARAMETERS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlDeNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-12 01:56:14 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-02 13:42:43 +00:00
|
|
|
RtlExitUserThread(NTSTATUS Status);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-07-12 01:56:14 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-07-02 13:42:43 +00:00
|
|
|
RtlInitializeContext(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
OUT PCONTEXT ThreadContext,
|
|
|
|
IN PVOID ThreadStartParam OPTIONAL,
|
|
|
|
IN PTHREAD_START_ROUTINE ThreadStartAddress,
|
|
|
|
IN PINITIAL_TEB InitialTeb
|
|
|
|
);
|
|
|
|
|
2009-09-11 07:12:30 +00:00
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlIsThreadWithinLoaderCallout(VOID);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
PRTL_USER_PROCESS_PARAMETERS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 19:50:52 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlReleasePebLock(VOID);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlRemoteCall(
|
|
|
|
IN HANDLE Process,
|
|
|
|
IN HANDLE Thread,
|
|
|
|
IN PVOID CallSite,
|
|
|
|
IN ULONG ArgumentCount,
|
|
|
|
IN PULONG Arguments,
|
|
|
|
IN BOOLEAN PassContext,
|
|
|
|
IN BOOLEAN AlreadySuspended
|
|
|
|
);
|
|
|
|
|
2005-10-02 08:22:49 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlSetProcessIsCritical(
|
|
|
|
IN BOOLEAN NewValue,
|
|
|
|
OUT PBOOLEAN OldValue OPTIONAL,
|
|
|
|
IN BOOLEAN IsWinlogon
|
|
|
|
);
|
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlGetCurrentProcessorNumber(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2005-11-28 21:40:21 +00:00
|
|
|
#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
2006-07-03 20:23:48 +00:00
|
|
|
//
|
|
|
|
// Thread Pool Functions
|
|
|
|
//
|
2008-04-01 01:07:09 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlDeregisterWaitEx(
|
|
|
|
IN HANDLE hWaitHandle,
|
|
|
|
IN HANDLE hCompletionEvent
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlDeregisterWait(
|
|
|
|
IN HANDLE hWaitHandle
|
|
|
|
);
|
|
|
|
|
2006-07-03 20:23:48 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlQueueWorkItem(
|
|
|
|
IN WORKERCALLBACKFUNC Function,
|
2006-08-05 16:27:20 +00:00
|
|
|
IN PVOID Context OPTIONAL,
|
|
|
|
IN ULONG Flags
|
|
|
|
);
|
2006-07-03 20:23:48 +00:00
|
|
|
|
2008-11-17 11:44:31 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlSetIoCompletionCallback(
|
|
|
|
IN HANDLE FileHandle,
|
2008-11-17 13:16:07 +00:00
|
|
|
IN PIO_APC_ROUTINE Callback,
|
2008-11-17 11:44:31 +00:00
|
|
|
IN ULONG Flags
|
|
|
|
);
|
|
|
|
|
2008-04-01 01:07:09 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlRegisterWait(
|
|
|
|
IN PHANDLE phNewWaitObject,
|
|
|
|
IN HANDLE hObject,
|
|
|
|
IN WAITORTIMERCALLBACKFUNC Callback,
|
|
|
|
IN PVOID pvContext,
|
|
|
|
IN ULONG ulMilliseconds,
|
|
|
|
IN ULONG ulFlags
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Environment/Path Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlCreateEnvironment(
|
|
|
|
BOOLEAN Inherit,
|
|
|
|
PWSTR *Environment
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlComputePrivatizedDllName_U(
|
|
|
|
IN PUNICODE_STRING DllName,
|
|
|
|
OUT PUNICODE_STRING RealName,
|
|
|
|
OUT PUNICODE_STRING LocalName
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlDestroyEnvironment(
|
|
|
|
IN PWSTR Environment
|
|
|
|
);
|
2005-06-26 16:35:51 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlDoesFileExists_U(
|
|
|
|
IN PCWSTR FileName
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlDoesFileExists_UstrEx(
|
|
|
|
IN PCUNICODE_STRING FileName,
|
|
|
|
IN BOOLEAN SucceedIfBusy
|
|
|
|
);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlDetermineDosPathNameType_U(
|
|
|
|
IN PCWSTR Path
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlDetermineDosPathNameType_Ustr(
|
|
|
|
IN PCUNICODE_STRING Path
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlDosSearchPath_U(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PCWSTR Path,
|
|
|
|
IN PCWSTR FileName,
|
|
|
|
IN PCWSTR Extension,
|
|
|
|
IN ULONG BufferSize,
|
|
|
|
OUT PWSTR Buffer,
|
|
|
|
OUT PWSTR *PartName
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlDosPathNameToNtPathName_U(
|
2005-12-17 15:45:59 +00:00
|
|
|
IN PCWSTR DosPathName,
|
|
|
|
OUT PUNICODE_STRING NtPathName,
|
|
|
|
OUT PCWSTR *NtFileNamePart,
|
|
|
|
OUT CURDIR *DirectoryInfo
|
2005-06-26 16:35:51 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlExpandEnvironmentStrings_U(
|
|
|
|
PWSTR Environment,
|
|
|
|
PUNICODE_STRING Source,
|
|
|
|
PUNICODE_STRING Destination,
|
|
|
|
PULONG Length
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlGetCurrentDirectory_U(
|
|
|
|
ULONG MaximumLength,
|
|
|
|
PWSTR Buffer
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlGetFullPathName_U(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PCWSTR FileName,
|
|
|
|
IN ULONG Size,
|
|
|
|
IN PWSTR Buffer,
|
|
|
|
OUT PWSTR *ShortName
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlGetFullPathName_Ustr(
|
|
|
|
IN PUNICODE_STRING FileName,
|
|
|
|
IN ULONG Size,
|
|
|
|
IN PWSTR Buffer,
|
|
|
|
OUT PWSTR *ShortName,
|
|
|
|
OUT PBOOLEAN InvalidName,
|
|
|
|
OUT RTL_PATH_TYPE *PathType
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlIsDosDeviceName_U(
|
|
|
|
IN PWSTR Name
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlIsDosDeviceName_Ustr(
|
|
|
|
IN PUNICODE_STRING Name
|
|
|
|
);
|
|
|
|
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlIsNameLegalDOS8Dot3(
|
2006-01-03 21:34:19 +00:00
|
|
|
IN PCUNICODE_STRING Name,
|
|
|
|
IN OUT POEM_STRING OemName OPTIONAL,
|
|
|
|
IN OUT PBOOLEAN NameContainsSpaces OPTIONAL
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlSetCurrentDirectory_U(
|
|
|
|
IN PUNICODE_STRING name
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 19:50:52 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 19:50:52 +00:00
|
|
|
RtlSetEnvironmentVariable(
|
|
|
|
PWSTR *Environment,
|
|
|
|
PUNICODE_STRING Name,
|
|
|
|
PUNICODE_STRING Value
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Critical Section/Resource Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlDeleteCriticalSection (
|
2005-06-27 21:11:29 +00:00
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlEnterCriticalSection(
|
2005-06-27 21:11:29 +00:00
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitializeCriticalSection(
|
2005-06-27 21:11:29 +00:00
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlInitializeCriticalSectionAndSpinCount(
|
2005-06-27 21:11:29 +00:00
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection,
|
|
|
|
IN ULONG SpinCount
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlLeaveCriticalSection(
|
2005-06-27 21:11:29 +00:00
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlTryEnterCriticalSection(
|
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlpUnWaitCriticalSection(
|
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-27 21:11:29 +00:00
|
|
|
RtlpWaitForCriticalSection(
|
|
|
|
IN PRTL_CRITICAL_SECTION CriticalSection
|
2005-06-26 01:08:55 +00:00
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlAcquireResourceExclusive(
|
|
|
|
IN PRTL_RESOURCE Resource,
|
|
|
|
IN BOOLEAN Wait
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlAcquireResourceShared(
|
|
|
|
IN PRTL_RESOURCE Resource,
|
|
|
|
IN BOOLEAN Wait
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlConvertExclusiveToShared(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlConvertSharedToExclusive(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlDeleteResource(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlDumpResource(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlInitializeResource(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 11:07:15 +00:00
|
|
|
RtlReleaseResource(
|
|
|
|
IN PRTL_RESOURCE Resource
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Compression Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-19 23:59:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Debug Info Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
PRTL_DEBUG_INFORMATION
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlCreateQueryDebugBuffer(
|
|
|
|
IN ULONG Size,
|
|
|
|
IN BOOLEAN EventPair
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlDestroyQueryDebugBuffer(IN PRTL_DEBUG_INFORMATION DebugBuffer);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlQueryProcessDebugInformation(
|
|
|
|
IN ULONG ProcessId,
|
|
|
|
IN ULONG DebugInfoClassMask,
|
2006-05-10 17:47:44 +00:00
|
|
|
IN OUT PRTL_DEBUG_INFORMATION DebugBuffer
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Bitmap Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFindClearBits(
|
2005-06-26 11:07:15 +00:00
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG NumberToFind,
|
|
|
|
IN ULONG HintIndex
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlFindClearBitsAndSet(
|
2005-06-26 11:07:15 +00:00
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG NumberToFind,
|
|
|
|
IN ULONG HintIndex
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2006-06-29 18:07:53 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlFindNextForwardRunClear(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG FromIndex,
|
|
|
|
IN PULONG StartingRunIndex
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitializeBitMap(
|
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN PULONG BitMapBuffer,
|
|
|
|
IN ULONG SizeOfBitMap
|
|
|
|
);
|
|
|
|
|
2006-06-29 18:07:53 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlNumberOfSetBits(
|
|
|
|
IN PRTL_BITMAP BitMapHeader
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlSetBit(
|
|
|
|
PRTL_BITMAP BitMapHeader,
|
|
|
|
ULONG BitNumber
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlSetBits(
|
2005-06-26 11:07:15 +00:00
|
|
|
IN PRTL_BITMAP BitMapHeader,
|
|
|
|
IN ULONG StartingIndex,
|
|
|
|
IN ULONG NumberToSet
|
2005-06-20 05:36:32 +00:00
|
|
|
);
|
|
|
|
|
2008-01-16 23:19:01 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlSetAllBits(
|
|
|
|
PRTL_BITMAP BitMapHeader
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlTestBit(
|
|
|
|
PRTL_BITMAP BitMapHeader,
|
|
|
|
ULONG BitNumber
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Timer Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlCreateTimer(
|
|
|
|
HANDLE TimerQueue,
|
2005-06-26 01:08:55 +00:00
|
|
|
PHANDLE phNewTimer,
|
2005-06-21 02:08:42 +00:00
|
|
|
WAITORTIMERCALLBACKFUNC Callback,
|
|
|
|
PVOID Parameter,
|
2005-09-05 18:06:20 +00:00
|
|
|
ULONG DueTime,
|
|
|
|
ULONG Period,
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG Flags
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlCreateTimerQueue(PHANDLE TimerQueue);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlDeleteTimer(
|
|
|
|
HANDLE TimerQueue,
|
|
|
|
HANDLE Timer,
|
|
|
|
HANDLE CompletionEvent
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlUpdateTimer(
|
|
|
|
HANDLE TimerQueue,
|
|
|
|
HANDLE Timer,
|
|
|
|
ULONG DueTime,
|
|
|
|
ULONG Period
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlDeleteTimerQueueEx(
|
|
|
|
HANDLE TimerQueue,
|
|
|
|
HANDLE CompletionEvent
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlDeleteTimerQueue(HANDLE TimerQueue);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
//
|
|
|
|
// SList functions
|
|
|
|
//
|
|
|
|
PSLIST_ENTRY
|
|
|
|
FASTCALL
|
|
|
|
InterlockedPushListSList(
|
|
|
|
IN PSLIST_HEADER ListHead,
|
|
|
|
IN PSLIST_ENTRY List,
|
|
|
|
IN PSLIST_ENTRY ListEnd,
|
|
|
|
IN ULONG Count
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Range List functions
|
|
|
|
//
|
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlFreeRangeList(IN PRTL_RANGE_LIST RangeList);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Debug Functions
|
|
|
|
//
|
2005-06-21 02:08:42 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
__cdecl
|
2005-06-21 02:08:42 +00:00
|
|
|
DbgPrint(
|
2006-08-06 19:57:24 +00:00
|
|
|
IN PCCH Format,
|
2005-06-21 02:08:42 +00:00
|
|
|
IN ...
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
__cdecl
|
|
|
|
DbgPrintEx(
|
|
|
|
IN ULONG ComponentId,
|
|
|
|
IN ULONG Level,
|
2006-08-06 19:57:24 +00:00
|
|
|
IN PCCH Format,
|
2006-05-10 17:47:44 +00:00
|
|
|
IN ...
|
|
|
|
);
|
|
|
|
|
[FREELDR] Include ntddk.h instead of winddk.h
[RAMDISK] Add missing DO_XIP definition (not in WDK/DDK)
[FASTFAT] Remove duplicate VOLUME_IS_DIRTY definition
[HAL] Add case stubs for missing HAL_QUERY_INFORMATION_CLASS members
[NDK] Fix DbgPrompt prototype
[NTDDK]
- Move from winddk.h: _KUSER_SHARED_DATA (updated), pHalIoAssignDriveLetters, PHAL_RESET_DISPLAY_PARAMETERS, HAL_DISPATCH, HalDispatchTable, PCREATE_PROCESS_NOTIFY_ROUTINE, PCREATE_THREAD_NOTIFY_ROUTINE, IMAGE_INFO, PLOAD_IMAGE_NOTIFY_ROUTINE, BUS_DATA_TYPE (updated), PROCESSINFOCLASS (updated), THREADINFOCLASS (updated), DISK_SIGNATURE, PTIMER_APC_ROUTINE, Exfi386InterlockedIncrementLong, Exfi386InterlockedDecrementLong, Exfi386InterlockedExchangeUlong
- Add pHalGetAcpiTable, PCI_ERROR_HANDLER_CALLBACK, pHalSetPciErrorHandlerCallback
[WDM] Add _DECL_HAL_KE_IMPORT, Reorder sections (types before functions)
svn path=/branches/header-work/; revision=46097
2010-03-11 14:49:41 +00:00
|
|
|
NTSYSAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
DbgPrompt(
|
2006-11-19 21:14:49 +00:00
|
|
|
IN PCCH Prompt,
|
|
|
|
OUT PCH Response,
|
|
|
|
IN ULONG MaximumResponseLength
|
2006-05-10 17:47:44 +00:00
|
|
|
);
|
|
|
|
|
2005-06-21 02:08:42 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2007-01-24 19:48:34 +00:00
|
|
|
DbgBreakPoint(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2009-10-09 11:51:07 +00:00
|
|
|
VOID
|
2007-01-24 19:48:34 +00:00
|
|
|
NTAPI
|
|
|
|
DbgLoadImageSymbols(
|
2009-10-25 15:56:38 +00:00
|
|
|
IN PSTRING Name,
|
2007-01-24 19:48:34 +00:00
|
|
|
IN PVOID Base,
|
2007-02-18 20:47:04 +00:00
|
|
|
IN ULONG_PTR ProcessId
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
DbgUnLoadImageSymbols(
|
2009-10-25 15:56:38 +00:00
|
|
|
IN PSTRING Name,
|
2007-02-18 20:47:04 +00:00
|
|
|
IN PVOID Base,
|
|
|
|
IN ULONG_PTR ProcessId
|
2007-01-24 19:48:34 +00:00
|
|
|
);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2009-11-02 17:45:51 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
DbgCommandString(
|
|
|
|
IN PCCH Name,
|
|
|
|
IN PCCH Command
|
|
|
|
);
|
|
|
|
|
2006-10-16 03:19:14 +00:00
|
|
|
//
|
|
|
|
// Generic Table Functions
|
|
|
|
//
|
2006-10-17 04:20:48 +00:00
|
|
|
#if defined(NTOS_MODE_USER) || defined(_NTIFS_)
|
- Fix the way NlsOemLeadByteInfo is exported.
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.
svn path=/trunk/; revision=34611
2008-07-20 19:19:02 +00:00
|
|
|
NTSYSAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
PVOID
|
|
|
|
NTAPI
|
|
|
|
RtlInsertElementGenericTable(
|
|
|
|
IN PRTL_GENERIC_TABLE Table,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
IN ULONG BufferSize,
|
|
|
|
OUT PBOOLEAN NewElement OPTIONAL
|
|
|
|
);
|
|
|
|
|
- Fix the way NlsOemLeadByteInfo is exported.
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.
svn path=/trunk/; revision=34611
2008-07-20 19:19:02 +00:00
|
|
|
NTSYSAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
PVOID
|
|
|
|
NTAPI
|
|
|
|
RtlInsertElementGenericTableFull(
|
|
|
|
IN PRTL_GENERIC_TABLE Table,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
IN ULONG BufferSize,
|
|
|
|
OUT PBOOLEAN NewElement OPTIONAL,
|
|
|
|
IN PVOID NodeOrParent,
|
|
|
|
IN TABLE_SEARCH_RESULT SearchResult
|
|
|
|
);
|
|
|
|
|
- Fix the way NlsOemLeadByteInfo is exported.
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.
svn path=/trunk/; revision=34611
2008-07-20 19:19:02 +00:00
|
|
|
NTSYSAPI
|
2006-10-16 03:19:14 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlIsGenericTableEmpty(
|
|
|
|
IN PRTL_GENERIC_TABLE Table
|
|
|
|
);
|
|
|
|
|
- Fix the way NlsOemLeadByteInfo is exported.
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.
svn path=/trunk/; revision=34611
2008-07-20 19:19:02 +00:00
|
|
|
NTSYSAPI
|
2006-10-16 03:39:49 +00:00
|
|
|
PVOID
|
|
|
|
NTAPI
|
|
|
|
RtlLookupElementGenericTableFull(
|
|
|
|
IN PRTL_GENERIC_TABLE Table,
|
|
|
|
IN PVOID Buffer,
|
|
|
|
OUT PVOID *NodeOrParent,
|
|
|
|
OUT TABLE_SEARCH_RESULT *SearchResult
|
|
|
|
);
|
2006-10-17 04:20:48 +00:00
|
|
|
#endif
|
2006-10-16 03:39:49 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Handle Table Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-24 18:11:16 +00:00
|
|
|
PRTL_HANDLE_TABLE_ENTRY
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlAllocateHandle(
|
|
|
|
IN PRTL_HANDLE_TABLE HandleTable,
|
|
|
|
IN OUT PULONG Index
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlDestroyHandleTable(IN PRTL_HANDLE_TABLE HandleTable);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlFreeHandle(
|
|
|
|
IN PRTL_HANDLE_TABLE HandleTable,
|
|
|
|
IN PRTL_HANDLE_TABLE_ENTRY Handle
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlInitializeHandleTable(
|
|
|
|
IN ULONG TableSize,
|
|
|
|
IN ULONG HandleSize,
|
|
|
|
IN PRTL_HANDLE_TABLE HandleTable
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlIsValidHandle(
|
|
|
|
IN PRTL_HANDLE_TABLE HandleTable,
|
|
|
|
IN PRTL_HANDLE_TABLE_ENTRY Handle
|
2005-06-20 21:16:59 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:35:51 +00:00
|
|
|
RtlIsValidIndexHandle(
|
|
|
|
IN PRTL_HANDLE_TABLE HandleTable,
|
2005-08-07 11:47:45 +00:00
|
|
|
IN ULONG Index,
|
|
|
|
OUT PRTL_HANDLE_TABLE_ENTRY *Handle
|
2005-06-21 02:08:42 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// PE Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlFindMessage(
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
IN ULONG Type,
|
|
|
|
IN ULONG Language,
|
|
|
|
IN ULONG MessageId,
|
|
|
|
OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
|
|
|
|
);
|
2005-06-21 02:08:42 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-21 02:08:42 +00:00
|
|
|
RtlGetNtGlobalFlags(VOID);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageDirectoryEntryToData(
|
2006-05-10 17:47:44 +00:00
|
|
|
PVOID BaseAddress,
|
|
|
|
BOOLEAN MappedAsImage,
|
|
|
|
USHORT Directory,
|
2005-06-20 05:36:32 +00:00
|
|
|
PULONG Size
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-12-08 23:55:34 +00:00
|
|
|
PVOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageRvaToVa(
|
|
|
|
PIMAGE_NT_HEADERS NtHeader,
|
|
|
|
PVOID BaseAddress,
|
|
|
|
ULONG Rva,
|
|
|
|
PIMAGE_SECTION_HEADER *SectionHeader
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PIMAGE_NT_HEADERS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlImageNtHeader(IN PVOID BaseAddress);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlImageNtHeaderEx(
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN PVOID BaseAddress,
|
|
|
|
IN ULONGLONG Size,
|
|
|
|
IN PIMAGE_NT_HEADERS *NtHeader
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
PIMAGE_SECTION_HEADER
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
);
|
|
|
|
|
2006-09-10 08:00:57 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
LdrRelocateImageWithBias(
|
|
|
|
IN PVOID NewAddress,
|
|
|
|
IN LONGLONG AdditionalBias,
|
2006-09-10 17:16:59 +00:00
|
|
|
IN PCCH LoaderName,
|
2006-09-10 08:00:57 +00:00
|
|
|
IN ULONG Success,
|
|
|
|
IN ULONG Conflict,
|
|
|
|
IN ULONG Invalid
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
//
|
|
|
|
// Activation Context Functions
|
|
|
|
//
|
|
|
|
#ifdef NTOS_MODE_USER
|
2008-09-12 15:09:17 +00:00
|
|
|
|
2008-11-23 10:02:20 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlActivateActivationContext(
|
|
|
|
IN ULONG Unknown,
|
|
|
|
IN HANDLE Handle,
|
|
|
|
OUT PULONG_PTR Cookie
|
|
|
|
);
|
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlAddRefActivationContext(
|
|
|
|
PVOID Context
|
|
|
|
);
|
|
|
|
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlActivateActivationContextUnsafeFast(
|
|
|
|
IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame,
|
|
|
|
IN PVOID Context
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlAllocateActivationContextStack(
|
|
|
|
IN PVOID *Context
|
|
|
|
);
|
|
|
|
|
2008-11-23 10:02:20 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlCreateActivationContext(
|
|
|
|
OUT PHANDLE Handle,
|
|
|
|
IN OUT PVOID ReturnedData
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlGetActiveActivationContext(
|
|
|
|
IN PVOID *Context
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlReleaseActivationContext(
|
2009-12-02 09:43:35 +00:00
|
|
|
IN HANDLE handle
|
2006-05-10 17:47:44 +00:00
|
|
|
);
|
|
|
|
|
2008-09-12 15:09:17 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlDeactivateActivationContext(
|
2009-12-02 09:43:35 +00:00
|
|
|
ULONG dwFlags,
|
2008-09-12 15:09:17 +00:00
|
|
|
ULONG_PTR ulCookie
|
|
|
|
);
|
|
|
|
|
2009-12-02 09:43:35 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlFreeThreadActivationContextStack(void);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlDeactivateActivationContextUnsafeFast(
|
|
|
|
IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlDosApplyFileIsolationRedirection_Ustr(
|
|
|
|
IN BOOLEAN Unknown,
|
|
|
|
IN PUNICODE_STRING OriginalName,
|
|
|
|
IN PUNICODE_STRING Extension,
|
|
|
|
IN OUT PUNICODE_STRING RedirectedName,
|
|
|
|
IN OUT PUNICODE_STRING RedirectedName2,
|
|
|
|
IN OUT PUNICODE_STRING *OriginalName2,
|
|
|
|
IN PVOID Unknown1,
|
|
|
|
IN PVOID Unknown2,
|
|
|
|
IN PVOID Unknown3
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlFindActivationContextSectionString(
|
2008-11-23 08:57:19 +00:00
|
|
|
IN ULONG dwFlags,
|
2008-11-23 10:02:20 +00:00
|
|
|
IN const GUID *ExtensionGuid,
|
2006-05-10 17:47:44 +00:00
|
|
|
IN ULONG SectionType,
|
|
|
|
IN PUNICODE_STRING SectionName,
|
2008-11-23 10:02:20 +00:00
|
|
|
IN OUT PVOID ReturnedData
|
2006-05-10 17:47:44 +00:00
|
|
|
);
|
2008-09-12 15:09:17 +00:00
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlQueryInformationActivationContext(
|
|
|
|
DWORD dwFlags,
|
|
|
|
PVOID Context,
|
|
|
|
PVOID pvSubInstance,
|
|
|
|
ULONG ulInfoClass,
|
|
|
|
PVOID pvBuffer,
|
|
|
|
SIZE_T cbBuffer OPTIONAL,
|
|
|
|
SIZE_T *pcbWrittenOrRequired OPTIONAL
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlZombifyActivationContext(
|
|
|
|
PVOID Context
|
|
|
|
);
|
|
|
|
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
#endif
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Registry Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlCheckRegistryKey(
|
|
|
|
ULONG RelativeTo,
|
|
|
|
PWSTR Path
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2007-04-07 05:33:30 +00:00
|
|
|
RtlCreateRegistryKey(
|
|
|
|
IN ULONG RelativeTo,
|
|
|
|
IN PWSTR Path
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlFormatCurrentUserKeyPath(
|
|
|
|
IN OUT PUNICODE_STRING KeyPath
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 21:16:59 +00:00
|
|
|
RtlpNtOpenKey(
|
|
|
|
OUT HANDLE KeyHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN ULONG Unused
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlOpenCurrentUser(
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
OUT PHANDLE KeyHandle
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-26 01:08:55 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// NLS Functions
|
|
|
|
//
|
2008-05-20 13:21:21 +00:00
|
|
|
NTSYSAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
RtlGetDefaultCodePage(
|
|
|
|
OUT PUSHORT AnsiCodePage,
|
|
|
|
OUT PUSHORT OemCodePage
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-18 23:33:40 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlInitCodePageTable(
|
|
|
|
IN PUSHORT TableBase,
|
|
|
|
OUT PCPTABLEINFO CodePageTable
|
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable);
|
2005-06-20 03:55:42 +00:00
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
#if defined(NTOS_MODE_USER) && !defined(NO_RTL_INLINES)
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Misc conversion functions
|
|
|
|
//
|
2005-09-06 05:58:48 +00:00
|
|
|
static __inline
|
2005-06-26 01:08:55 +00:00
|
|
|
LARGE_INTEGER
|
2005-09-06 05:58:48 +00:00
|
|
|
NTAPI_INLINE
|
2005-11-22 06:57:36 +00:00
|
|
|
RtlConvertLongToLargeInteger(
|
2005-11-22 04:57:45 +00:00
|
|
|
LONG SignedInteger
|
|
|
|
)
|
2005-09-06 05:58:48 +00:00
|
|
|
{
|
|
|
|
LARGE_INTEGER Result;
|
2005-06-20 19:28:45 +00:00
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
Result.QuadPart = SignedInteger;
|
|
|
|
return Result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static __inline
|
2005-06-20 19:28:45 +00:00
|
|
|
LARGE_INTEGER
|
2005-09-06 05:58:48 +00:00
|
|
|
NTAPI_INLINE
|
2005-06-20 19:28:45 +00:00
|
|
|
RtlEnlargedIntegerMultiply(
|
|
|
|
LONG Multiplicand,
|
2005-11-22 04:57:45 +00:00
|
|
|
LONG Multiplier
|
|
|
|
)
|
2005-09-06 05:58:48 +00:00
|
|
|
{
|
|
|
|
LARGE_INTEGER Product;
|
2005-06-20 19:28:45 +00:00
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
Product.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
|
|
|
|
return Product;
|
|
|
|
}
|
|
|
|
|
|
|
|
static __inline
|
2005-06-20 19:28:45 +00:00
|
|
|
ULONG
|
2005-09-06 05:58:48 +00:00
|
|
|
NTAPI_INLINE
|
2005-06-20 19:28:45 +00:00
|
|
|
RtlEnlargedUnsignedDivide(
|
2005-09-06 05:58:48 +00:00
|
|
|
IN ULARGE_INTEGER Dividend,
|
|
|
|
IN ULONG Divisor,
|
2005-11-22 04:57:45 +00:00
|
|
|
IN PULONG Remainder OPTIONAL
|
|
|
|
)
|
2005-09-06 05:58:48 +00:00
|
|
|
{
|
|
|
|
ULONG Quotient;
|
2005-06-20 19:28:45 +00:00
|
|
|
|
2005-09-06 05:58:48 +00:00
|
|
|
Quotient = (ULONG)(Dividend.QuadPart / Divisor);
|
|
|
|
if (Remainder) {
|
|
|
|
*Remainder = (ULONG)(Dividend.QuadPart % Divisor);
|
|
|
|
}
|
|
|
|
|
|
|
|
return Quotient;
|
|
|
|
}
|
|
|
|
|
|
|
|
static __inline
|
2005-06-20 19:28:45 +00:00
|
|
|
LARGE_INTEGER
|
2005-09-06 05:58:48 +00:00
|
|
|
NTAPI_INLINE
|
2005-06-20 19:28:45 +00:00
|
|
|
RtlEnlargedUnsignedMultiply(
|
|
|
|
ULONG Multiplicand,
|
2005-11-22 04:57:45 +00:00
|
|
|
ULONG Multiplier
|
|
|
|
)
|
2005-09-06 05:58:48 +00:00
|
|
|
{
|
|
|
|
LARGE_INTEGER Product;
|
|
|
|
|
|
|
|
Product.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
|
|
|
|
return Product;
|
|
|
|
}
|
|
|
|
#endif
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
ULONG
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-05-10 17:47:44 +00:00
|
|
|
RtlUniform(
|
|
|
|
IN PULONG Seed
|
|
|
|
);
|
|
|
|
|
2007-09-27 18:07:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlRandom(
|
|
|
|
IN OUT PULONG Seed
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
ULONG
|
|
|
|
NTAPI
|
|
|
|
RtlComputeCrc32(
|
2006-06-23 21:21:45 +00:00
|
|
|
IN USHORT PartialCrc,
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PUCHAR Buffer,
|
|
|
|
IN ULONG Length
|
|
|
|
);
|
2005-06-20 19:58:43 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Network Functions
|
|
|
|
//
|
2005-10-19 17:03:38 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlIpv4StringToAddressW(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PWCHAR String,
|
|
|
|
IN UCHAR Strict,
|
|
|
|
OUT PWCHAR Terminator,
|
|
|
|
OUT struct in_addr *Addr
|
2005-10-19 17:03:38 +00:00
|
|
|
);
|
|
|
|
|
2005-12-04 03:24:11 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlIpv6StringToAddressA(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PCHAR Name,
|
|
|
|
OUT PCHAR *Terminator,
|
|
|
|
OUT struct in6_addr *Addr
|
2005-12-04 03:24:11 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlIpv6StringToAddressW(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PWCHAR Name,
|
|
|
|
OUT PCHAR *Terminator,
|
|
|
|
OUT struct in6_addr *Addr
|
2005-12-04 03:24:11 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlIpv6StringToAddressExA(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PCHAR AddressString,
|
|
|
|
IN struct in6_addr *Address,
|
2005-12-04 03:24:11 +00:00
|
|
|
IN PULONG ScopeId,
|
2005-12-06 01:09:09 +00:00
|
|
|
IN PUSHORT Port
|
2005-12-04 03:24:11 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlIpv6StringToAddressExW(
|
2006-05-10 17:47:44 +00:00
|
|
|
IN PWCHAR AddressName,
|
|
|
|
IN struct in6_addr *Address,
|
2005-12-04 03:24:11 +00:00
|
|
|
IN PULONG ScopeId,
|
2005-12-06 01:09:09 +00:00
|
|
|
IN PUSHORT Port
|
2005-12-04 03:24:11 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Time Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-23 21:21:45 +00:00
|
|
|
RtlQueryTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
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-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2006-06-23 21:21:45 +00:00
|
|
|
RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-26 01:08:55 +00:00
|
|
|
BOOLEAN
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlTimeFieldsToTime(
|
|
|
|
PTIME_FIELDS TimeFields,
|
|
|
|
PLARGE_INTEGER Time
|
|
|
|
);
|
|
|
|
|
2008-02-11 12:49:21 +00:00
|
|
|
NTSYSAPI
|
2008-02-11 13:19:06 +00:00
|
|
|
BOOLEAN
|
2008-02-11 12:49:21 +00:00
|
|
|
NTAPI
|
|
|
|
RtlTimeToSecondsSince1970(
|
|
|
|
PLARGE_INTEGER Time,
|
|
|
|
OUT PULONG SecondsSince1970
|
|
|
|
);
|
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
VOID
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlTimeToTimeFields(
|
|
|
|
PLARGE_INTEGER Time,
|
|
|
|
PTIME_FIELDS TimeFields
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlSystemTimeToLocalTime(
|
|
|
|
IN PLARGE_INTEGER SystemTime,
|
|
|
|
OUT PLARGE_INTEGER LocalTime
|
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Version Functions
|
|
|
|
//
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlVerifyVersionInfo(
|
|
|
|
IN PRTL_OSVERSIONINFOEXW VersionInfo,
|
|
|
|
IN ULONG TypeMask,
|
|
|
|
IN ULONGLONG ConditionMask
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
2005-06-26 01:08:55 +00:00
|
|
|
|
2005-09-05 18:06:20 +00:00
|
|
|
NTSYSAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
NTSTATUS
|
2005-09-05 18:06:20 +00:00
|
|
|
NTAPI
|
2005-06-20 05:36:32 +00:00
|
|
|
RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-10-19 17:03:38 +00:00
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlGetNtProductType(OUT PNT_PRODUCT_TYPE ProductType);
|
2005-09-08 06:52:01 +00:00
|
|
|
|
2006-06-23 21:21:45 +00:00
|
|
|
//
|
|
|
|
// Secure Memory Functions
|
|
|
|
//
|
|
|
|
#ifdef NTOS_MODE_USER
|
|
|
|
NTSYSAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
RtlRegisterSecureMemoryCacheCallback(
|
|
|
|
IN PRTL_SECURE_MEMORY_CACHE_CALLBACK Callback);
|
|
|
|
|
|
|
|
NTSYSAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
RtlFlushSecureMemoryCache(
|
|
|
|
IN PVOID MemoryCache,
|
|
|
|
IN OPTIONAL SIZE_T MemoryLength
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
#endif
|