私のユーザーは最近、厄介な問題を抱えています。
基本的に、CD、DVD、または USB ドライブから画像を取得してネットワークにコピーするアプリがあります。
コピーが完了すると、自動的にディスクが排出されます。
問題は、ディスクのコピーが完了して取り出しに行くときに、非常に長い時間がかかることです。私のユーザーの 1 人は、それが閉じて排出されるまで 1 時間待ったと言いました。
これが発生した他のディスクでは、ユーザーが物理的なイジェクト ボタンを押しようとすると、Windows 7 の吹き出しがポップアップし、セッションが終了するまで待ってからイジェクトするように指示されます。
ディスクに何も書き込まれておらず、ディスクが CD-RW でも DVD-RW でもないため、ディスクのセッションを閉じる必要がある理由がわかりません。
最初に CD を焼いた人が何らかの形で失敗した可能性はありますか?
今日までに 250 枚以上のディスクを確認しましたが、これはそのうちの 2 枚でのみ発生したため、これらのディスクに何か問題があると思われます。
ドライブを取り出す私の方法は次のとおりです。
private void Eject()
{
try
{
VolumeDeviceClass volumeDeviceClass = new VolumeDeviceClass();
foreach (Volume device in volumeDeviceClass.Devices)
{
if (!device.IsUsb)
continue;
if (device.LogicalDrive == null || (device.LogicalDrive.Length == 0))
continue;
/* Should get down here if our device is a usb drive */
device.Eject(true);
}
var sb = new StringBuilder();
mciSendString("open " + _driveName.Substring(0, 2) + " type cdaudio alias cddrive", sb, 127, IntPtr.Zero);
mciSendString("set cddrive door open", sb, 127, IntPtr.Zero);
}
catch (Exception ex)
{
ex.Log(ex.Message, Logger.Severity.Error, "Error ejecting CD drive: " + Environment.MachineName);
}
}