[RTL/NDK/DDK/XDK]
[reactos.git] / reactos / include / ndk / rtlfuncs.h
index 1556698..4da235f 100644 (file)
@@ -1818,7 +1818,7 @@ RtlUnicodeToMultiByteN(
     PCHAR MbString,
     ULONG MbSize,
     PULONG ResultSize,
-    PWCHAR UnicodeString,
+    PCWCH UnicodeString,
     ULONG UnicodeSize
 );
 
@@ -1997,6 +1997,16 @@ RtlFillMemoryUlong(
     IN ULONG Fill
 );
 
+NTSYSAPI
+VOID
+NTAPI
+RtlFillMemoryUlonglong(
+    OUT PVOID Destination,
+    IN SIZE_T Length,
+    IN ULONGLONG Pattern
+);
+
+
 NTSYSAPI
 SIZE_T
 NTAPI
@@ -2321,6 +2331,27 @@ RtlInitializeContext(
     IN PINITIAL_TEB InitialTeb
 );
 
+#ifdef _M_AMD64
+typedef struct _WOW64_CONTEXT *PWOW64_CONTEXT;
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlWow64GetThreadContext(
+    IN HANDLE ThreadHandle,
+    IN OUT PWOW64_CONTEXT ThreadContext
+);
+
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlWow64SetThreadContext(
+    IN HANDLE ThreadHandle,
+    IN PWOW64_CONTEXT ThreadContext
+);
+#endif
+
 NTSYSAPI
 BOOLEAN
 NTAPI
@@ -2358,6 +2389,15 @@ RtlSetProcessIsCritical(
     IN BOOLEAN NeedBreaks
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlSetThreadIsCritical(
+    IN BOOLEAN NewValue,
+    OUT PBOOLEAN OldValue OPTIONAL,
+    IN BOOLEAN NeedBreaks
+);
+
 NTSYSAPI
 ULONG
 NTAPI
@@ -2370,6 +2410,14 @@ RtlGetCurrentProcessorNumber(
 //
 // Thread Pool Functions
 //
+//
+NTSTATUS
+NTAPI
+RtlSetThreadPoolStartFunc(
+    IN PRTL_START_POOL_THREAD StartPoolThread,
+    IN PRTL_EXIT_POOL_THREAD ExitPoolThread
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -2449,14 +2497,6 @@ RtlDoesFileExists_U(
     IN PCWSTR FileName
 );
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlDoesFileExists_UstrEx(
-    IN PCUNICODE_STRING FileName,
-    IN BOOLEAN SucceedIfBusy
-);
-
 NTSYSAPI
 ULONG
 NTAPI
@@ -2464,13 +2504,6 @@ RtlDetermineDosPathNameType_U(
     IN PCWSTR Path
 );
 
-NTSYSAPI
-RTL_PATH_TYPE
-NTAPI
-RtlDetermineDosPathNameType_Ustr(
-    IN PCUNICODE_STRING Path
-);
-
 NTSYSAPI
 ULONG
 NTAPI
@@ -2483,7 +2516,8 @@ RtlDosSearchPath_U(
     OUT PWSTR *PartName
 );
 
-ULONG
+NTSYSAPI
+NTSTATUS
 NTAPI
 RtlDosSearchPath_Ustr(
     IN ULONG Flags,
@@ -2493,8 +2527,8 @@ RtlDosSearchPath_Ustr(
     IN PUNICODE_STRING CallerBuffer,
     IN OUT PUNICODE_STRING DynamicString OPTIONAL,
     OUT PUNICODE_STRING* FullNameOut OPTIONAL,
-    OUT PULONG FilePartSize OPTIONAL,
-    OUT PULONG LengthNeeded OPTIONAL
+    OUT PSIZE_T FilePartSize OPTIONAL,
+    OUT PSIZE_T LengthNeeded OPTIONAL
 );
 
 NTSYSAPI
@@ -2545,7 +2579,20 @@ RtlGetFullPathName_U(
     OUT PWSTR *ShortName
 );
 
-ULONG
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlGetFullPathName_UEx(
+    IN PWSTR FileName,
+    IN ULONG BufferLength,
+    OUT PWSTR Buffer,
+    OUT OPTIONAL PWSTR *FilePart,
+    OUT OPTIONAL RTL_PATH_TYPE *InputPathType
+    );
+#endif
+
+NTSTATUS
 NTAPI
 RtlGetFullPathName_UstrEx(
     IN PUNICODE_STRING FileName,
@@ -2555,7 +2602,14 @@ RtlGetFullPathName_UstrEx(
     IN PSIZE_T FilePartSize,
     OUT PBOOLEAN NameInvalid,
     OUT RTL_PATH_TYPE* PathType,
-    OUT PULONG LengthNeeded
+    OUT PSIZE_T LengthNeeded
+);
+
+NTSYSAPI
+ULONG
+NTAPI
+RtlGetLongestNtPathLength(
+    VOID
 );
 
 NTSYSAPI
@@ -2586,9 +2640,9 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 RtlQueryEnvironmentVariable_U(
-    PWSTR Environment,
-    PUNICODE_STRING Name,
-    PUNICODE_STRING Value
+    IN OPTIONAL PWSTR Environment,
+    IN PUNICODE_STRING Name,
+    OUT PUNICODE_STRING Value
 );
 
 VOID
@@ -3807,12 +3861,12 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 RtlGetSetBootStatusData(
-    HANDLE FileHandle,
-    BOOLEAN WriteMode,
-    DWORD DataClass,
-    PVOID Buffer,
-    ULONG BufferSize,
-    DWORD DataClass2
+    IN HANDLE FileHandle,
+    IN BOOLEAN WriteMode,
+    IN RTL_BSD_ITEM_TYPE DataClass,
+    IN PVOID Buffer,
+    IN ULONG BufferSize,
+    OUT PULONG ReturnLength OPTIONAL
 );
 
 NTSYSAPI
@@ -3837,7 +3891,7 @@ NTAPI
 RtlGUIDFromString(
   IN PUNICODE_STRING GuidString,
   OUT GUID *Guid);
-  
+
 NTSYSAPI
 NTSTATUS
 NTAPI