From 700513f28e4844cbfc40b3ebf1b77cf121b71e71 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 2 Oct 2014 19:44:31 +0200 Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging branch name and version. --- dlls/ntdll/loader.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 587c87bbfc0..05b40326d82 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay); WINE_DECLARE_DEBUG_CHANNEL(snoop); WINE_DECLARE_DEBUG_CHANNEL(loaddll); WINE_DECLARE_DEBUG_CHANNEL(imports); +WINE_DECLARE_DEBUG_CHANNEL(winediag); #ifdef _WIN64 #define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232) @@ -3487,6 +3488,7 @@ static void process_breakpoint(void) __ENDTRY } +extern const char * CDECL wine_get_version(void); /****************************************************************** * LdrInitializeThunk (NTDLL.@) @@ -3497,6 +3499,9 @@ static void process_breakpoint(void) void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 ) { static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits); + OBJECT_ATTRIBUTES staging_event_attr; + UNICODE_STRING staging_event_string; + HANDLE staging_event; static int attach_done; int i; NTSTATUS status; @@ -3515,6 +3520,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR entry = (void **)&context->u.s.X0; #endif + RtlInitUnicodeString( &staging_event_string, L"\\__wine_staging_warn_event" ); + InitializeObjectAttributes( &staging_event_attr, &staging_event_string, OBJ_OPENIF, NULL, NULL ); + if (NtCreateEvent( &staging_event, EVENT_ALL_ACCESS, &staging_event_attr, NotificationEvent, FALSE ) == STATUS_SUCCESS) + { + FIXME_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version()); + FIXME_(winediag)("Please mention your exact version when filing bug reports on winehq.org.\n"); + } + else + WARN_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version()); + if (process_detaching) NtTerminateThread( GetCurrentThread(), 0 ); RtlEnterCriticalSection( &loader_section ); -- 2.28.0