Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
4f0d8b69
Commit
4f0d8b69
authored
Aug 04, 2021
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wow64: Add thunks for a few misc syscalls.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
477478f7
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
164 additions
and
0 deletions
+164
-0
file.c
dlls/wow64/file.c
+34
-0
process.c
dlls/wow64/process.c
+22
-0
security.c
dlls/wow64/security.c
+40
-0
sync.c
dlls/wow64/sync.c
+11
-0
syscall.c
dlls/wow64/syscall.c
+12
-0
syscall.h
dlls/wow64/syscall.h
+9
-0
system.c
dlls/wow64/system.c
+17
-0
virtual.c
dlls/wow64/virtual.c
+18
-0
winternl.h
include/winternl.h
+1
-0
No files found.
dlls/wow64/file.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/process.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/security.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/sync.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/syscall.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/syscall.h
View file @
4f0d8b69
...
...
@@ -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 */
dlls/wow64/system.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
dlls/wow64/virtual.c
View file @
4f0d8b69
...
...
@@ -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
)
...
...
include/winternl.h
View file @
4f0d8b69
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment