コード例 #1
0
ファイル: CDDrive.cs プロジェクト: windygu/alexandrialibrary
 /// <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);
     }
 }
コード例 #2
0
 public extern static int DeviceIoControl(IntPtr hDevice, uint IoControlCode, [In] PreventMediaRemoval InMediaRemoval, uint InBufferSize, IntPtr OutBuffer, uint OutBufferSize, ref uint BytesReturned, IntPtr Overlapped);
コード例 #3
0
ファイル: CDDrive.cs プロジェクト: bossaia/alexandrialibrary
		/// <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;
			}
		}