Commit 4f0d8b69 authored by Alexandre Julliard's avatar Alexandre Julliard

wow64: Add thunks for a few misc syscalls.

parent 477478f7
......@@ -875,6 +875,40 @@ NTSTATUS WINAPI wow64_wine_nt_to_unix_file_name( UINT *args )
/**********************************************************************
* wow64_wine_server_fd_to_handle
*/
NTSTATUS WINAPI wow64_wine_server_fd_to_handle( UINT *args )
{
int fd = get_ulong( &args );
ACCESS_MASK access = get_ulong( &args );
ULONG attributes = get_ulong( &args );
ULONG *handle_ptr = get_ptr( &args );
HANDLE handle = 0;
NTSTATUS status;
*handle_ptr = 0;
status = wine_server_fd_to_handle( fd, access, attributes, &handle );
put_handle( handle_ptr, handle );
return status;
}
/**********************************************************************
* wow64_wine_server_handle_to_fd
*/
NTSTATUS WINAPI wow64_wine_server_handle_to_fd( UINT *args )
{
HANDLE handle = get_handle( &args );
ACCESS_MASK access = get_ulong( &args );
int *unix_fd = get_ptr( &args );
unsigned int *options = get_ptr( &args );
return wine_server_handle_to_fd( handle, access, unix_fd, options );
}
/**********************************************************************
* wow64_wine_unix_to_nt_file_name
*/
NTSTATUS WINAPI wow64_wine_unix_to_nt_file_name( UINT *args )
......
......@@ -472,6 +472,28 @@ NTSTATUS WINAPI wow64_NtGetContextThread( UINT *args )
/**********************************************************************
* wow64_NtGetNextThread
*/
NTSTATUS WINAPI wow64_NtGetNextThread( UINT *args )
{
HANDLE process = get_handle( &args );
HANDLE thread = get_handle( &args );
ACCESS_MASK access = get_ulong( &args );
ULONG attributes = get_ulong( &args );
ULONG flags = get_ulong( &args );
ULONG *handle_ptr = get_ptr( &args );
HANDLE handle = 0;
NTSTATUS status;
*handle_ptr = 0;
status = NtGetNextThread( process, thread, access, attributes, flags, &handle );
put_handle( handle_ptr, handle );
return status;
}
/**********************************************************************
* wow64_NtIsProcessInJob
*/
NTSTATUS WINAPI wow64_NtIsProcessInJob( UINT *args )
......
......@@ -99,6 +99,23 @@ NTSTATUS WINAPI wow64_NtAccessCheckAndAuditAlarm( UINT *args )
/**********************************************************************
* wow64_NtAdjustGroupsToken
*/
NTSTATUS WINAPI wow64_NtAdjustGroupsToken( UINT *args )
{
HANDLE handle = get_handle( &args );
BOOLEAN reset = get_ulong( &args );
TOKEN_GROUPS32 *groups = get_ptr( &args );
ULONG len = get_ulong( &args );
TOKEN_GROUPS32 *prev = get_ptr( &args );
ULONG *retlen = get_ptr( &args );
FIXME( "%p %d %p %u %p %p\n", handle, reset, groups, len, prev, retlen );
return STATUS_NOT_IMPLEMENTED;
}
/**********************************************************************
* wow64_NtAdjustPrivilegesToken
*/
NTSTATUS WINAPI wow64_NtAdjustPrivilegesToken( UINT *args )
......@@ -115,6 +132,29 @@ NTSTATUS WINAPI wow64_NtAdjustPrivilegesToken( UINT *args )
/**********************************************************************
* wow64_NtCreateLowBoxToken
*/
NTSTATUS WINAPI wow64_NtCreateLowBoxToken( UINT *args )
{
ULONG *handle_ptr = get_ptr( &args );
HANDLE token = get_handle( &args );
ACCESS_MASK access = get_ulong( &args );
OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
SID *sid = get_ptr( &args );
ULONG count = get_ulong( &args );
SID_AND_ATTRIBUTES32 *capabilities32 = get_ptr( &args );
ULONG handle_count = get_ulong( &args );
ULONG *handles32 = get_ptr( &args );
FIXME( "%p %p %x %p %p %u %p %u %p: stub\n",
handle_ptr, token, access, attr32, sid, count, capabilities32, handle_count, handles32 );
*handle_ptr = 0;
return STATUS_SUCCESS;
}
/**********************************************************************
* wow64_NtDuplicateToken
*/
NTSTATUS WINAPI wow64_NtDuplicateToken( UINT *args )
......
......@@ -1164,6 +1164,17 @@ NTSTATUS WINAPI wow64_NtQueryTimerResolution( UINT *args )
/**********************************************************************
* wow64_NtRegisterThreadTerminatePort
*/
NTSTATUS WINAPI wow64_NtRegisterThreadTerminatePort( UINT *args )
{
HANDLE handle = get_handle( &args );
return NtRegisterThreadTerminatePort( handle );
}
/**********************************************************************
* wow64_NtReleaseKeyedEvent
*/
NTSTATUS WINAPI wow64_NtReleaseKeyedEvent( UINT *args )
......
......@@ -251,6 +251,18 @@ NTSTATUS WINAPI wow64_NtSetDefaultUILanguage( UINT *args )
/**********************************************************************
* wow64___wine_dbg_write
*/
NTSTATUS WINAPI wow64___wine_dbg_write( UINT *args )
{
const char *str = get_ptr( &args );
ULONG len = get_ulong( &args );
return __wine_dbg_write( str, len );
}
/**********************************************************************
* wow64_wine_server_call
*/
NTSTATUS WINAPI wow64_wine_server_call( UINT *args )
......
......@@ -26,6 +26,7 @@
SYSCALL_ENTRY( NtAccessCheck ) \
SYSCALL_ENTRY( NtAccessCheckAndAuditAlarm ) \
SYSCALL_ENTRY( NtAddAtom ) \
SYSCALL_ENTRY( NtAdjustGroupsToken ) \
SYSCALL_ENTRY( NtAdjustPrivilegesToken ) \
SYSCALL_ENTRY( NtAlertResumeThread ) \
SYSCALL_ENTRY( NtAlertThread ) \
......@@ -53,6 +54,7 @@
SYSCALL_ENTRY( NtCreateKey ) \
SYSCALL_ENTRY( NtCreateKeyTransacted ) \
SYSCALL_ENTRY( NtCreateKeyedEvent ) \
SYSCALL_ENTRY( NtCreateLowBoxToken ) \
SYSCALL_ENTRY( NtCreateMailslotFile ) \
SYSCALL_ENTRY( NtCreateMutant ) \
SYSCALL_ENTRY( NtCreateNamedPipeFile ) \
......@@ -88,6 +90,7 @@
SYSCALL_ENTRY( NtFreeVirtualMemory ) \
SYSCALL_ENTRY( NtGetContextThread ) \
SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
SYSCALL_ENTRY( NtGetNextThread ) \
SYSCALL_ENTRY( NtGetNlsSectionPtr ) \
SYSCALL_ENTRY( NtGetWriteWatch ) \
SYSCALL_ENTRY( NtImpersonateAnonymousToken ) \
......@@ -166,9 +169,11 @@
SYSCALL_ENTRY( NtQueryVirtualMemory ) \
SYSCALL_ENTRY( NtQueryVolumeInformationFile ) \
SYSCALL_ENTRY( NtQueueApcThread ) \
SYSCALL_ENTRY( NtRaiseHardError ) \
SYSCALL_ENTRY( NtReadFile ) \
SYSCALL_ENTRY( NtReadFileScatter ) \
SYSCALL_ENTRY( NtReadVirtualMemory ) \
SYSCALL_ENTRY( NtRegisterThreadTerminatePort ) \
SYSCALL_ENTRY( NtReleaseKeyedEvent ) \
SYSCALL_ENTRY( NtReleaseMutant ) \
SYSCALL_ENTRY( NtReleaseSemaphore ) \
......@@ -201,6 +206,7 @@
SYSCALL_ENTRY( NtSetInformationToken ) \
SYSCALL_ENTRY( NtSetIntervalProfile ) \
SYSCALL_ENTRY( NtSetIoCompletion ) \
SYSCALL_ENTRY( NtSetLdtEntries ) \
SYSCALL_ENTRY( NtSetPowerRequest ) \
SYSCALL_ENTRY( NtSetSecurityObject ) \
SYSCALL_ENTRY( NtSetSystemInformation ) \
......@@ -236,8 +242,11 @@
SYSCALL_ENTRY( NtWriteFileGather ) \
SYSCALL_ENTRY( NtWriteVirtualMemory ) \
SYSCALL_ENTRY( NtYieldExecution ) \
SYSCALL_ENTRY( __wine_dbg_write ) \
SYSCALL_ENTRY( wine_nt_to_unix_file_name ) \
SYSCALL_ENTRY( wine_server_call ) \
SYSCALL_ENTRY( wine_server_fd_to_handle ) \
SYSCALL_ENTRY( wine_server_handle_to_fd ) \
SYSCALL_ENTRY( wine_unix_to_nt_file_name )
#endif /* __WOW64_SYSCALL_H */
......@@ -647,6 +647,23 @@ NTSTATUS WINAPI wow64_NtQuerySystemTime( UINT *args )
/**********************************************************************
* wow64_NtRaiseHardError
*/
NTSTATUS WINAPI wow64_NtRaiseHardError( UINT *args )
{
NTSTATUS status = get_ulong( &args );
ULONG count = get_ulong( &args );
ULONG params_mask = get_ulong( &args );
ULONG *params = get_ptr( &args );
HARDERROR_RESPONSE_OPTION option = get_ulong( &args );
HARDERROR_RESPONSE *response = get_ptr( &args );
FIXME( "%08x %u %x %p %u %p: stub\n", status, count, params_mask, params, option, response );
return STATUS_NOT_IMPLEMENTED;
}
/**********************************************************************
* wow64_NtSetIntervalProfile
*/
NTSTATUS WINAPI wow64_NtSetIntervalProfile( UINT *args )
......
......@@ -409,6 +409,24 @@ NTSTATUS WINAPI wow64_NtResetWriteWatch( UINT *args )
/**********************************************************************
* wow64_NtSetLdtEntries
*/
NTSTATUS WINAPI wow64_NtSetLdtEntries( UINT *args )
{
ULONG sel1 = get_ulong( &args );
ULONG entry1_low = get_ulong( &args );
ULONG entry1_high = get_ulong( &args );
ULONG sel2 = get_ulong( &args );
ULONG entry2_low = get_ulong( &args );
ULONG entry2_high = get_ulong( &args );
FIXME( "%04x %08x %08x %04x %08x %08x: stub\n",
sel1, entry1_low, entry1_high, sel2, entry2_low, entry2_high );
return STATUS_NOT_IMPLEMENTED;
}
/**********************************************************************
* wow64_NtUnlockVirtualMemory
*/
NTSTATUS WINAPI wow64_NtUnlockVirtualMemory( UINT *args )
......
......@@ -3879,6 +3879,7 @@ NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
NTSYSAPI NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*);
NTSYSAPI ULONG WINAPI NtGetCurrentProcessorNumber(void);
NTSYSAPI NTSTATUS WINAPI NtGetNextThread(HANDLE,HANDLE,ACCESS_MASK,ULONG,ULONG,HANDLE*);
NTSYSAPI NTSTATUS WINAPI NtGetNlsSectionPtr(ULONG,ULONG,void*,void**,SIZE_T*);
NTSYSAPI NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG);
NTSYSAPI ULONG WINAPI NtGetTickCount(VOID);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment