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
635e914b
Commit
635e914b
authored
Jul 16, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Use syscall thunks for process functions.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
00e7d50f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
183 deletions
+19
-183
ntdll.spec
dlls/ntdll/ntdll.spec
+18
-16
process.c
dlls/ntdll/process.c
+0
-140
loader.c
dlls/ntdll/unix/loader.c
+0
-9
unixlib.h
dlls/ntdll/unixlib.h
+1
-18
No files found.
dlls/ntdll/ntdll.spec
View file @
635e914b
...
...
@@ -186,7 +186,7 @@
@ stdcall -syscall NtCreateThreadEx(ptr long ptr long ptr ptr long long long long ptr)
@ stdcall -syscall NtCreateTimer(ptr long ptr long)
@ stub NtCreateToken
@ stdcall NtCreateUserProcess(ptr ptr long long ptr ptr long long ptr ptr ptr)
@ stdcall
-syscall
NtCreateUserProcess(ptr ptr long long ptr ptr long long ptr ptr ptr)
# @ stub NtCreateWaitablePort
@ stdcall -arch=win32,arm64 NtCurrentTeb()
# @ stub NtDebugActiveProcess
...
...
@@ -211,9 +211,9 @@
# @ stub NtFilterToken
@ stdcall NtFindAtom(ptr long ptr)
@ stdcall NtFlushBuffersFile(long ptr)
@ stdcall NtFlushInstructionCache(long ptr long)
@ stdcall
-syscall
NtFlushInstructionCache(long ptr long)
@ stdcall NtFlushKey(long)
@ stdcall NtFlushProcessWriteBuffers()
@ stdcall
-syscall
NtFlushProcessWriteBuffers()
@ stdcall NtFlushVirtualMemory(long ptr ptr long)
@ stub NtFlushWriteBuffer
# @ stub NtFreeUserPhysicalPages
...
...
@@ -263,7 +263,7 @@
@ stdcall -syscall NtOpenKeyedEvent(ptr long ptr)
@ stdcall -syscall NtOpenMutant(ptr long ptr)
@ stub NtOpenObjectAuditAlarm
@ stdcall NtOpenProcess(ptr long ptr ptr)
@ stdcall
-syscall
NtOpenProcess(ptr long ptr ptr)
@ stdcall NtOpenProcessToken(long long ptr)
@ stdcall NtOpenProcessTokenEx(long long long ptr)
@ stdcall NtOpenSection(ptr long ptr)
...
...
@@ -295,7 +295,7 @@
@ stdcall NtQueryInformationFile(long ptr ptr long long)
@ stdcall -syscall NtQueryInformationJobObject(long long ptr long ptr)
@ stub NtQueryInformationPort
@ stdcall NtQueryInformationProcess(long long ptr long ptr)
@ stdcall
-syscall
NtQueryInformationProcess(long long ptr long ptr)
@ stdcall -syscall NtQueryInformationThread(long long ptr long ptr)
@ stdcall NtQueryInformationToken(long long ptr long ptr)
@ stdcall NtQueryInstallUILanguage(ptr)
...
...
@@ -353,7 +353,7 @@
@ stdcall -syscall NtResetEvent(long ptr)
@ stdcall NtResetWriteWatch(long ptr long)
@ stdcall NtRestoreKey(long long long)
@ stdcall NtResumeProcess(long)
@ stdcall
-syscall
NtResumeProcess(long)
@ stdcall -syscall NtResumeThread(long ptr)
@ stdcall NtSaveKey(long long)
# @ stub NtSaveKeyEx
...
...
@@ -377,7 +377,7 @@
@ stdcall -syscall NtSetInformationJobObject(long long ptr long)
@ stdcall NtSetInformationKey(long long ptr long)
@ stdcall NtSetInformationObject(long long ptr long)
@ stdcall NtSetInformationProcess(long long ptr long)
@ stdcall
-syscall
NtSetInformationProcess(long long ptr long)
@ stdcall -syscall NtSetInformationThread(long long ptr long)
@ stdcall NtSetInformationToken(long long ptr long)
@ stdcall NtSetIntervalProfile(long long)
...
...
@@ -404,11 +404,11 @@
@ stdcall -syscall NtSignalAndWaitForSingleObject(long long long ptr)
@ stub NtStartProfile
@ stub NtStopProfile
@ stdcall NtSuspendProcess(long)
@ stdcall
-syscall
NtSuspendProcess(long)
@ stdcall -syscall NtSuspendThread(long ptr)
@ stdcall NtSystemDebugControl(long ptr long ptr long ptr)
@ stdcall -syscall NtTerminateJobObject(long long)
@ stdcall NtTerminateProcess(long long)
@ stdcall
-syscall
NtTerminateProcess(long long)
@ stdcall -syscall NtTerminateThread(long long)
@ stub NtTestAlert
# @ stub NtTraceEvent
...
...
@@ -1174,6 +1174,7 @@
@ stdcall -private -syscall ZwCreateThreadEx(ptr long ptr long ptr ptr long long long long ptr) NtCreateThreadEx
@ stdcall -private -syscall ZwCreateTimer(ptr long ptr long) NtCreateTimer
@ stub ZwCreateToken
@ stdcall -private -syscall ZwCreateUserProcess(ptr ptr long long ptr ptr long long ptr ptr ptr) NtCreateUserProcess
# @ stub ZwCreateWaitablePort
# @ stub ZwDebugActiveProcess
# @ stub ZwDebugContinue
...
...
@@ -1197,8 +1198,9 @@
# @ stub ZwFilterToken
@ stdcall -private ZwFindAtom(ptr long ptr) NtFindAtom
@ stdcall -private ZwFlushBuffersFile(long ptr) NtFlushBuffersFile
@ stdcall -private ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache
@ stdcall -private
-syscall
ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache
@ stdcall -private ZwFlushKey(long) NtFlushKey
@ stdcall -private -syscall ZwFlushProcessWriteBuffers() NtFlushProcessWriteBuffers
@ stdcall -private ZwFlushVirtualMemory(long ptr ptr long) NtFlushVirtualMemory
@ stub ZwFlushWriteBuffer
# @ stub ZwFreeUserPhysicalPages
...
...
@@ -1248,7 +1250,7 @@
@ stdcall -private -syscall ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent
@ stdcall -private -syscall ZwOpenMutant(ptr long ptr) NtOpenMutant
@ stub ZwOpenObjectAuditAlarm
@ stdcall -private ZwOpenProcess(ptr long ptr ptr) NtOpenProcess
@ stdcall -private
-syscall
ZwOpenProcess(ptr long ptr ptr) NtOpenProcess
@ stdcall -private ZwOpenProcessToken(long long ptr) NtOpenProcessToken
@ stdcall -private ZwOpenProcessTokenEx(long long long ptr) NtOpenProcessTokenEx
@ stdcall -private ZwOpenSection(ptr long ptr) NtOpenSection
...
...
@@ -1280,7 +1282,7 @@
@ stdcall -private ZwQueryInformationFile(long ptr ptr long long) NtQueryInformationFile
@ stdcall -private -syscall ZwQueryInformationJobObject(long long ptr long ptr) NtQueryInformationJobObject
@ stub ZwQueryInformationPort
@ stdcall -private ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess
@ stdcall -private
-syscall
ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess
@ stdcall -private -syscall ZwQueryInformationThread(long long ptr long ptr) NtQueryInformationThread
@ stdcall -private ZwQueryInformationToken(long long ptr long ptr) NtQueryInformationToken
@ stdcall -private ZwQueryInstallUILanguage(ptr) NtQueryInstallUILanguage
...
...
@@ -1338,7 +1340,7 @@
@ stdcall -private -syscall ZwResetEvent(long ptr) NtResetEvent
@ stdcall -private ZwResetWriteWatch(long ptr long) NtResetWriteWatch
@ stdcall -private ZwRestoreKey(long long long) NtRestoreKey
@ stdcall -private ZwResumeProcess(long) NtResumeProcess
@ stdcall -private
-syscall
ZwResumeProcess(long) NtResumeProcess
@ stdcall -private -syscall ZwResumeThread(long ptr) NtResumeThread
@ stdcall -private ZwSaveKey(long long) NtSaveKey
# @ stub ZwSaveKeyEx
...
...
@@ -1362,7 +1364,7 @@
@ 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 ZwSetInformationProcess(long long ptr long) NtSetInformationProcess
@ 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
@ stdcall -private ZwSetIntervalProfile(long long) NtSetIntervalProfile
...
...
@@ -1389,11 +1391,11 @@
@ stdcall -private -syscall ZwSignalAndWaitForSingleObject(long long long ptr) NtSignalAndWaitForSingleObject
@ stub ZwStartProfile
@ stub ZwStopProfile
@ stdcall -private ZwSuspendProcess(long) NtSuspendProcess
@ stdcall -private
-syscall
ZwSuspendProcess(long) NtSuspendProcess
@ stdcall -private -syscall ZwSuspendThread(long ptr) NtSuspendThread
@ stdcall -private ZwSystemDebugControl(long ptr long ptr long ptr) NtSystemDebugControl
@ stdcall -private -syscall ZwTerminateJobObject(long long) NtTerminateJobObject
@ stdcall -private ZwTerminateProcess(long long) NtTerminateProcess
@ stdcall -private
-syscall
ZwTerminateProcess(long long) NtTerminateProcess
@ stdcall -private -syscall ZwTerminateThread(long long) NtTerminateThread
@ stub ZwTestAlert
# @ stub ZwTraceEvent
...
...
dlls/ntdll/process.c
View file @
635e914b
...
...
@@ -47,16 +47,6 @@ static const BOOL is_win64 = (sizeof(void *) > sizeof(int));
*/
/******************************************************************************
* NtTerminateProcess [NTDLL.@]
*
* Native applications must kill themselves when done
*/
NTSTATUS
WINAPI
NtTerminateProcess
(
HANDLE
handle
,
LONG
exit_code
)
{
return
unix_funcs
->
NtTerminateProcess
(
handle
,
exit_code
);
}
/******************************************************************************
* RtlGetCurrentPeb [NTDLL.@]
*
*/
...
...
@@ -82,118 +72,6 @@ HANDLE CDECL __wine_make_process_system(void)
return
ret
;
}
/******************************************************************************
* NtQueryInformationProcess [NTDLL.@]
* ZwQueryInformationProcess [NTDLL.@]
*
*/
NTSTATUS
WINAPI
NtQueryInformationProcess
(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
void
*
info
,
ULONG
size
,
ULONG
*
ret_len
)
{
return
unix_funcs
->
NtQueryInformationProcess
(
handle
,
class
,
info
,
size
,
ret_len
);
}
/******************************************************************************
* NtSetInformationProcess [NTDLL.@]
* ZwSetInformationProcess [NTDLL.@]
*/
NTSTATUS
WINAPI
NtSetInformationProcess
(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
void
*
info
,
ULONG
size
)
{
return
unix_funcs
->
NtSetInformationProcess
(
handle
,
class
,
info
,
size
);
}
/******************************************************************************
* NtFlushInstructionCache [NTDLL.@]
* ZwFlushInstructionCache [NTDLL.@]
*/
NTSTATUS
WINAPI
NtFlushInstructionCache
(
HANDLE
handle
,
const
void
*
addr
,
SIZE_T
size
)
{
#if defined(__x86_64__) || defined(__i386__)
/* no-op */
#elif defined(HAVE___CLEAR_CACHE)
if
(
handle
==
GetCurrentProcess
())
{
__clear_cache
(
(
char
*
)
addr
,
(
char
*
)
addr
+
size
);
}
else
{
static
int
once
;
if
(
!
once
++
)
FIXME
(
"%p %p %ld other process not supported
\n
"
,
handle
,
addr
,
size
);
}
#else
static
int
once
;
if
(
!
once
++
)
FIXME
(
"%p %p %ld
\n
"
,
handle
,
addr
,
size
);
#endif
return
STATUS_SUCCESS
;
}
/**********************************************************************
* NtFlushProcessWriteBuffers [NTDLL.@]
*/
void
WINAPI
NtFlushProcessWriteBuffers
(
void
)
{
static
int
once
=
0
;
if
(
!
once
++
)
FIXME
(
"stub
\n
"
);
}
/******************************************************************
* NtOpenProcess [NTDLL.@]
* ZwOpenProcess [NTDLL.@]
*/
NTSTATUS
WINAPI
NtOpenProcess
(
PHANDLE
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
const
CLIENT_ID
*
cid
)
{
NTSTATUS
status
;
SERVER_START_REQ
(
open_process
)
{
req
->
pid
=
HandleToULong
(
cid
->
UniqueProcess
);
req
->
access
=
access
;
req
->
attributes
=
attr
?
attr
->
Attributes
:
0
;
status
=
wine_server_call
(
req
);
if
(
!
status
)
*
handle
=
wine_server_ptr_handle
(
reply
->
handle
);
}
SERVER_END_REQ
;
return
status
;
}
/******************************************************************************
* NtResumeProcess
* ZwResumeProcess
*/
NTSTATUS
WINAPI
NtResumeProcess
(
HANDLE
handle
)
{
NTSTATUS
ret
;
SERVER_START_REQ
(
resume_process
)
{
req
->
handle
=
wine_server_obj_handle
(
handle
);
ret
=
wine_server_call
(
req
);
}
SERVER_END_REQ
;
return
ret
;
}
/******************************************************************************
* NtSuspendProcess
* ZwSuspendProcess
*/
NTSTATUS
WINAPI
NtSuspendProcess
(
HANDLE
handle
)
{
NTSTATUS
ret
;
SERVER_START_REQ
(
suspend_process
)
{
req
->
handle
=
wine_server_obj_handle
(
handle
);
ret
=
wine_server_call
(
req
);
}
SERVER_END_REQ
;
return
ret
;
}
/***********************************************************************
* restart_process
*/
...
...
@@ -243,24 +121,6 @@ NTSTATUS restart_process( RTL_USER_PROCESS_PARAMETERS *params, NTSTATUS status )
/**********************************************************************
* NtCreateUserProcess (NTDLL.@)
*/
NTSTATUS
WINAPI
NtCreateUserProcess
(
HANDLE
*
process_handle_ptr
,
HANDLE
*
thread_handle_ptr
,
ACCESS_MASK
process_access
,
ACCESS_MASK
thread_access
,
OBJECT_ATTRIBUTES
*
process_attr
,
OBJECT_ATTRIBUTES
*
thread_attr
,
ULONG
process_flags
,
ULONG
thread_flags
,
RTL_USER_PROCESS_PARAMETERS
*
params
,
PS_CREATE_INFO
*
info
,
PS_ATTRIBUTE_LIST
*
attr
)
{
return
unix_funcs
->
NtCreateUserProcess
(
process_handle_ptr
,
thread_handle_ptr
,
process_access
,
thread_access
,
process_attr
,
thread_attr
,
process_flags
,
thread_flags
,
params
,
info
,
attr
);
}
/**********************************************************************
* RtlCreateUserProcess (NTDLL.@)
*/
NTSTATUS
WINAPI
RtlCreateUserProcess
(
UNICODE_STRING
*
path
,
ULONG
attributes
,
...
...
dlls/ntdll/unix/loader.c
View file @
635e914b
...
...
@@ -1364,14 +1364,11 @@ static struct unix_funcs unix_funcs =
NtCreateMailslotFile
,
NtCreateNamedPipeFile
,
NtCreateSection
,
NtCreateUserProcess
,
NtCurrentTeb
,
NtDeleteFile
,
NtDeviceIoControlFile
,
NtDuplicateObject
,
NtFlushBuffersFile
,
NtFlushInstructionCache
,
NtFlushProcessWriteBuffers
,
NtFlushVirtualMemory
,
NtFreeVirtualMemory
,
NtFsControlFile
,
...
...
@@ -1380,7 +1377,6 @@ static struct unix_funcs unix_funcs =
NtLockVirtualMemory
,
NtMapViewOfSection
,
NtNotifyChangeDirectoryFile
,
NtOpenProcess
,
NtOpenSection
,
NtPowerInformation
,
NtProtectVirtualMemory
,
...
...
@@ -1388,7 +1384,6 @@ static struct unix_funcs unix_funcs =
NtQueryDirectoryFile
,
NtQueryFullAttributesFile
,
NtQueryInformationFile
,
NtQueryInformationProcess
,
NtQueryObject
,
NtQueryPerformanceCounter
,
NtQuerySection
,
...
...
@@ -1401,14 +1396,10 @@ static struct unix_funcs unix_funcs =
NtReadFileScatter
,
NtReadVirtualMemory
,
NtResetWriteWatch
,
NtResumeProcess
,
NtSetInformationFile
,
NtSetInformationObject
,
NtSetInformationProcess
,
NtSetSystemTime
,
NtSetVolumeInformationFile
,
NtSuspendProcess
,
NtTerminateProcess
,
NtUnlockVirtualMemory
,
NtUnmapViewOfSection
,
NtWriteFile
,
...
...
dlls/ntdll/unixlib.h
View file @
635e914b
...
...
@@ -28,7 +28,7 @@ struct msghdr;
struct
_DISPATCHER_CONTEXT
;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 8
3
#define NTDLL_UNIXLIB_VERSION 8
4
struct
unix_funcs
{
...
...
@@ -49,12 +49,6 @@ struct unix_funcs
NTSTATUS
(
WINAPI
*
NtCreateSection
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
const
LARGE_INTEGER
*
size
,
ULONG
protect
,
ULONG
sec_flags
,
HANDLE
file
);
NTSTATUS
(
WINAPI
*
NtCreateUserProcess
)(
HANDLE
*
process_handle_ptr
,
HANDLE
*
thread_handle_ptr
,
ACCESS_MASK
process_access
,
ACCESS_MASK
thread_access
,
OBJECT_ATTRIBUTES
*
process_attr
,
OBJECT_ATTRIBUTES
*
thread_attr
,
ULONG
process_flags
,
ULONG
thread_flags
,
RTL_USER_PROCESS_PARAMETERS
*
params
,
PS_CREATE_INFO
*
info
,
PS_ATTRIBUTE_LIST
*
attr
);
TEB
*
(
WINAPI
*
NtCurrentTeb
)(
void
);
NTSTATUS
(
WINAPI
*
NtDeleteFile
)(
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtDeviceIoControlFile
)(
HANDLE
handle
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
...
...
@@ -65,8 +59,6 @@ struct unix_funcs
HANDLE
dest_process
,
HANDLE
*
dest
,
ACCESS_MASK
access
,
ULONG
attributes
,
ULONG
options
);
NTSTATUS
(
WINAPI
*
NtFlushBuffersFile
)(
HANDLE
handle
,
IO_STATUS_BLOCK
*
io
);
NTSTATUS
(
WINAPI
*
NtFlushInstructionCache
)(
HANDLE
handle
,
const
void
*
addr
,
SIZE_T
size
);
void
(
WINAPI
*
NtFlushProcessWriteBuffers
)(
void
);
NTSTATUS
(
WINAPI
*
NtFlushVirtualMemory
)(
HANDLE
process
,
LPCVOID
*
addr_ptr
,
SIZE_T
*
size_ptr
,
ULONG
unknown
);
NTSTATUS
(
WINAPI
*
NtFreeVirtualMemory
)(
HANDLE
process
,
PVOID
*
addr_ptr
,
...
...
@@ -87,8 +79,6 @@ struct unix_funcs
void
*
apc_context
,
IO_STATUS_BLOCK
*
iosb
,
void
*
buffer
,
ULONG
buffer_size
,
ULONG
filter
,
BOOLEAN
subtree
);
NTSTATUS
(
WINAPI
*
NtOpenProcess
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
const
CLIENT_ID
*
id
);
NTSTATUS
(
WINAPI
*
NtOpenSection
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtPowerInformation
)(
POWER_INFORMATION_LEVEL
level
,
void
*
input
,
ULONG
in_size
,
...
...
@@ -106,8 +96,6 @@ struct unix_funcs
FILE_NETWORK_OPEN_INFORMATION
*
info
);
NTSTATUS
(
WINAPI
*
NtQueryInformationFile
)(
HANDLE
hFile
,
IO_STATUS_BLOCK
*
io
,
void
*
ptr
,
LONG
len
,
FILE_INFORMATION_CLASS
class
);
NTSTATUS
(
WINAPI
*
NtQueryInformationProcess
)(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
void
*
info
,
ULONG
size
,
ULONG
*
ret_len
);
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
);
...
...
@@ -135,18 +123,13 @@ struct unix_funcs
NTSTATUS
(
WINAPI
*
NtReadVirtualMemory
)(
HANDLE
process
,
const
void
*
addr
,
void
*
buffer
,
SIZE_T
size
,
SIZE_T
*
bytes_read
);
NTSTATUS
(
WINAPI
*
NtResetWriteWatch
)(
HANDLE
process
,
PVOID
base
,
SIZE_T
size
);
NTSTATUS
(
WINAPI
*
NtResumeProcess
)(
HANDLE
handle
);
NTSTATUS
(
WINAPI
*
NtSetInformationFile
)(
HANDLE
handle
,
IO_STATUS_BLOCK
*
io
,
void
*
ptr
,
ULONG
len
,
FILE_INFORMATION_CLASS
class
);
NTSTATUS
(
WINAPI
*
NtSetInformationObject
)(
HANDLE
handle
,
OBJECT_INFORMATION_CLASS
info_class
,
void
*
ptr
,
ULONG
len
);
NTSTATUS
(
WINAPI
*
NtSetInformationProcess
)(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
void
*
info
,
ULONG
size
);
NTSTATUS
(
WINAPI
*
NtSetSystemTime
)(
const
LARGE_INTEGER
*
new
,
LARGE_INTEGER
*
old
);
NTSTATUS
(
WINAPI
*
NtSetVolumeInformationFile
)(
HANDLE
handle
,
IO_STATUS_BLOCK
*
io
,
void
*
info
,
ULONG
length
,
FS_INFORMATION_CLASS
class
);
NTSTATUS
(
WINAPI
*
NtSuspendProcess
)(
HANDLE
handle
);
NTSTATUS
(
WINAPI
*
NtTerminateProcess
)(
HANDLE
handle
,
LONG
exit_code
);
NTSTATUS
(
WINAPI
*
NtUnlockVirtualMemory
)(
HANDLE
process
,
PVOID
*
addr
,
SIZE_T
*
size
,
ULONG
unknown
);
NTSTATUS
(
WINAPI
*
NtUnmapViewOfSection
)(
HANDLE
process
,
PVOID
addr
);
...
...
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