From: Paul Gofman pgofman@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56661 --- dlls/ntdll/sync.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index efc820624bb..274e29d1852 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -187,12 +187,19 @@ static inline NTSTATUS wait_semaphore( RTL_CRITICAL_SECTION *crit, int timeout ) } }
+static ULONG crit_sect_default_flags(void) +{ + if (NtCurrentTeb()->Peb->OSMajorVersion > 6 || + (NtCurrentTeb()->Peb->OSMajorVersion == 6 && NtCurrentTeb()->Peb->OSMinorVersion >= 2)) return 0; + return RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO; +} + /****************************************************************************** * RtlInitializeCriticalSection (NTDLL.@) */ NTSTATUS WINAPI RtlInitializeCriticalSection( RTL_CRITICAL_SECTION *crit ) { - return RtlInitializeCriticalSectionEx( crit, 0, 0 ); + return RtlInitializeCriticalSectionEx( crit, 0, crit_sect_default_flags() ); }
@@ -201,7 +208,7 @@ NTSTATUS WINAPI RtlInitializeCriticalSection( RTL_CRITICAL_SECTION *crit ) */ NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount( RTL_CRITICAL_SECTION *crit, ULONG spincount ) { - return RtlInitializeCriticalSectionEx( crit, spincount, 0 ); + return RtlInitializeCriticalSectionEx( crit, spincount, crit_sect_default_flags() ); }