[PATCH v2] ntoskrnl.exe: Add NtTraceControl/ZwTraceControl stubs

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Wed Aug 25 03:04:58 CDT 2021


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/ntdll/ntdll.spec               |  2 ++
 dlls/ntdll/unix/server.c            |  9 +++++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec |  2 ++
 dlls/wow64/sync.c                   | 14 ++++++++++++++
 dlls/wow64/syscall.h                |  1 +
 5 files changed, 28 insertions(+)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 1bff52a299d..c3d17d989ac 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -414,6 +414,7 @@
 @ stdcall -syscall NtTerminateProcess(long long)
 @ stdcall -syscall NtTerminateThread(long long)
 @ stdcall -syscall NtTestAlert()
+@ stdcall -syscall NtTraceControl(long ptr long ptr long long)
 # @ stub NtTraceEvent
 # @ stub NtTranslateFilePath
 @ stdcall -syscall NtUnloadDriver(ptr)
@@ -1435,6 +1436,7 @@
 @ stdcall -private -syscall ZwTerminateProcess(long long) NtTerminateProcess
 @ stdcall -private -syscall ZwTerminateThread(long long) NtTerminateThread
 @ stdcall -private -syscall ZwTestAlert() NtTestAlert
+@ stdcall -private -syscall ZwTraceControl(long ptr long ptr long long) NtTraceControl
 # @ stub ZwTraceEvent
 # @ stub ZwTranslateFilePath
 @ stdcall -private -syscall ZwUnloadDriver(ptr) NtUnloadDriver
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 986eb6c3250..05fae06fc37 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -721,6 +721,15 @@ NTSTATUS WINAPI NtTestAlert(void)
     return STATUS_SUCCESS;
 }
 
+/***********************************************************************
+ *              NtTraceControl  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtTraceControl(ULONG code, void *inbuf, ULONG inbuf_len, void *outbuf, ULONG outbuf_len, ULONG *size)
+{
+    FIXME("code %u, inbuf %p, inbuf_len %u, outbuf %p, outbuf_len %u, size %p\n", code, inbuf, inbuf_len,
+            outbuf, outbuf_len, size);
+    return STATUS_SUCCESS;
+}
 
 /***********************************************************************
  *           server_queue_process_apc
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index f51833b91a0..071dae6ceca 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -818,6 +818,7 @@
 @ stdcall NtSetSecurityObject(long long ptr)
 @ stdcall NtSetVolumeInformationFile(long ptr ptr long long)
 @ stdcall NtShutdownSystem(long)
+@ stdcall NtTraceControl(long ptr long ptr long long)
 @ stub NtTraceEvent
 @ stdcall NtUnlockFile(long ptr ptr ptr ptr)
 @ stub NtVdmControl
@@ -1514,6 +1515,7 @@
 @ stdcall -private ZwSetVolumeInformationFile(long ptr ptr long long) NtSetVolumeInformationFile
 @ stdcall -private ZwTerminateJobObject(long long) NtTerminateJobObject
 @ stdcall -private ZwTerminateProcess(long long) NtTerminateProcess
+@ stdcall -private ZwTraceControl(long ptr long ptr long long) NtTraceControl
 @ stub ZwTranslateFilePath
 @ stdcall ZwUnloadDriver(ptr)
 @ stdcall -private ZwUnloadKey(ptr) NtUnloadKey
diff --git a/dlls/wow64/sync.c b/dlls/wow64/sync.c
index 2560fc10a0a..e4a58eeef6d 100644
--- a/dlls/wow64/sync.c
+++ b/dlls/wow64/sync.c
@@ -1480,6 +1480,20 @@ NTSTATUS WINAPI wow64_NtTestAlert( UINT *args )
     return NtTestAlert();
 }
 
+/**********************************************************************
+ *           wow64_NtTraceControl
+ */
+NTSTATUS WINAPI wow64_NtTraceControl( UINT *args )
+{
+    ULONG code = get_ulong( &args );
+    void *inbuf = get_ptr( &args );
+    ULONG inbuf_len = get_ulong( &args );
+    void *outbuf = get_ptr( &args );
+    ULONG outbuf_len = get_ulong( &args );
+    ULONG *size = get_ptr( &args );
+
+    return NtTraceControl(code, inbuf, inbuf_len, outbuf, outbuf_len, size);
+}
 
 /**********************************************************************
  *           wow64_NtWaitForDebugEvent
diff --git a/dlls/wow64/syscall.h b/dlls/wow64/syscall.h
index d6c1b7c74fa..a565e9cda3a 100644
--- a/dlls/wow64/syscall.h
+++ b/dlls/wow64/syscall.h
@@ -228,6 +228,7 @@
     SYSCALL_ENTRY( NtTerminateProcess ) \
     SYSCALL_ENTRY( NtTerminateThread ) \
     SYSCALL_ENTRY( NtTestAlert ) \
+    SYSCALL_ENTRY( NtTraceControl ) \
     SYSCALL_ENTRY( NtUnloadDriver ) \
     SYSCALL_ENTRY( NtUnloadKey ) \
     SYSCALL_ENTRY( NtUnlockFile ) \
-- 
2.32.0




More information about the wine-devel mailing list