Module: wine Branch: master Commit: f7c48da359a7b83e6a0ef35fdea89fcc613a48b0 URL: https://source.winehq.org/git/wine.git/?a=commit;h=f7c48da359a7b83e6a0ef35fd...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jan 28 11:17:45 2021 +0100
ntdll: Implement DbgUiGet/SetThreadDebugObject().
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/ntdll.spec | 4 ++-- dlls/ntdll/process.c | 16 ++++++++++++++++ include/winternl.h | 2 ++ 3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 2f1d4904111..285b719f2d5 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -38,10 +38,10 @@ @ stub DbgUiContinue @ stub DbgUiConvertStateChangeStructure # @ stub DbgUiDebugActiveProcess -# @ stub DbgUiGetThreadDebugObject +@ stdcall DbgUiGetThreadDebugObject() @ stdcall DbgUiIssueRemoteBreakin(long) @ stdcall DbgUiRemoteBreakin(ptr) -# @ stub DbgUiSetThreadDebugObject +@ stdcall DbgUiSetThreadDebugObject(long) # @ stub DbgUiStopDebugging @ stub DbgUiWaitStateChange @ stdcall DbgUserBreakPoint() diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c index 4cf83753a79..d8280277418 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c @@ -118,6 +118,22 @@ NTSTATUS WINAPI RtlCreateUserProcess( UNICODE_STRING *path, ULONG attributes, &create_info, attr ); }
+/*********************************************************************** + * DbgUiGetThreadDebugObject (NTDLL.@) + */ +HANDLE WINAPI DbgUiGetThreadDebugObject(void) +{ + return NtCurrentTeb()->DbgSsReserved[1]; +} + +/*********************************************************************** + * DbgUiSetThreadDebugObject (NTDLL.@) + */ +void WINAPI DbgUiSetThreadDebugObject( HANDLE handle ) +{ + NtCurrentTeb()->DbgSsReserved[1] = handle; +} + /*********************************************************************** * DbgUiRemoteBreakin (NTDLL.@) */ diff --git a/include/winternl.h b/include/winternl.h index 6de71e0e206..ac63567dad3 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -3020,8 +3020,10 @@ typedef struct _PS_CREATE_INFO NTSYSAPI void WINAPI DbgBreakPoint(void); NTSYSAPI NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...); NTSYSAPI NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...); +NTSYSAPI HANDLE WINAPI DbgUiGetThreadDebugObject(void); NTSYSAPI NTSTATUS WINAPI DbgUiIssueRemoteBreakin(HANDLE); NTSYSAPI void WINAPI DbgUiRemoteBreakin(void*); +NTSYSAPI void WINAPI DbgUiSetThreadDebugObject(HANDLE); NTSYSAPI void WINAPI DbgUserBreakPoint(void); NTSYSAPI NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG); NTSYSAPI NTSTATUS WINAPI LdrAddDllDirectory(const UNICODE_STRING*,void**);