Alistair Leslie-Hughes : ntdll: Add NtTraceControl/ZwTraceControl stubs.
Alexandre Julliard
julliard at winehq.org
Wed Aug 25 15:21:43 CDT 2021
Module: wine
Branch: master
Commit: 16a7976de968b668bc970be4dc3bb5506bed2a34
URL: https://source.winehq.org/git/wine.git/?a=commit;h=16a7976de968b668bc970be4dc3bb5506bed2a34
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed Aug 25 18:04:58 2021 +1000
ntdll: Add NtTraceControl/ZwTraceControl stubs.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/ntdll.spec | 2 ++
dlls/ntdll/unix/debug.c | 15 +++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 ++
dlls/wow64/sync.c | 16 ++++++++++++++++
dlls/wow64/syscall.h | 1 +
include/winternl.h | 3 ++-
6 files changed, 38 insertions(+), 1 deletion(-)
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/debug.c b/dlls/ntdll/unix/debug.c
index d43cdaeb917..a2a63b5a9f4 100644
--- a/dlls/ntdll/unix/debug.c
+++ b/dlls/ntdll/unix/debug.c
@@ -34,6 +34,8 @@
# include <unistd.h>
#endif
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
#include "windef.h"
#include "winnt.h"
#include "winternl.h"
@@ -42,6 +44,7 @@
WINE_DECLARE_DEBUG_CHANNEL(pid);
WINE_DECLARE_DEBUG_CHANNEL(timestamp);
+WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
struct debug_info
{
@@ -328,3 +331,15 @@ void dbg_init(void)
options[nb_debug_options] = default_option;
init_done = TRUE;
}
+
+
+/***********************************************************************
+ * 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;
+}
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..0078508fc7f 100644
--- a/dlls/wow64/sync.c
+++ b/dlls/wow64/sync.c
@@ -1481,6 +1481,22 @@ NTSTATUS WINAPI wow64_NtTestAlert( UINT *args )
}
+/**********************************************************************
+ * 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 ) \
diff --git a/include/winternl.h b/include/winternl.h
index 06f00740e43..bc70121ac28 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -4009,7 +4009,7 @@ NTSYSAPI NTSTATUS WINAPI NtSetEvent(HANDLE,LONG*);
NTSYSAPI NTSTATUS WINAPI NtSetHighEventPair(HANDLE);
NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowEventPair(HANDLE);
NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowThread(VOID);
-NTSYSAPI NTSTATUS WINAPI NtSetInformationDebugObject(HANDLE,DEBUGOBJECTINFOCLASS,PVOID,ULONG,ULONG*);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationDebugObject(HANDLE,DEBUGOBJECTINFOCLASS,PVOID,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS);
NTSYSAPI NTSTATUS WINAPI NtSetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG);
NTSYSAPI NTSTATUS WINAPI NtSetInformationKey(HANDLE,const int,PVOID,ULONG);
@@ -4045,6 +4045,7 @@ NTSYSAPI NTSTATUS WINAPI NtTerminateJobObject(HANDLE,NTSTATUS);
NTSYSAPI NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG);
NTSYSAPI NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG);
NTSYSAPI NTSTATUS WINAPI NtTestAlert(VOID);
+NTSYSAPI NTSTATUS WINAPI NtTraceControl(ULONG,void*,ULONG,void*,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *);
NTSYSAPI NTSTATUS WINAPI NtUnloadKey(POBJECT_ATTRIBUTES);
NTSYSAPI NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE);
More information about the wine-cvs
mailing list