mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 19:33:38 +00:00
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
|
||||
*/
|
||||
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -75,6 +75,7 @@
|
|||
SYSCALL_ENTRY( NtDeleteFile ) \
|
||||
SYSCALL_ENTRY( NtDeleteKey ) \
|
||||
SYSCALL_ENTRY( NtDeleteValueKey ) \
|
||||
SYSCALL_ENTRY( NtDeviceIoControlFile ) \
|
||||
SYSCALL_ENTRY( NtDisplayString ) \
|
||||
SYSCALL_ENTRY( NtDuplicateObject ) \
|
||||
SYSCALL_ENTRY( NtDuplicateToken ) \
|
||||
|
@ -88,6 +89,7 @@
|
|||
SYSCALL_ENTRY( NtFlushProcessWriteBuffers ) \
|
||||
SYSCALL_ENTRY( NtFlushVirtualMemory ) \
|
||||
SYSCALL_ENTRY( NtFreeVirtualMemory ) \
|
||||
SYSCALL_ENTRY( NtFsControlFile ) \
|
||||
SYSCALL_ENTRY( NtGetContextThread ) \
|
||||
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
|
||||
SYSCALL_ENTRY( NtGetNextThread ) \
|
||||
|
|
Loading…
Reference in a new issue