/// <summary> /// Unlock CD drive /// </summary> /// <returns>True on success</returns> public bool UnLockCD() { if (((int)cdHandle != -1) && ((int)cdHandle != 0)) { uint Dummy = 0; PreventMediaRemoval pmr = new PreventMediaRemoval(); //NativeMethods.PREVENT_MEDIA_REMOVAL(); pmr.Lock = 1; //PreventMediaRemoval = 0; return(NativeMethods.DeviceIoControl(cdHandle, NativeMethods.IOCTL_STORAGE_MEDIA_REMOVAL, pmr, (uint)Marshal.SizeOf(pmr), IntPtr.Zero, 0, ref Dummy, IntPtr.Zero) != 0); } else { return(false); } }
public extern static int DeviceIoControl(IntPtr hDevice, uint IoControlCode, [In] PreventMediaRemoval InMediaRemoval, uint InBufferSize, IntPtr OutBuffer, uint OutBufferSize, ref uint BytesReturned, IntPtr Overlapped);
/// <summary> /// Unlock CD drive /// </summary> /// <returns>True on success</returns> public bool UnLockCD() { if (((int)cdHandle != -1) && ((int)cdHandle != 0)) { uint Dummy = 0; PreventMediaRemoval pmr = new PreventMediaRemoval(); //NativeMethods.PREVENT_MEDIA_REMOVAL(); pmr.Lock = 1; //PreventMediaRemoval = 0; return NativeMethods.DeviceIoControl(cdHandle, NativeMethods.IOCTL_STORAGE_MEDIA_REMOVAL, pmr, (uint)Marshal.SizeOf(pmr), IntPtr.Zero, 0, ref Dummy, IntPtr.Zero) != 0; } else { return false; } }