public static IntPtr initializeSemaphore(uint initial_value) { var p = new MULTIWAIT_ID {lockObject = new object()}; IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(p)); Marshal.StructureToPtr(p, ptr, true); return ptr; }
public static IntPtr initializeMultiWait() { MULTIWAIT_ID p = new MULTIWAIT_ID { lockObject = new object() }; IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(p)); Marshal.StructureToPtr(p, ptr, true); return ptr; }