public void connect() { string sName = sessionUniqueAPIIdentifier(CopyStatic.SC2_API_SEMAPHORE_ID); SharpCopier.CopyStatic.SECURITY_ATTRIBUTES sec = new SharpCopier.CopyStatic.SECURITY_ATTRIBUTES(); try { IntPtr FSemaphore = CreateSemaphore(ref sec, 0, int.MaxValue, CopyStatic.SC2_API_SEMAPHORE_ID); } catch (Exception) { //check errors throw; } sName = sessionUniqueAPIIdentifier(CopyStatic.SC2_API_MUTEX_ID); IntPtr fMutex = CreateMutex(IntPtr.Zero, false, sName); if (fMutex == IntPtr.Zero) { throw new Exception("Cannot create fMutex " + sName + " : check if dll are registered"); } sName = sessionUniqueAPIIdentifier(CopyStatic.SC2_API_FILEMAPPING_ID); IntPtr fFileMapping = CreateFileMapping(IntPtr.Zero, IntPtr.Zero, CopyStatic.FileMapProtection.PageReadWrite, 0, CopyStatic.SC2_API_FILEMAPPING_SIZE, sName); if (fFileMapping == IntPtr.Zero) { throw new Exception("Cannot create fFileMapping " + sName + " : check if dll are registered"); } sName = sessionUniqueAPIIdentifier(CopyStatic.SC2_API_CLIENTEVENT_ID); IntPtr fClientEvent = CreateEvent(IntPtr.Zero, false, false, sName); if (fClientEvent == IntPtr.Zero) { throw new Exception("Cannot create fClientEvent " + sName + " : check if dll are registered"); } sName = sessionUniqueAPIIdentifier(CopyStatic.SC2_API_APIEVENT_ID); IntPtr fAPIEvent = CreateEvent(IntPtr.Zero, false, false, sName); if (fAPIEvent == IntPtr.Zero) { throw new Exception("Cannot create fAPIEvent " + sName + " : check if dll are registered"); } }
private static extern IntPtr CreateSemaphore(ref SharpCopier.CopyStatic.SECURITY_ATTRIBUTES securityAttributes, int initialCount, int maximumCount, string name);