private static void RemoveState(uint threadId) { var ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CRYPTO_THREADID))); Native.CRYPTO_THREADID_set_numeric(ptr, threadId); Native.ERR_remove_thread_state(ptr); Marshal.FreeHGlobal(ptr); }
private static void OnThreadId(IntPtr tid) { var threadId = (uint)Thread.CurrentThread.ManagedThreadId; if (!_threadIDs.Contains(threadId)) { _threadIDs.Add(threadId); } Native.CRYPTO_THREADID_set_numeric(tid, threadId); }