none
サウンドUMDFの作成 RRS feed

  • 質問

  • サウンド操作のためのデバイスドライバをWDFのユーザモード(UMDF)で作成したいと思っています。
    OSはWindowsXPです。

    まずは、WDKの「src\general\echo\umdf」にあるUMDFのサンプルソースを改造して、XPのデバイス
    マネージャにサウンドデバイスとして認識させアプリからもこのドライバを使えるようにしたい
    と考えていますがうまくいきません。

    手順は下記の通りです。

    (1)上記サンプルソース内のinfファイルのデバイスクラスを下記の様に変更
      Class=MEDIA
      ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
      ※上記以外、dllファイル名や各セクション名はとりあえずサンプルのままです。

    (2)WDKでデバイスドライバをビルド
      dll等が作成されます。

    (3)WDKに付属のDPInstにてドライバをインストール
      インストール自体は問題なく終了します。

      ・インストール後、レジストリには下記のパスに登録されます。
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DIFx\
         DriverStore\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
           DIFx\DriverStore\wudfechodr_18F32CC535604744D3701AE05332549DE9698129

      ・ファイル類(自作dll,inf,WudfUpdate_01009.dll)は下記にコピーされます。
        C:\WINDOWS\system32\DRVSTORE\wudfechodr_18F32CC535604744D3701AE05332549DE9698129

    この後、デバイスマネージャで確認して上記ドライバが参照できることを期待しています
    が、ドライバは参照できません(表示→非表示のデバイスを表示で確認しても同様)。

    ここで作成したドライバが見えれば、アプリケーションからもドライバを使えるようになる
    と期待しているのですが。


    尚、UMDFによるサウンド用デバイスドライバのサンプルがあれば、まずはそれを参考にする
    のですが良いサンプルをご存じないでしょうか?

    • 移動 Mike Wang (MSCS) 2012年10月2日 12:58 (移動元:Windows デバイスドライバー開発)
    2010年8月3日 9:11

回答

  • まず、「サウンド操作のためのデバイスドライバ」というものが何をするものなのか、何故UMDFで開発しようと思ったのかというのがよくわからないのですが、サウンド操作が目的であれば、デバイスドライバでは無く、DirectX Audio (旧Direct Sound) を使用するのが一般的だと思います。

    Audioデバイスやチューナーデバイス等をWindowsに接続するためのデバイスドライバはありますが、これらは「デバイスを接続すること」と、「デバイスを一般的なアプリケーションから利用できるようにすること」が目的であって、サウンド操作を目的としたものではありません。

    それからUMDFでのドライバ開発には結構な制限があります。以下の Devices Supported by the UMDF のページに載っているものが、UMDFでの開発に向いていると言えます。
    http://msdn.microsoft.com/en-us/library/ff554625(v=VS.85).aspx

    上記からリンクしている以下の Choosing a Driver Model のページが示す様に、Audio devices のドライバはAVStream, PortClsで作成する必要があります。
    http://msdn.microsoft.com/en-us/library/ff554652(v=VS.85).aspx

    そういう訳で今のところは、UMDFによるサウンド用デバイスドライバのサンプルはありません。Audioドライバのサンプルはご存知のように、src\audioの下に沢山あります。

     

    2010年8月4日 14:57
    モデレータ

すべての返信

  • 自己レスです。

    いろいろ試したところ、手順(3)のインストールでDPInstではなく、コントロールパネル→ハードウェアの追加による

    手順に変更したところ自作ドライバがデバイスマネージャ上に表示されるようになりました。

     

    但し、その後サウンドレコーダなどから自作ドライバを使うために、オーディオのプロパティで「音の再生」、「録音」などの

    ドライバのリスト(既定のデバイスのリスト)を切り替えようとするのですが、自作ドライバはこのリストには相変わらず表示

    されません。

     

    デバイスマネージャには表示されてもオーディオのプロパティには表示されのは何か(INFファイル?)設定が不足している

    と思うのですがその理由がわかりません。

    お手数ですが、ご回答をよろしくお願いします。

     

    2010年8月4日 6:08
  • まず、「サウンド操作のためのデバイスドライバ」というものが何をするものなのか、何故UMDFで開発しようと思ったのかというのがよくわからないのですが、サウンド操作が目的であれば、デバイスドライバでは無く、DirectX Audio (旧Direct Sound) を使用するのが一般的だと思います。

    Audioデバイスやチューナーデバイス等をWindowsに接続するためのデバイスドライバはありますが、これらは「デバイスを接続すること」と、「デバイスを一般的なアプリケーションから利用できるようにすること」が目的であって、サウンド操作を目的としたものではありません。

    それからUMDFでのドライバ開発には結構な制限があります。以下の Devices Supported by the UMDF のページに載っているものが、UMDFでの開発に向いていると言えます。
    http://msdn.microsoft.com/en-us/library/ff554625(v=VS.85).aspx

    上記からリンクしている以下の Choosing a Driver Model のページが示す様に、Audio devices のドライバはAVStream, PortClsで作成する必要があります。
    http://msdn.microsoft.com/en-us/library/ff554652(v=VS.85).aspx

    そういう訳で今のところは、UMDFによるサウンド用デバイスドライバのサンプルはありません。Audioドライバのサンプルはご存知のように、src\audioの下に沢山あります。

     

    2010年8月4日 14:57
    モデレータ
  • Atomu Hidaka-さん

    ご回答ありがとうございました。

    UMDFでドライバを作成する場合は向き不向きを考慮しなければならないということですね。

    また、UMDFはサウンドデバイスを処理するのには向いていないのでサンプルも無いということも承知しました。

    WDK付属のオーディオのサンプルを参考に作成してみたいと思います。

    ありがとうございました。

     

    2010年8月6日 8:03
  • 時間が経ってしまいましたが、問題が解決しているようですので回答済としてマークさせて頂きました。
    2012年7月7日 14:12
    モデレータ