wow64: Add thunks for the file query information syscalls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
668b182920
commit
f1d888413f
|
@ -143,6 +143,128 @@ NTSTATUS WINAPI wow64_NtOpenFile( UINT *args )
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryAttributesFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryAttributesFile( UINT *args )
|
||||
{
|
||||
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
|
||||
FILE_BASIC_INFORMATION *info = get_ptr( &args );
|
||||
|
||||
struct object_attr64 attr;
|
||||
|
||||
return NtQueryAttributesFile( objattr_32to64( &attr, attr32 ), info );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryDirectoryFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryDirectoryFile( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
HANDLE event = get_handle( &args );
|
||||
ULONG apc = get_ulong( &args );
|
||||
ULONG apc_param = get_ulong( &args );
|
||||
IO_STATUS_BLOCK32 *io32 = get_ptr( &args );
|
||||
void *buffer = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
FILE_INFORMATION_CLASS class = get_ulong( &args );
|
||||
BOOLEAN single_entry = get_ulong( &args );
|
||||
UNICODE_STRING32 *mask32 = get_ptr( &args );
|
||||
BOOLEAN restart_scan = get_ulong( &args );
|
||||
|
||||
UNICODE_STRING mask;
|
||||
IO_STATUS_BLOCK io;
|
||||
NTSTATUS status;
|
||||
|
||||
status = NtQueryDirectoryFile( handle, event, apc_32to64( apc ), apc_param_32to64( apc, apc_param ),
|
||||
iosb_32to64( &io, io32 ), buffer, len, class, single_entry,
|
||||
unicode_str_32to64( &mask, mask32 ), restart_scan );
|
||||
put_iosb( io32, &io );
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryEaFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryEaFile( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
IO_STATUS_BLOCK32 *io32 = get_ptr( &args );
|
||||
void *buffer = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
BOOLEAN single_entry = get_ulong( &args );
|
||||
void *list = get_ptr( &args );
|
||||
ULONG list_len = get_ulong( &args );
|
||||
ULONG *index = get_ptr( &args );
|
||||
BOOLEAN restart = get_ulong( &args );
|
||||
|
||||
IO_STATUS_BLOCK io;
|
||||
NTSTATUS status;
|
||||
|
||||
status = NtQueryEaFile( handle, iosb_32to64( &io, io32 ), buffer, len,
|
||||
single_entry, list, list_len, index, restart );
|
||||
put_iosb( io32, &io );
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryFullAttributesFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryFullAttributesFile( UINT *args )
|
||||
{
|
||||
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
|
||||
FILE_NETWORK_OPEN_INFORMATION *info = get_ptr( &args );
|
||||
|
||||
struct object_attr64 attr;
|
||||
|
||||
return NtQueryFullAttributesFile( objattr_32to64( &attr, attr32 ), info );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryInformationFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryInformationFile( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
IO_STATUS_BLOCK32 *io32 = get_ptr( &args );
|
||||
void *info = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
FILE_INFORMATION_CLASS class = get_ulong( &args );
|
||||
|
||||
IO_STATUS_BLOCK io;
|
||||
NTSTATUS status;
|
||||
|
||||
status = NtQueryInformationFile( handle, iosb_32to64( &io, io32 ), info, len, class );
|
||||
put_iosb( io32, &io );
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtQueryVolumeInformationFile
|
||||
*/
|
||||
NTSTATUS WINAPI wow64_NtQueryVolumeInformationFile( UINT *args )
|
||||
{
|
||||
HANDLE handle = get_handle( &args );
|
||||
IO_STATUS_BLOCK32 *io32 = get_ptr( &args );
|
||||
void *buffer = get_ptr( &args );
|
||||
ULONG len = get_ulong( &args );
|
||||
FS_INFORMATION_CLASS class = get_ulong( &args );
|
||||
|
||||
IO_STATUS_BLOCK io;
|
||||
NTSTATUS status;
|
||||
|
||||
status = NtQueryVolumeInformationFile( handle, iosb_32to64( &io, io32 ), buffer, len, class );
|
||||
put_iosb( io32, &io );
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* wow64_NtReadFile
|
||||
*/
|
||||
|
|
|
@ -92,11 +92,16 @@
|
|||
SYSCALL_ENTRY( NtOpenTimer ) \
|
||||
SYSCALL_ENTRY( NtProtectVirtualMemory ) \
|
||||
SYSCALL_ENTRY( NtPulseEvent ) \
|
||||
SYSCALL_ENTRY( NtQueryAttributesFile ) \
|
||||
SYSCALL_ENTRY( NtQueryDefaultLocale ) \
|
||||
SYSCALL_ENTRY( NtQueryDefaultUILanguage ) \
|
||||
SYSCALL_ENTRY( NtQueryDirectoryFile ) \
|
||||
SYSCALL_ENTRY( NtQueryDirectoryObject ) \
|
||||
SYSCALL_ENTRY( NtQueryEaFile ) \
|
||||
SYSCALL_ENTRY( NtQueryEvent ) \
|
||||
SYSCALL_ENTRY( NtQueryFullAttributesFile ) \
|
||||
SYSCALL_ENTRY( NtQueryInformationAtom ) \
|
||||
SYSCALL_ENTRY( NtQueryInformationFile ) \
|
||||
SYSCALL_ENTRY( NtQueryInstallUILanguage ) \
|
||||
SYSCALL_ENTRY( NtQueryIoCompletion ) \
|
||||
SYSCALL_ENTRY( NtQueryKey ) \
|
||||
|
@ -111,6 +116,7 @@
|
|||
SYSCALL_ENTRY( NtQueryTimerResolution ) \
|
||||
SYSCALL_ENTRY( NtQueryValueKey ) \
|
||||
SYSCALL_ENTRY( NtQueryVirtualMemory ) \
|
||||
SYSCALL_ENTRY( NtQueryVolumeInformationFile ) \
|
||||
SYSCALL_ENTRY( NtReadFile ) \
|
||||
SYSCALL_ENTRY( NtReadFileScatter ) \
|
||||
SYSCALL_ENTRY( NtReadVirtualMemory ) \
|
||||
|
|
Loading…
Reference in New Issue