none
Windows2012で、DVD-RAMディスクのイジェクトができない場合があります RRS feed

  • 質問

  • 前提条件として、Windows2012で、BackupOperatorsとPowerUsers、Usersグループに属するユーザーで、以下の32Bitプログラムを実行します。

    32Bitプログラムは、DVD-RAMに対して、一般的な関数CreateFileを使い、ファイルを生成して、データを書き込み、最後に閉じます。次に、メディアをイジェクトを実行しますが、イジェクトしません。ちなみに、DVD-RAMへのアクセスランプが消えるまで待って、イジェクト処理を実行させると、イジェクトします。ファイルへの書き込みが、遅延されているのかと思い、FILE_FLAG_WRITE_THROUGHをCreateFileでし指定しましたが、結果は変わりません。

    なお、管理者モードで実行すれば、イジェクトします。どなたか、回避策をご存知でしたら教えてください。お願いします。

    このプログラムは、Windows8では正常に動作してメディアがイジェクトされます。また、UACオフしたWindows7、2008Serverでも動作します。

    イジェクトには、以下の関数を使っています(MS社のサンプルコードを参考にしてます)

    DeviceIoControl( hVolume,
                                IOCTL_STORAGE_EJECT_MEDIA,
                                NULL, 0,
                                NULL, 0,
                                &dwBytesReturned,
                                NULL);

    2013年7月2日 1:08