From: Stefan Leichter Subject: [PATCH] ntdll: Partly implement RtlDosPathNameToRelativeNtPathName_U_WithStatus (resend 2nd) Message-Id: <459a9694-9586-f3f9-555b-693f1bd4c451@gmx.de> Date: Thu, 31 May 2018 17:15:35 +0200 Re-diffed/send with some (more) blanks in the subject Signed-off-by: Stefan Leichter --- dlls/ntdll/ntdll.spec | 1 + dlls/ntdll/ntdll_misc.h | 6 ++++++ dlls/ntdll/path.c | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 66d4e7cd67..c0f5d6fb95 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/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index 85bdd9ed05..af1a33a88a 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -251,4 +251,10 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN; NTSTATUS WINAPI RtlHashUnicodeString(PCUNICODE_STRING,BOOLEAN,ULONG,ULONG*); +typedef struct _RTL_RELATIVE_NAME { + UNICODE_STRING RelativeName; + HANDLE ContainerDirectory; + void* CurDirRef; +} RTL_RELATIVE_NAME, *PRTL_RELATIVE_NAME; + #endif diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c index 3062787ca7..1d24321e25 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 *