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)
//
IN ULONG Revision
);
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCopySecurityDescriptor(
+ IN PSECURITY_DESCRIPTOR pSourceSecurityDescriptor,
+ OUT PSECURITY_DESCRIPTOR pDestinationSecurityDescriptor
+);
+
NTSYSAPI
NTSTATUS
NTAPI
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
);
+#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
//
//
// Process Management Functions
//
+NTSYSAPI
+PPEB
+NTAPI
+RtlGetCurrentPeb(
+ VOID
+);
+
NTSYSAPI
VOID
NTAPI
IN PINITIAL_TEB InitialTeb
);
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlIsThreadWithinLoaderCallout(VOID);
+
NTSYSAPI
PRTL_USER_PROCESS_PARAMETERS
NTAPI
NTAPI
RtlReleasePebLock(VOID);
+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
+);
+
NTSYSAPI
VOID
NTAPI
IN BOOLEAN IsWinlogon
);
+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
PLARGE_INTEGER Time
);
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlTimeToSecondsSince1970(
+ PLARGE_INTEGER Time,
+ OUT PULONG SecondsSince1970
+);
+
NTSYSAPI
VOID
NTAPI