Stefan Leichter : ntdll: Partly implement RtlDosPathNameToRelativeNtPathName_U_WithStatus.

Alexandre Julliard julliard at winehq.org
Fri Jun 1 18:19:54 CDT 2018


Module: wine
Branch: master
Commit: bbfc01ccdcf887b76a1f22c79aa5d42a7fdc5a36
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=bbfc01ccdcf887b76a1f22c79aa5d42a7fdc5a36

Author: Stefan Leichter <sle85276 at gmx.de>
Date:   Thu May 31 17:15:35 2018 +0200

ntdll: Partly implement RtlDosPathNameToRelativeNtPathName_U_WithStatus.

Signed-off-by: Stefan Leichter <sle85276 at gmx.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/ntdll.spec |  1 +
 dlls/ntdll/path.c     | 21 +++++++++++++++++++++
 include/winternl.h    |  7 +++++++
 3 files changed, 29 insertions(+)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 66d4e7c..c0f5d6f 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -564,6 +564,7 @@
 # @ stub RtlDosApplyFileIsolationRedirection_Ustr
 @ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr)
 @ stdcall RtlDosPathNameToNtPathName_U_WithStatus(wstr ptr ptr ptr)
+@ stdcall RtlDosPathNameToRelativeNtPathName_U_WithStatus(wstr ptr ptr ptr)
 @ stdcall RtlDosSearchPath_U(wstr wstr wstr long ptr ptr)
 # @ stub RtlDosSearchPath_Ustr
 @ stdcall RtlDowncaseUnicodeChar(long)
diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c
index 3062787..0533946 100644
--- a/dlls/ntdll/path.c
+++ b/dlls/ntdll/path.c
@@ -436,6 +436,27 @@ BOOLEAN  WINAPI RtlDosPathNameToNtPathName_U(PCWSTR dos_path,
     return RtlDosPathNameToNtPathName_U_WithStatus(dos_path, ntpath, file_part, cd) == STATUS_SUCCESS;
 }
 
+/**************************************************************************
+ *        RtlDosPathNameToRelativeNtPathName_U_WithStatus [NTDLL.@]
+ *
+ * See RtlDosPathNameToNtPathName_U_WithStatus (except the last parameter)
+ */
+NTSTATUS WINAPI RtlDosPathNameToRelativeNtPathName_U_WithStatus(const WCHAR *dos_path,
+    UNICODE_STRING *ntpath, WCHAR **file_part, RTL_RELATIVE_NAME *relative)
+{
+    TRACE("(%s,%p,%p,%p)\n", debugstr_w(dos_path), ntpath, file_part, relative);
+
+    if (relative)
+    {
+        FIXME("Unsupported parameter\n");
+        memset(relative, 0, sizeof(*relative));
+    }
+
+    /* FIXME: fill parameter relative */
+
+    return RtlDosPathNameToNtPathName_U_WithStatus(dos_path, ntpath, file_part, NULL);
+}
+
 /******************************************************************
  *		RtlDosSearchPath_U
  *
diff --git a/include/winternl.h b/include/winternl.h
index 9452f8c..3ecd068 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -148,6 +148,13 @@ typedef struct RTL_DRIVE_LETTER_CURDIR
     UNICODE_STRING      DosPath;
 } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
 
+typedef struct _RTL_RELATIVE_NAME
+{
+    UNICODE_STRING RelativeName;
+    HANDLE         ContainerDirectory;
+    void          *CurDirRef;
+} RTL_RELATIVE_NAME, *PRTL_RELATIVE_NAME;
+
 typedef struct tagRTL_BITMAP {
     ULONG  SizeOfBitMap; /* Number of bits in the bitmap */
     PULONG Buffer; /* Bitmap data, assumed sized to a DWORD boundary */




More information about the wine-cvs mailing list