#include <umtypes.h>
#include <ntnls.h>
#include <rtltypes.h>
+#include <pstypes.h>
#include <extypes.h>
#include "in6addr.h"
#include "inaddr.h"
ListHead->Blink = Entry;
}
-BOOLEAN
FORCEINLINE
+BOOLEAN
IsListEmpty(
IN const LIST_ENTRY * ListHead
)
#if DBG
#define ASSERT( exp ) \
- ((!(exp)) ? \
+ ((void)((!(exp)) ? \
(RtlAssert( #exp, __FILE__, __LINE__, NULL ),FALSE) : \
- TRUE)
+ TRUE))
#define ASSERTMSG( msg, exp ) \
- ((!(exp)) ? \
+ ((void)((!(exp)) ? \
(RtlAssert( #exp, __FILE__, __LINE__, msg ),FALSE) : \
- TRUE)
+ TRUE))
#else
IN NTSTATUS Status
);
+NTSYSAPI
+ULONG
+NTAPI
+RtlNtStatusToDosErrorNoTeb(
+ IN NTSTATUS Status
+);
+
NTSYSAPI
VOID
NTAPI
IN PEXCEPTION_RECORD ExceptionRecord
);
+DECLSPEC_NORETURN
NTSYSAPI
VOID
NTAPI
RtlAllocateHeap(
IN HANDLE HeapHandle,
IN ULONG Flags,
- IN ULONG Size
+ IN SIZE_T Size
);
NTSYSAPI
IN HANDLE Heap,
IN ULONG Flags,
IN PVOID P,
- IN ULONG Size
+ IN SIZE_T Size
);
NTSYSAPI
OUT PULONG UserFlags
);
+NTSYSAPI
+PVOID
+NTAPI
+RtlProtectHeap(
+ IN PVOID HeapHandle,
+ IN BOOLEAN Protect
+);
+
NTSYSAPI
PWSTR
NTAPI
IN PVOID UserValue
);
+BOOLEAN
+NTAPI
+RtlSetUserFlagsHeap(
+ IN PVOID HeapHandle,
+ IN ULONG Flags,
+ IN PVOID BaseAddress,
+ IN ULONG UserFlags
+);
+
NTSYSAPI
-ULONG
+SIZE_T
NTAPI
RtlSizeHeap(
IN PVOID HeapHandle,
PVOID P
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlWalkHeap(
+ IN HANDLE HeapHandle,
+ IN PVOID HeapEntry
+);
+
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
//
PGENERIC_MAPPING GenericMapping
);
+#ifdef NTOS_MODE_USER
+
NTSYSAPI
NTSTATUS
NTAPI
ACL_INFORMATION_CLASS InformationClass
);
+#endif
+
NTSYSAPI
VOID
NTAPI
IN BOOLEAN GroupDefaulted
);
+#ifdef NTOS_MODE_USER
+
NTSYSAPI
NTSTATUS
NTAPI
ACL_INFORMATION_CLASS InformationClass
);
+#endif
+
NTSYSAPI
NTSTATUS
NTAPI
//
// Byte Swap Functions
//
+#ifdef NTOS_MODE_USER
+
#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
((defined(_M_AMD64) || \
defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+#elif defined (__GNUC__)
+
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+
#else
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTSYSAPI
USHORT
FASTCALL
ULONGLONG
FASTCALL
RtlUlonglongByteSwap(IN ULONGLONG Source);
+#endif
#endif
+#endif // NTOS_MODE_USER
//
// Unicode->Ansi String Functions
PCHAR OemString,
ULONG OemSize,
PULONG ResultSize,
- PWCHAR UnicodeString,
+ PCWCH UnicodeString,
ULONG UnicodeSize
);
PCHAR OemString,
ULONG OemSize,
PULONG ResultSize,
- PWCHAR UnicodeString,
+ PCWCH UnicodeString,
ULONG UnicodeSize
);
PCHAR MbString,
ULONG MbSize,
PULONG ResultSize,
- PWCHAR UnicodeString,
+ PCWCH UnicodeString,
ULONG UnicodeSize
);
NTAPI
RtlUnicodeToMultiByteSize(
PULONG MbSize,
- PWCHAR UnicodeString,
+ PCWCH UnicodeString,
ULONG UnicodeSize
);
PWSTR UnicodeString,
ULONG MaxBytesInUnicodeString,
PULONG BytesInUnicodeString,
- IN PCHAR OemString,
+ IN PCCH OemString,
ULONG BytesInOemString
);
IN BOOLEAN AllocateDestinationString
);
-#endif
-
NTSYSAPI
NTSTATUS
NTAPI
OUT PUNICODE_STRING DestinationString
);
+//
+// Memory Functions
+//
+NTSYSAPI
+VOID
+NTAPI
+RtlFillMemoryUlong(
+ IN PVOID Destination,
+ IN ULONG Length,
+ IN ULONG Fill
+);
+
+#endif
+
NTSYSAPI
BOOLEAN
NTAPI
);
NTSYSAPI
-ULONG
+BOOLEAN
NTAPI
RtlIsTextUnicode(
PVOID Buffer,
- ULONG Length,
- ULONG *Flags
+ INT Length,
+ INT *Flags
);
NTSYSAPI
PCSZ SourceString
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlInitAnsiStringEx(
+ PANSI_STRING DestinationString,
+ PCSZ SourceString
+);
+
//
// OEM String Functions
//
);
//
-// Memory Functions
+// Process Management Functions
//
NTSYSAPI
-VOID
+PPEB
NTAPI
-RtlFillMemoryUlong(
- IN PVOID Destination,
- IN ULONG Length,
- IN ULONG Fill
+RtlGetCurrentPeb(
+ VOID
);
-//
-// Process Management Functions
-//
NTSYSAPI
VOID
NTAPI
IN PINITIAL_TEB InitialTeb
);
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlIsThreadWithinLoaderCallout(VOID);
+
NTSYSAPI
PRTL_USER_PROCESS_PARAMETERS
NTAPI
RtlReleasePebLock(VOID);
NTSYSAPI
-VOID
+NTSTATUS
+NTAPI
+RtlRemoteCall(
+ IN HANDLE Process,
+ IN HANDLE Thread,
+ IN PVOID CallSite,
+ IN ULONG ArgumentCount,
+ IN PULONG Arguments,
+ IN BOOLEAN PassContext,
+ IN BOOLEAN AlreadySuspended
+);
+
+NTSYSAPI
+NTSTATUS
NTAPI
RtlSetProcessIsCritical(
IN BOOLEAN NewValue,
OUT PBOOLEAN OldValue OPTIONAL,
- IN BOOLEAN IsWinlogon
+ IN BOOLEAN NeedBreaks
+);
+
+NTSYSAPI
+ULONG
+NTAPI
+RtlGetCurrentProcessorNumber(
+ VOID
);
#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
//
// Thread Pool Functions
//
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlDeregisterWaitEx(
+ IN HANDLE hWaitHandle,
+ IN HANDLE hCompletionEvent
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlDeregisterWait(
+ IN HANDLE hWaitHandle
+);
+
NTSYSAPI
NTSTATUS
NTAPI
IN ULONG Flags
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlSetIoCompletionCallback(
+ IN HANDLE FileHandle,
+ IN PIO_APC_ROUTINE Callback,
+ IN ULONG Flags
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlRegisterWait(
+ IN PHANDLE phNewWaitObject,
+ IN HANDLE hObject,
+ IN WAITORTIMERCALLBACKFUNC Callback,
+ IN PVOID pvContext,
+ IN ULONG ulMilliseconds,
+ IN ULONG ulFlags
+);
+
//
// Environment/Path Functions
//
IN ULONG NumberToSet
);
+NTSYSAPI
+VOID
+NTAPI
+RtlSetAllBits(
+ PRTL_BITMAP BitMapHeader
+);
+
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlTestBit(
+ PRTL_BITMAP BitMapHeader,
+ ULONG BitNumber
+);
+
//
// Timer Functions
//
IN ...
);
+NTSYSAPI
ULONG
NTAPI
DbgPrompt(
VOID
);
-NTSTATUS
+VOID
NTAPI
DbgLoadImageSymbols(
- IN PANSI_STRING Name,
+ IN PSTRING Name,
IN PVOID Base,
IN ULONG_PTR ProcessId
);
VOID
NTAPI
DbgUnLoadImageSymbols(
- IN PANSI_STRING Name,
+ IN PSTRING Name,
IN PVOID Base,
IN ULONG_PTR ProcessId
);
+VOID
+NTAPI
+DbgCommandString(
+ IN PCCH Name,
+ IN PCCH Command
+);
+
//
// Generic Table Functions
//
#if defined(NTOS_MODE_USER) || defined(_NTIFS_)
+NTSYSAPI
PVOID
NTAPI
RtlInsertElementGenericTable(
OUT PBOOLEAN NewElement OPTIONAL
);
+NTSYSAPI
PVOID
NTAPI
RtlInsertElementGenericTableFull(
IN TABLE_SEARCH_RESULT SearchResult
);
+NTSYSAPI
BOOLEAN
NTAPI
RtlIsGenericTableEmpty(
IN PRTL_GENERIC_TABLE Table
);
+NTSYSAPI
PVOID
NTAPI
RtlLookupElementGenericTableFull(
// Activation Context Functions
//
#ifdef NTOS_MODE_USER
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlActivateActivationContext(
+ IN ULONG Unknown,
+ IN HANDLE Handle,
+ OUT PULONG_PTR Cookie
+);
+
+NTSYSAPI
+VOID
+NTAPI
+RtlAddRefActivationContext(
+ PVOID Context
+);
+
+
NTSYSAPI
NTSTATUS
NTAPI
IN PVOID *Context
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCreateActivationContext(
+ OUT PHANDLE Handle,
+ IN OUT PVOID ReturnedData
+);
+
NTSYSAPI
NTSTATUS
NTAPI
VOID
NTAPI
RtlReleaseActivationContext(
- IN PVOID *Context
+ IN HANDLE handle
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlDeactivateActivationContext(
+ ULONG dwFlags,
+ ULONG_PTR ulCookie
+);
+
+NTSYSAPI
+VOID
+NTAPI
+RtlFreeThreadActivationContextStack(void);
+
NTSYSAPI
NTSTATUS
NTAPI
NTSTATUS
NTAPI
RtlFindActivationContextSectionString(
- IN PVOID Unknown0,
- IN PVOID Unknown1,
+ IN ULONG dwFlags,
+ IN const GUID *ExtensionGuid,
IN ULONG SectionType,
IN PUNICODE_STRING SectionName,
- IN PVOID Unknown2
+ IN OUT PVOID ReturnedData
+);
+
+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
);
+
+
#endif
//
//
// NLS Functions
//
+NTSYSAPI
+VOID
+NTAPI
+RtlGetDefaultCodePage(
+ OUT PUSHORT AnsiCodePage,
+ OUT PUSHORT OemCodePage
+);
+
NTSYSAPI
VOID
NTAPI
NTSTATUS
NTAPI
RtlIpv4StringToAddressW(
- IN PWCHAR String,
- IN UCHAR Strict,
- OUT PWCHAR Terminator,
+ IN PCWSTR String,
+ IN BOOLEAN Strict,
+ OUT LPWSTR *Terminator,
OUT struct in_addr *Addr
);
PLARGE_INTEGER Time
);
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlTimeToSecondsSince1970(
+ PLARGE_INTEGER Time,
+ OUT PULONG SecondsSince1970
+);
+
NTSYSAPI
VOID
NTAPI
);
#endif
+//
+// Boot Status Data Functions
+//
+#ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCreateBootStatusDataFile(
+ VOID
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlGetSetBootStatusData(
+ HANDLE FileHandle,
+ BOOLEAN WriteMode,
+ DWORD DataClass,
+ PVOID Buffer,
+ ULONG BufferSize,
+ DWORD DataClass2
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlLockBootStatusData(
+ HANDLE FileHandle
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlUnlockBootStatusData(
+ HANDLE FileHandle
+);
+#endif
+
#ifdef __cplusplus
}
#endif