[PATCH] Add RtlDosPathNameToRelativeNtPathName_U
Louis Lenders
xerox.xerox2000x at gmail.com
Mon Feb 1 11:59:53 CST 2021
Trying to get scoop running in wine, turned out it needs robocopy.exe. As wine lacks robocopy, i had to fall
back to native robocopy, in this case from windows 8.1. Then one gets crash below.
Call from 7BC2C17A to unimplemented function ntdll.dll.RtlDosPathNameToRelativeNtPathName_U, aborting
wine: Unimplemented function ntdll.dll.RtlDosPathNameToRelativeNtPathName_U called at address 7BC2C17A (thread 0024), starting debugger...
So I added similar code as for RtlDosPathNameToNtPathName_U --> RtlDosPathNameToNtPathName_U_WithStatus
and that makes robocopy work
Signed-off-by: Louis Lenders <xerox.xerox2000x at gmail.com>
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/path.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 740030f2066..bfdf61f1e7a 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -605,6 +605,7 @@
# @ stub RtlDosApplyFileIsolationRedirection_Ustr
@ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr)
@ stdcall RtlDosPathNameToNtPathName_U_WithStatus(wstr ptr ptr ptr)
+@ stdcall RtlDosPathNameToRelativeNtPathName_U(wstr ptr ptr ptr)
@ stdcall RtlDosPathNameToRelativeNtPathName_U_WithStatus(wstr ptr ptr ptr)
@ stdcall RtlDosSearchPath_U(wstr wstr wstr long ptr ptr)
# @ stub RtlDosSearchPath_Ustr
diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
index 86760f178e1..0262c1db18e 100644
--- a/dlls/ntdll/path.c
+++ b/dlls/ntdll/path.c
@@ -263,6 +263,17 @@ NTSTATUS WINAPI RtlDosPathNameToRelativeNtPathName_U_WithStatus(const WCHAR *dos
return RtlDosPathNameToNtPathName_U_WithStatus(dos_path, ntpath, file_part, NULL);
}
+/**************************************************************************
+ * RtlDosPathNameToRelativeNtPathName_U [NTDLL.@]
+ *
+ * See RtlDosPathNameToRelativeNtPathName_U_WithStatus
+ */
+BOOLEAN WINAPI RtlDosPathNameToRelativeNtPathName_U(const WCHAR *dos_path,
+ UNICODE_STRING *ntpath, WCHAR **file_part, RTL_RELATIVE_NAME *relative)
+{
+ return RtlDosPathNameToRelativeNtPathName_U_WithStatus(dos_path, ntpath, file_part, relative) == STATUS_SUCCESS;
+}
+
/**************************************************************************
* RtlReleaseRelativeName [NTDLL.@]
*/
--
2.30.0
More information about the wine-devel
mailing list