ntdll: Add stub for RtlGetUnloadEventTrace.

Louis Lenders xerox.xerox2000x at gmail.com
Thu Sep 28 05:19:31 CDT 2017


Hi, this fixes a crash in https://bugs.winehq.org/show_bug.cgi?id=42997

The function is documented here:
https://msdn.microsoft.com/en-us/library/bb432428(v=vs.85).aspx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20170928/4f4eb025/attachment-0001.html>
-------------- next part --------------
From ccd7bb00d28c7ce653052678df6949dc4f34ba11 Mon Sep 17 00:00:00 2001
From: Louis Lenders <xerox.xerox2000x at gmail.com>
Date: Tue, 26 Sep 2017 23:44:00 +0200
Subject: [PATCH] ntdll: Add stub for RtlGetUnloadEventTrace

Signed-off-by: Louis Lenders <xerox.xerox2000x at gmail.com>
---
 dlls/ntdll/ntdll.spec   |  2 +-
 dlls/ntdll/ntdll_misc.h | 14 ++++++++++++++
 dlls/ntdll/rtl.c        |  9 +++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 8f5357b..62726f8 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -673,7 +673,7 @@
 # @ stub RtlGetSecurityDescriptorRMControl
 # @ stub RtlGetSetBootStatusData
 @ stdcall RtlGetThreadErrorMode()
-# @ stub RtlGetUnloadEventTrace
+@ stdcall RtlGetUnloadEventTrace()
 @ stdcall RtlGetUnloadEventTraceEx(ptr ptr ptr)
 @ stub RtlGetUserInfoHeap
 @ stdcall RtlGetVersion(ptr)
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 782c822..e48e665 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -34,6 +34,8 @@
 
 #define MAX_DOS_DRIVES 26
 
+#define RTL_UNLOAD_EVENT_TRACE_NUMBER 64
+
 #if defined(__i386__) || defined(__x86_64__)
 static const UINT_PTR page_size = 0x1000;
 #else
@@ -46,6 +48,18 @@ struct drive_info
     ino_t ino;
 };
 
+typedef struct _RTL_UNLOAD_EVENT_TRACE
+{
+    PVOID BaseAddress;
+    SIZE_T SizeOfImage;
+    ULONG Sequence;
+    ULONG TimeDateStamp;
+    ULONG CheckSum;
+    WCHAR ImageName[32];
+} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE;
+
+RTL_UNLOAD_EVENT_TRACE RtlpUnloadEventTrace[RTL_UNLOAD_EVENT_TRACE_NUMBER];
+
 extern NTSTATUS close_handle( HANDLE ) DECLSPEC_HIDDEN;
 extern ULONG_PTR get_system_affinity_mask(void) DECLSPEC_HIDDEN;
 
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 802b9f1..d18642e 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -1680,3 +1680,12 @@ void WINAPI RtlGetUnloadEventTraceEx(ULONG **size, ULONG **count, VOID **trace)
     if (count) *count = &dummy_count;
     if (trace) *trace = NULL;
 }
+
+/*********************************************************************
+ *           RtlGetUnloadEventTrace [NTDLL.@]
+ */
+PRTL_UNLOAD_EVENT_TRACE WINAPI RtlGetUnloadEventTrace(void)
+{
+    FIXME("stub!\n");
+    return NULL;
+}
-- 
2.7.4



More information about the wine-patches mailing list