ntdll: Use syscalls for the file path conversion functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4e5811637a
commit
482b64effd
|
@ -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.@)
|
* RtlWow64EnableFsRedirection (NTDLL.@)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1609,5 +1609,5 @@
|
||||||
@ cdecl __wine_get_unix_codepage()
|
@ cdecl __wine_get_unix_codepage()
|
||||||
|
|
||||||
# Filesystem
|
# Filesystem
|
||||||
@ cdecl wine_nt_to_unix_file_name(ptr ptr ptr long)
|
@ cdecl -syscall wine_nt_to_unix_file_name(ptr ptr ptr long)
|
||||||
@ cdecl wine_unix_to_nt_file_name(str ptr ptr)
|
@ cdecl -syscall wine_unix_to_nt_file_name(str ptr ptr)
|
||||||
|
|
|
@ -555,7 +555,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (!(nt_str = RtlAllocateHeap( GetProcessHeap(), 0, buflen * sizeof(WCHAR) ))) break;
|
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;
|
if (status != STATUS_BUFFER_TOO_SMALL) break;
|
||||||
RtlFreeHeap( GetProcessHeap(), 0, nt_str );
|
RtlFreeHeap( GetProcessHeap(), 0, nt_str );
|
||||||
}
|
}
|
||||||
|
@ -892,12 +892,3 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir)
|
||||||
RtlReleasePebLock();
|
RtlReleasePebLock();
|
||||||
return nts;
|
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 );
|
|
||||||
}
|
|
||||||
|
|
|
@ -1354,8 +1354,6 @@ static struct unix_funcs unix_funcs =
|
||||||
virtual_release_address_space,
|
virtual_release_address_space,
|
||||||
exec_process,
|
exec_process,
|
||||||
server_init_process_done,
|
server_init_process_done,
|
||||||
wine_nt_to_unix_file_name,
|
|
||||||
wine_unix_to_nt_file_name,
|
|
||||||
set_show_dot_files,
|
set_show_dot_files,
|
||||||
load_so_dll,
|
load_so_dll,
|
||||||
load_builtin_dll,
|
load_builtin_dll,
|
||||||
|
|
|
@ -28,7 +28,7 @@ struct msghdr;
|
||||||
struct _DISPATCHER_CONTEXT;
|
struct _DISPATCHER_CONTEXT;
|
||||||
|
|
||||||
/* increment this when you change the function table */
|
/* increment this when you change the function table */
|
||||||
#define NTDLL_UNIXLIB_VERSION 95
|
#define NTDLL_UNIXLIB_VERSION 96
|
||||||
|
|
||||||
struct unix_funcs
|
struct unix_funcs
|
||||||
{
|
{
|
||||||
|
@ -96,9 +96,6 @@ struct unix_funcs
|
||||||
void (CDECL *server_init_process_done)( void *relay );
|
void (CDECL *server_init_process_done)( void *relay );
|
||||||
|
|
||||||
/* file functions */
|
/* 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 );
|
void (CDECL *set_show_dot_files)( BOOL enable );
|
||||||
|
|
||||||
/* loader functions */
|
/* loader functions */
|
||||||
|
|
Loading…
Reference in New Issue