Sync with trunk (48237)
[reactos.git] / include / ndk / rtlfuncs.h
index 18aa474..a58690e 100644 (file)
@@ -328,6 +328,129 @@ RtlRealPredecessor(
         _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
 
 //
@@ -2042,12 +2165,12 @@ RtlRemoteCall(
 );
 
 NTSYSAPI
-VOID
+NTSTATUS
 NTAPI
 RtlSetProcessIsCritical(
     IN BOOLEAN NewValue,
     OUT PBOOLEAN OldValue OPTIONAL,
-    IN BOOLEAN IsWinlogon
+    IN BOOLEAN NeedBreaks
 );
 
 NTSYSAPI
@@ -2631,7 +2754,29 @@ InterlockedPushListSList(
 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
@@ -2796,7 +2941,7 @@ RtlFindMessage(
     IN ULONG Type,
     IN ULONG Language,
     IN ULONG MessageId,
-    OUT PRTL_MESSAGE_RESOURCE_ENTRY *MessageResourceEntry
+    OUT PMESSAGE_RESOURCE_ENTRY *MessageResourceEntry
 );
 
 NTSYSAPI
@@ -3185,9 +3330,9 @@ 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
 );
 
@@ -3324,6 +3469,44 @@ RtlFlushSecureMemoryCache(
 );
 #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