mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 19:03:37 +00:00
wow64: Add thunks for a few misc syscalls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
477478f79c
commit
4f0d8b697b
|
@ -874,6 +874,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
|
||||
*/
|
||||
|
|
|
@ -471,6 +471,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
|
||||
*/
|
||||
|
|
|
@ -98,6 +98,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
|
||||
*/
|
||||
|
@ -114,6 +131,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
|
||||
*/
|
||||
|
|
|
@ -1163,6 +1163,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
|
||||
*/
|
||||
|
|
|
@ -250,6 +250,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
|
||||
*/
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -646,6 +646,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
|
||||
*/
|
||||
|
|
|
@ -408,6 +408,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
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue