wow64: Add thunks for ioctl/fsctl syscalls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
7e07d00d29
commit
2aea336837
|
@ -352,6 +352,32 @@ NTSTATUS WINAPI wow64_NtDeleteFile( UINT *args )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* wow64_NtDeviceIoControlFile
|
||||||
|
*/
|
||||||
|
NTSTATUS WINAPI wow64_NtDeviceIoControlFile( 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 );
|
||||||
|
ULONG code = get_ulong( &args );
|
||||||
|
void *in_buf = get_ptr( &args );
|
||||||
|
ULONG in_len = get_ulong( &args );
|
||||||
|
void *out_buf = get_ptr( &args );
|
||||||
|
ULONG out_len = get_ulong( &args );
|
||||||
|
|
||||||
|
IO_STATUS_BLOCK io;
|
||||||
|
NTSTATUS status;
|
||||||
|
|
||||||
|
status = NtDeviceIoControlFile( handle, event, apc_32to64( apc ), apc_param_32to64( apc, apc_param ),
|
||||||
|
iosb_32to64( &io, io32 ), code, in_buf, in_len, out_buf, out_len );
|
||||||
|
put_iosb( io32, &io );
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* wow64_NtFlushBuffersFile
|
* wow64_NtFlushBuffersFile
|
||||||
*/
|
*/
|
||||||
|
@ -369,6 +395,32 @@ NTSTATUS WINAPI wow64_NtFlushBuffersFile( UINT *args )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* wow64_NtFsControlFile
|
||||||
|
*/
|
||||||
|
NTSTATUS WINAPI wow64_NtFsControlFile( 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 );
|
||||||
|
ULONG code = get_ulong( &args );
|
||||||
|
void *in_buf = get_ptr( &args );
|
||||||
|
ULONG in_len = get_ulong( &args );
|
||||||
|
void *out_buf = get_ptr( &args );
|
||||||
|
ULONG out_len = get_ulong( &args );
|
||||||
|
|
||||||
|
IO_STATUS_BLOCK io;
|
||||||
|
NTSTATUS status;
|
||||||
|
|
||||||
|
status = NtFsControlFile( handle, event, apc_32to64( apc ), apc_param_32to64( apc, apc_param ),
|
||||||
|
iosb_32to64( &io, io32 ), code, in_buf, in_len, out_buf, out_len );
|
||||||
|
put_iosb( io32, &io );
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* wow64_NtLockFile
|
* wow64_NtLockFile
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
SYSCALL_ENTRY( NtDeleteFile ) \
|
SYSCALL_ENTRY( NtDeleteFile ) \
|
||||||
SYSCALL_ENTRY( NtDeleteKey ) \
|
SYSCALL_ENTRY( NtDeleteKey ) \
|
||||||
SYSCALL_ENTRY( NtDeleteValueKey ) \
|
SYSCALL_ENTRY( NtDeleteValueKey ) \
|
||||||
|
SYSCALL_ENTRY( NtDeviceIoControlFile ) \
|
||||||
SYSCALL_ENTRY( NtDisplayString ) \
|
SYSCALL_ENTRY( NtDisplayString ) \
|
||||||
SYSCALL_ENTRY( NtDuplicateObject ) \
|
SYSCALL_ENTRY( NtDuplicateObject ) \
|
||||||
SYSCALL_ENTRY( NtDuplicateToken ) \
|
SYSCALL_ENTRY( NtDuplicateToken ) \
|
||||||
|
@ -88,6 +89,7 @@
|
||||||
SYSCALL_ENTRY( NtFlushProcessWriteBuffers ) \
|
SYSCALL_ENTRY( NtFlushProcessWriteBuffers ) \
|
||||||
SYSCALL_ENTRY( NtFlushVirtualMemory ) \
|
SYSCALL_ENTRY( NtFlushVirtualMemory ) \
|
||||||
SYSCALL_ENTRY( NtFreeVirtualMemory ) \
|
SYSCALL_ENTRY( NtFreeVirtualMemory ) \
|
||||||
|
SYSCALL_ENTRY( NtFsControlFile ) \
|
||||||
SYSCALL_ENTRY( NtGetContextThread ) \
|
SYSCALL_ENTRY( NtGetContextThread ) \
|
||||||
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
|
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
|
||||||
SYSCALL_ENTRY( NtGetNextThread ) \
|
SYSCALL_ENTRY( NtGetNextThread ) \
|
||||||
|
|
Loading…
Reference in New Issue