public UnifiedBlockingObject(CRITICAL_SECTION section, ulong address) : this(BlockingObjectOrigin.StackWalker) { OwnerOSThreadIds.Add((uint)section.OwningThread); Reason = UnifiedBlockingReason.CriticalSection; Type = UnifiedBlockingType.CriticalSectionObject; Handle = address; }
internal static extern bool SleepConditionVariableCS(ref CONDITION_VARIABLE ConditionVariable, ref CRITICAL_SECTION CriticalSection, int dwMilliseconds);
public static extern int TryEnterCriticalSection(CRITICAL_SECTION lpCriticalSection);
public static extern void LeaveCriticalSection(CRITICAL_SECTION lpCriticalSection);
public static extern void InitializeCriticalSection(CRITICAL_SECTION lpCriticalSection);
internal static extern void DeleteCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
internal static extern void InitializeCriticalSection(out CRITICAL_SECTION lpCriticalSection);
[DllImport("kernel32.dll")] static extern void LeaveCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
internal static extern unsafe void DeleteCriticalSection(CRITICAL_SECTION* lpCriticalSection);
internal static unsafe extern void LeaveCriticalSection(CRITICAL_SECTION* lpCriticalSection);
internal static extern unsafe void InitializeCriticalSectionEx(CRITICAL_SECTION* lpCriticalSection, int dwSpinCount, int flags);
public static extern bool TryEnterCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
public static extern void LeaveCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
static internal unsafe extern void DeleteCriticalSection(CRITICAL_SECTION* lpCriticalSection);