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
0534beb3
Commit
0534beb3
authored
Jul 16, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Use syscall thunks for object manager functions.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
40d403c9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
7 additions
and
52 deletions
+7
-52
ntdll.spec
dlls/ntdll/ntdll.spec
+6
-6
om.c
dlls/ntdll/om.c
+0
-35
loader.c
dlls/ntdll/unix/loader.c
+0
-3
unixlib.h
dlls/ntdll/unixlib.h
+1
-8
No files found.
dlls/ntdll/ntdll.spec
View file @
0534beb3
...
...
@@ -200,7 +200,7 @@
@ stdcall NtDeleteValueKey(long ptr)
@ stdcall -syscall NtDeviceIoControlFile(long long ptr ptr ptr long ptr long ptr long)
@ stdcall NtDisplayString(ptr)
@ stdcall NtDuplicateObject(long long long ptr long long long)
@ stdcall
-syscall
NtDuplicateObject(long long long ptr long long long)
@ stdcall NtDuplicateToken(long long ptr long long ptr)
# @ stub NtEnumerateBootEntries
@ stub NtEnumerateBus
...
...
@@ -305,7 +305,7 @@
@ stdcall NtQueryLicenseValue(ptr ptr ptr long ptr)
@ stdcall NtQueryMultipleValueKey(long ptr long ptr long ptr)
@ stdcall -syscall NtQueryMutant(long long ptr long ptr)
@ stdcall NtQueryObject(long long ptr long ptr)
@ stdcall
-syscall
NtQueryObject(long long ptr long ptr)
@ stub NtQueryOpenSubKeys
@ stdcall NtQueryPerformanceCounter(ptr ptr)
# @ stub NtQueryPortInformationProcess
...
...
@@ -376,7 +376,7 @@
@ stdcall -syscall NtSetInformationFile(long ptr ptr long long)
@ stdcall -syscall NtSetInformationJobObject(long long ptr long)
@ stdcall NtSetInformationKey(long long ptr long)
@ stdcall NtSetInformationObject(long long ptr long)
@ stdcall
-syscall
NtSetInformationObject(long long ptr long)
@ stdcall -syscall NtSetInformationProcess(long long ptr long)
@ stdcall -syscall NtSetInformationThread(long long ptr long)
@ stdcall NtSetInformationToken(long long ptr long)
...
...
@@ -1187,7 +1187,7 @@
@ stdcall -private ZwDeleteValueKey(long ptr) NtDeleteValueKey
@ stdcall -private -syscall ZwDeviceIoControlFile(long long ptr ptr ptr long ptr long ptr long) NtDeviceIoControlFile
@ stdcall -private ZwDisplayString(ptr) NtDisplayString
@ stdcall -private ZwDuplicateObject(long long long ptr long long long) NtDuplicateObject
@ stdcall -private
-syscall
ZwDuplicateObject(long long long ptr long long long) NtDuplicateObject
@ stdcall -private ZwDuplicateToken(long long ptr long long ptr) NtDuplicateToken
# @ stub ZwEnumerateBootEntries
@ stub ZwEnumerateBus
...
...
@@ -1292,7 +1292,7 @@
@ stdcall -private ZwQueryLicenseValue(ptr ptr ptr long ptr) NtQueryLicenseValue
@ stdcall -private ZwQueryMultipleValueKey(long ptr long ptr long ptr) NtQueryMultipleValueKey
@ stdcall -private -syscall ZwQueryMutant(long long ptr long ptr) NtQueryMutant
@ stdcall -private ZwQueryObject(long long ptr long ptr) NtQueryObject
@ stdcall -private
-syscall
ZwQueryObject(long long ptr long ptr) NtQueryObject
@ stub ZwQueryOpenSubKeys
@ stdcall -private ZwQueryPerformanceCounter(ptr ptr) NtQueryPerformanceCounter
# @ stub ZwQueryPortInformationProcess
...
...
@@ -1363,7 +1363,7 @@
@ stdcall -private -syscall ZwSetInformationFile(long ptr ptr long long) NtSetInformationFile
@ stdcall -private -syscall ZwSetInformationJobObject(long long ptr long) NtSetInformationJobObject
@ stdcall -private ZwSetInformationKey(long long ptr long) NtSetInformationKey
@ stdcall -private ZwSetInformationObject(long long ptr long) NtSetInformationObject
@ stdcall -private
-syscall
ZwSetInformationObject(long long ptr long) NtSetInformationObject
@ stdcall -private -syscall ZwSetInformationProcess(long long ptr long) NtSetInformationProcess
@ stdcall -private -syscall ZwSetInformationThread(long long ptr long) NtSetInformationThread
@ stdcall -private ZwSetInformationToken(long long ptr long) NtSetInformationToken
...
...
dlls/ntdll/om.c
View file @
0534beb3
...
...
@@ -40,29 +40,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
*/
/******************************************************************************
* NtQueryObject [NTDLL.@]
* ZwQueryObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtQueryObject
(
IN
HANDLE
handle
,
IN
OBJECT_INFORMATION_CLASS
info_class
,
OUT
PVOID
ptr
,
IN
ULONG
len
,
OUT
PULONG
used_len
)
{
return
unix_funcs
->
NtQueryObject
(
handle
,
info_class
,
ptr
,
len
,
used_len
);
}
/******************************************************************
* NtSetInformationObject [NTDLL.@]
* ZwSetInformationObject [NTDLL.@]
*
*/
NTSTATUS
WINAPI
NtSetInformationObject
(
IN
HANDLE
handle
,
IN
OBJECT_INFORMATION_CLASS
info_class
,
IN
PVOID
ptr
,
IN
ULONG
len
)
{
return
unix_funcs
->
NtSetInformationObject
(
handle
,
info_class
,
ptr
,
len
);
}
/******************************************************************************
* NtQuerySecurityObject [NTDLL.@]
*
* An ntdll analogue to GetKernelObjectSecurity().
...
...
@@ -150,18 +127,6 @@ NtQuerySecurityObject(
}
/******************************************************************************
* NtDuplicateObject [NTDLL.@]
* ZwDuplicateObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtDuplicateObject
(
HANDLE
source_process
,
HANDLE
source
,
HANDLE
dest_process
,
PHANDLE
dest
,
ACCESS_MASK
access
,
ULONG
attributes
,
ULONG
options
)
{
return
unix_funcs
->
NtDuplicateObject
(
source_process
,
source
,
dest_process
,
dest
,
access
,
attributes
,
options
);
}
static
LONG
WINAPI
invalid_handle_exception_handler
(
EXCEPTION_POINTERS
*
eptr
)
{
EXCEPTION_RECORD
*
rec
=
eptr
->
ExceptionRecord
;
...
...
dlls/ntdll/unix/loader.c
View file @
0534beb3
...
...
@@ -1360,11 +1360,8 @@ static struct unix_funcs unix_funcs =
{
NtClose
,
NtCurrentTeb
,
NtDuplicateObject
,
NtGetContextThread
,
NtQueryObject
,
NtQueryPerformanceCounter
,
NtSetInformationObject
,
DbgUiIssueRemoteBreakin
,
RtlGetSystemTimePrecise
,
RtlWaitOnAddress
,
...
...
dlls/ntdll/unixlib.h
View file @
0534beb3
...
...
@@ -28,22 +28,15 @@ struct msghdr;
struct
_DISPATCHER_CONTEXT
;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 8
7
#define NTDLL_UNIXLIB_VERSION 8
8
struct
unix_funcs
{
/* Nt* functions */
NTSTATUS
(
WINAPI
*
NtClose
)(
HANDLE
handle
);
TEB
*
(
WINAPI
*
NtCurrentTeb
)(
void
);
NTSTATUS
(
WINAPI
*
NtDuplicateObject
)(
HANDLE
source_process
,
HANDLE
source
,
HANDLE
dest_process
,
HANDLE
*
dest
,
ACCESS_MASK
access
,
ULONG
attributes
,
ULONG
options
);
NTSTATUS
(
WINAPI
*
NtGetContextThread
)(
HANDLE
handle
,
CONTEXT
*
context
);
NTSTATUS
(
WINAPI
*
NtQueryObject
)(
HANDLE
handle
,
OBJECT_INFORMATION_CLASS
info_class
,
void
*
ptr
,
ULONG
len
,
ULONG
*
used_len
);
NTSTATUS
(
WINAPI
*
NtQueryPerformanceCounter
)(
LARGE_INTEGER
*
counter
,
LARGE_INTEGER
*
frequency
);
NTSTATUS
(
WINAPI
*
NtSetInformationObject
)(
HANDLE
handle
,
OBJECT_INFORMATION_CLASS
info_class
,
void
*
ptr
,
ULONG
len
);
/* other Win32 API functions */
NTSTATUS
(
WINAPI
*
DbgUiIssueRemoteBreakin
)(
HANDLE
process
);
...
...
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