次の方法で共有


2D ピンと 3D ピンの混在をサポート

WDM オーディオ ドライバーが 2D ピンと 3D ピンの混合をサポートしている場合、3D ピンを 2D ピンとして使用することはできますが、その逆はできません。 DirectSound が 2D ピンを必要とする場合、ドライバーから利用可能な 3D ピンがあれば、その目的のために未使用の 3D ピンを置き換えることができます。 ただし、DirectSound が 3D ピンを必要とする場合、検索中に検出された 2D ピンは無視され、3D ピンが見つかるまでドライバーのピン インスタンスのリストの検索が続行されます。 DirectSound は、要件を満たすピン インスタンスが見つかるまで、ドライバーのピン ファクトリのリストをリストされている順序でチェックします。

2D ピン数を報告する場合、ドライバーは 2D ピン インスタンスの数と 3D ピン インスタンスの数を指定する必要があります。 3D ピン数を報告する場合、ドライバーは 2D ピンを無視し、3D ピン インスタンスの数のみを指定する必要があります。

Microsoft Windows 2000 および Windows 98 とともに配布された DirectSound バージョンには、2D ピンと 3D ピンが混在するピン ファクトリを処理する際に既知の問題があります:DirectSound は、3D ピン数を 2D ピン インスタンスの数に 3D ピン インスタンスの数を加えたものとして誤って報告します。 この問題の回避策は、2D ピンと 3D ピンを 2 つの別個のピン ファクトリに分離するようにドライバーを作成することです。 一方のファクトリは 2D ピンのみを公開し、もう一方のファクトリは 3D ピンのみを公開します。

WDM ドライバーを使用すると、DirectSound は 2D ピン数を 2 つのファクトリーからの 2D ピンと 3D ピンの数の合計として正しく報告し、3D ピン数を 1 つの 3D ピンからの 3D ピンの数として正しく報告します。工場。 2D ピンと 3D ピンの別々のファクトリを公開する場合、ドライバーは 3D ピン ファクトリの前に 2D ピン ファクトリをリストする必要があります。 これが必要なのは、DirectSound が 2D ピンを探すときに、最初に見つかった 2D または 3D ピンを使用し、ドライバーがリストする順序でピン ファクトリをチェックするためです。 ドライバーが最初に 3D ファクトリをリストすると、DirectSound が 2D ピンの代わりに 3D ピンを不必要に使用して、3D ピンの供給を枯渇させる危険があります。

要約すると、ドライバーが 2D ピンと 3D ピンの混合を公開する場合、以前のバージョンの DirectSound で正しく実行するには、次のルールに従う必要があります:

  • 2D ピンと 3D ピンにそれぞれ 2 つの別個のピン ファクトリを提供します。

  • 3D ピン ファクトリの前に 2D ピン ファクトリをリストします。

これらの回避策は、DirectSound の新しいバージョンでは不要です。 上記の問題は、Windows Me および Windows XP 以降では修正されています。 この問題は、以前の Windows バージョンで使用するために再配布された DirectSound 8 でも修正されています。 この修正により、ドライバーは単一のピン ファクトリで 2D ピンと 3D ピンを安全に組み合わせることができ、DirectSound は 2D ピンと 3D ピンの数を正しく報告するようになります。 また、DirectSound が 2D ピンを必要とする場合、すべてのピン ファクトリからの 2D ピンの供給がなくなった場合にのみ、2D ピンの代わりに 3D ピンを使用します。