_SplayParent->RightChild = _SplayChild; \
_SplayChild->Parent = _SplayParent; \
}
+
+//
+// RTL AVL Tree Functions
+//
+NTSYSAPI
+VOID
+NTAPI
+RtlInitializeGenericTableAvl(
+ OUT PRTL_AVL_TABLE Table,
+ IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
+ IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
+ IN PRTL_AVL_FREE_ROUTINE FreeRoutine,
+ IN PVOID TableContext OPTIONAL
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlInsertElementGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer,
+ IN CLONG BufferSize,
+ OUT PBOOLEAN NewElement OPTIONAL
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlInsertElementGenericTableFullAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer,
+ IN CLONG BufferSize,
+ OUT PBOOLEAN NewElement OPTIONAL,
+ IN PVOID NodeOrParent,
+ IN TABLE_SEARCH_RESULT SearchResult
+);
+
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlDeleteElementGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlLookupElementGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlLookupElementGenericTableFullAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer,
+ OUT PVOID *NodeOrParent,
+ OUT TABLE_SEARCH_RESULT *SearchResult
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlEnumerateGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN BOOLEAN Restart
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlEnumerateGenericTableWithoutSplayingAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN OUT PVOID *RestartKey
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlLookupFirstMatchingElementGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN PVOID Buffer,
+ OUT PVOID *RestartKey
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlEnumerateGenericTableLikeADirectory(
+ IN PRTL_AVL_TABLE Table,
+ IN PRTL_AVL_MATCH_FUNCTION MatchFunction OPTIONAL,
+ IN PVOID MatchData OPTIONAL,
+ IN ULONG NextFlag,
+ IN OUT PVOID *RestartKey,
+ IN OUT PULONG DeleteCount,
+ IN PVOID Buffer
+);
+
+NTSYSAPI
+PVOID
+NTAPI
+RtlGetElementGenericTableAvl(
+ IN PRTL_AVL_TABLE Table,
+ IN ULONG I
+);
+
+NTSYSAPI
+ULONG
+NTAPI
+RtlNumberGenericTableElementsAvl(
+ IN PRTL_AVL_TABLE Table
+);
+
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlIsGenericTableEmptyAvl(
+ IN PRTL_AVL_TABLE Table
+);
+
#endif
//
);
NTSYSAPI
-VOID
+NTSTATUS
NTAPI
RtlSetProcessIsCritical(
IN BOOLEAN NewValue,
OUT PBOOLEAN OldValue OPTIONAL,
- IN BOOLEAN IsWinlogon
+ IN BOOLEAN NeedBreaks
);
NTSYSAPI
NTSYSAPI
VOID
NTAPI
-RtlFreeRangeList(IN PRTL_RANGE_LIST RangeList);
+RtlInitializeRangeList(
+ IN OUT PRTL_RANGE_LIST RangeList
+);
+
+NTSYSAPI
+VOID
+NTAPI
+RtlFreeRangeList(
+ IN PRTL_RANGE_LIST RangeList
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlAddRange(
+ IN OUT PRTL_RANGE_LIST RangeList,
+ IN ULONGLONG Start,
+ IN ULONGLONG End,
+ IN UCHAR Attributes,
+ IN ULONG Flags,
+ IN PVOID UserData OPTIONAL,
+ IN PVOID Owner OPTIONAL
+);
//
// Debug Functions
IN ULONG Type,
IN ULONG Language,
IN ULONG MessageId,
- OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
+ OUT PMESSAGE_RESOURCE_ENTRY *MessageResourceEntry
);
NTSYSAPI
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
);
);
#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