このトピックでは、KSStudio ユーティリティを使用して WDM オーディオの問題をトラブルシューティングするための 3 つの使用例を示します。 詳細については、「 KSStudio ユーティリティ」を参照してください。
例 1: オーディオが機能しない
シナリオ:
開発者はオーディオ デバイス ドライバーをインストールしますが、プレーヤー アプリ (Windows Media Player など) は、使用できるオーディオ デバイスがないことを示します。
トラブルシューティング:
デバイスはデバイス マネージャーに表示されますか? "はい" の場合は、手順 (2) に進みます。それ以外の場合は、デバイスのインストールに使用される INF ファイルに問題があります。
デバイスに黄色の感嘆符がありますか? "はい" の場合、デバイスは正常にインストールされませんでした (詳細についてはデバイスのプロパティを表示します)。それ以外の場合は、手順 (3) に進みます。
KSStudio を起動します。 クラス KSCATEGORY_AUDIOとKSCATEGORY_AUDIO_DEVICEのフィルターを列挙します。 オーディオ デバイスに対応するフィルターは、KSCATEGORY_AUDIOの下に表示されますか? "はい" の場合は、goto (4) に進みます。それ以外の場合は、フィルター ファクトリが正しく登録されていません。 この最も一般的な原因は、INF の XXX guid と、フィルターのソース コードの XXX guid の間の不一致です。
KSCATEGORY_AUDIO_DEVICE フィルターは、システム構築オーディオ グラフの一部を表す仮想フィルターです。 詳細については、「 WDM オーディオ コンポーネント と 仮想オーディオ デバイスKernel-Mode を参照してください。 一般に、これらの仮想フィルターは、上位レベルの API がアクセスする対象となります。
先に述べた_AUDIOフィルター ファクトリに対応する仮想フィルター ファクトリは存在しますか(存在すればすぐにわかりますか)? 「はい」の場合は (5) に進みます。そうでない場合は、sysaudio がドライバーの問題を原因として拒否します。 対応する_AUDIOデバイスをインスタンス化します。 これにより、KSStudio によってフィルターがプロファイリングされます。 ログ ウィンドウでエラー (赤いテキスト) を探します。 [インスタンス化されたオブジェクト] ビューでフィルターを調べます。 動作しているフィルター (おそらく DDK サンプル ドライバーの 1 つ、または別の製造元のドライバー) と比較します。
- mmsys.cpl 実行し、開発中のフィルターに対応するデバイスが表示されているかどうかを確認します。 これは、MMSystem API を介したデバイスのビューです。 ここにデバイスが表示されない場合は、MMSystem がデバイスを拒否する原因となったデバイスについて特異な点があります。 KSStudio に戻り、デバイスに対応するKSCATEGORY_AUDIO_DEVICE仮想フィルター ファクトリをインスタンス化します。 ログ ウィンドウでエラー (赤いテキスト) を探します。 [インスタンス化されたオブジェクト] ビューでフィルターを調べます。 動作しているフィルター (WDK サンプル オーディオ ドライバーのいずれか、または別の製造元のドライバー) と比較します。
例 2: オーディオ ミキサーラインがありません
シナリオ:
オーディオ デバイスがインストールされています。 SndVol32 (またはその他のミキサー アプリケーション) から 1 つ以上のミキサーラインが欠けている
トラブルシューティング:
フィルターのトポロジは KSStudio で正しく表示されますか? KSStudio を起動し、KSCATEGORY_AUDIOを列挙します。 トポロジ フィルターをインスタンス化し、オブジェクト トポロジ ビューの [ノードの表示] オプションを選択します。 フィルター トポロジは正しく表示されますか? その場合は、対応するKSCATEGORY_AUDIO_DEVICEフィルターに対して繰り返します。 このトポロジが (2) に行くのが妥当と思われる場合は、トポロジ フィルターに問題があり、オーディオ スタック内の上位のコンポーネントへのトポロジの表現が妨げられます。 フィルター トポロジをミキサーラインに変換する方法の詳細については、DDK のドキュメントを参照してください。
MixApp でミキサーラインは期待どおりに表示されますか? MixApp は、非常にシンプルで便利な Windows SDK サンプル アプリです。 ミキサーラインが MixApp で正しく見えるが、以前に引用した問題のあるミキサー アプリケーションでは見つからない場合は、アプリのバグである可能性があります。
例 3: オーディオ ミキサー コントロールが見つからないか、機能していない
シナリオ:
ミキサー コントロール (MMSystem ミキサー API) が表示されないか、SndVol32 または別のミキサー アプリケーションで動作しないように見えます。
トラブルシューティング:
上記の例 2 のトラブルシューティングを行います。
ハードウェア イベントのサポートは KSStudio で動作するように見えますか? KSEVENT_CONTROL_CHANGE イベントをサポートするノードまたはピンを見つけて、 KSStudio - KSProperties とイベントの説明に従って有効にします。 ハードウェア コントロールを切り替えます。 これにより、イベント電球アイコンが点滅します。