Signed-off-by: Alistair Leslie-Hughes leslie_alistair@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 ) \