ntdll: Use syscalls for the file path conversion functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2020-08-25 13:57:02 +02:00
parent 4e5811637a
commit 482b64effd
5 changed files with 4 additions and 34 deletions

View file

@ -83,22 +83,6 @@ void init_directories(void)
}
/******************************************************************************
* wine_nt_to_unix_file_name (NTDLL.@) Not a Windows API
*
* Convert a file name from NT namespace to Unix namespace.
*
* If disposition is not FILE_OPEN or FILE_OVERWRITE, the last path
* element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is
* returned, but the unix name is still filled in properly.
*/
NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, char *nameA, SIZE_T *size,
UINT disposition )
{
return unix_funcs->nt_to_unix_file_name( nameW, nameA, size, disposition );
}
/******************************************************************
* RtlWow64EnableFsRedirection (NTDLL.@)
*/

View file

@ -1609,5 +1609,5 @@
@ cdecl __wine_get_unix_codepage()
# Filesystem
@ cdecl wine_nt_to_unix_file_name(ptr ptr ptr long)
@ cdecl wine_unix_to_nt_file_name(str ptr ptr)
@ cdecl -syscall wine_nt_to_unix_file_name(ptr ptr ptr long)
@ cdecl -syscall wine_unix_to_nt_file_name(str ptr ptr)

View file

@ -555,7 +555,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
for (;;)
{
if (!(nt_str = RtlAllocateHeap( GetProcessHeap(), 0, buflen * sizeof(WCHAR) ))) break;
status = unix_funcs->unix_to_nt_file_name( unix_name, nt_str, &buflen );
status = wine_unix_to_nt_file_name( unix_name, nt_str, &buflen );
if (status != STATUS_BUFFER_TOO_SMALL) break;
RtlFreeHeap( GetProcessHeap(), 0, nt_str );
}
@ -892,12 +892,3 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
RtlReleasePebLock();
return nts;
}
/******************************************************************
* wine_unix_to_nt_file_name (NTDLL.@) Not a Windows API
*/
NTSTATUS CDECL wine_unix_to_nt_file_name( const char *name, WCHAR *buffer, SIZE_T *size )
{
return unix_funcs->unix_to_nt_file_name( name, buffer, size );
}

View file

@ -1354,8 +1354,6 @@ static struct unix_funcs unix_funcs =
virtual_release_address_space,
exec_process,
server_init_process_done,
wine_nt_to_unix_file_name,
wine_unix_to_nt_file_name,
set_show_dot_files,
load_so_dll,
load_builtin_dll,

View file

@ -28,7 +28,7 @@ struct msghdr;
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 95
#define NTDLL_UNIXLIB_VERSION 96
struct unix_funcs
{
@ -96,9 +96,6 @@ struct unix_funcs
void (CDECL *server_init_process_done)( void *relay );
/* file functions */
NTSTATUS (CDECL *nt_to_unix_file_name)( const UNICODE_STRING *nameW, char *nameA, SIZE_T *size,
UINT disposition );
NTSTATUS (CDECL *unix_to_nt_file_name)( const char *name, WCHAR *buffer, SIZE_T *size );
void (CDECL *set_show_dot_files)( BOOL enable );
/* loader functions */