none
ドライブにセットされたDiskのメディアタイプを調べる方法 RRS feed

  • 質問

  • DVDドライブに挿入されたDiskのメディアタイプ(CD-ROM?DVD-R?DVD+R?等)を簡単に調べる方法はありませんか?

     

    IMAPIというのがあるようですが、COM I/FでC++のサンプルになっていて。。

    (できれば、C#で利用したいのですが。。)

    また、このAPIはVistaのみのようなので。

    XPでも利用できるものとして、IMAPIVer1があるようですが、MediaTypeが

    CD-ROM系しかサポートされていないみたいで。。。

     

    なにかよい方法をご存じの方、おしえていただけないでしょうか。

    当方の希望はC#でコーディングしたいのです。

     

    よろしくお願いします。

    2007年7月18日 9:29

すべての返信

  • SPTI(SCSI Pass Through Interface)を使用して様々なSCSIコマンドを発行する事ができます。

    DeviceIoControl() APIで、第二引数(dwIoControlCode)にIOCTL_SCSI_PASS_THROUGHを

    渡してあげれば良いです。

    私は普段VC++で利用していますが、C#やVB.NETからでもAPIを呼び出すコードを書けば

    使えると思います。

     

    メディアタイプの取得は、例えばGET CONFIGURATION(46h)のコマンドを発行して返送データの

    +6~7バイト目にあるCurrent Profileの値を見れば分かります。

    (もちろんメディアがイニシャル完了してからです)

    SCSIコマンドの詳細は、MMCやMt. Fuji等のコマンド仕様書をご覧になって下さい。

    2007年7月19日 12:52
  • yamazenさん、情報ありがとうございました。

    ご提供いただいた情報を元に、調べた結果、メディアタイプを取得することができました。

    SPTIの各パラメータ設定はよくわからないのですが、見よう見まねで、動作させることができました。

     

    結局、C++/CLIを利用しました。(C#から呼び出しやすくするため)

     

    情報提供、感謝します。

    2007年7月20日 11:33