次の方法で共有


UsePositionLock

UsePositionLock レジストリ値は、PortCls が I/O をシリアル化する方法を変更します。 この設定を有効にすると、オーディオ ドライバーが portcls がシリアル化に使用するグローバル デバイス ロックに起因する不具合が発生した場合に役立つ場合があります。 UsePositionLock が有効になっている場合、以下に一覧表示されているコールバックと他のプロパティ コールバック (必要な場合) の間にシリアル化を適用するのはオーディオ ドライバー次第であることに注意してください。 このフラグはデフォルトでは有効になっていません。 オンにする前に、ドライバーのコールバック間の競合状態についてドライバーを確認してください。

この動作を有効にするには、次の INF 設定を使用します。

[MyAudioDevice.AddReg]
HKR, DispatchSettings, UsePositionLock, 3, 01, 00, 00, 00

この値が 1 以上に設定されている場合、portcls はストリーミング位置ロックを使用して、以下に示すコールバックをシリアル化します。 存在しないか、ゼロに設定されている場合、デフォルトの動作ではグローバルデバイスロックが使用されます。 この値は、デバイスが初めて追加されるときに読み取られます。

この INF 設定は、パスに {4d36e96c-e325-11ce-bfc1-08002be10318} のメディア GUID が含まれているレジストリのデバイス インスタンスに格納されます。

この INF 設定では、オーディオ デバイスのインスタンスを含む {4d36e96c-e325-11ce-bfc1-08002be10318} のメディア GUID を含むレジストリ値が作成されます。

UsePositionLock 設定は、WaveRT フィルターとトポロジ フィルターでのみサポートされます。 Portcls はデバイスの追加時にこのレジストリ値を読み取り、機能デバイス オブジェクト (FDO) が削除されるまで設定が保持されます。

portcls は、このフラグがオンであることを検出すると、グローバルデバイスロックを使用して以下のプロパティーを直列化しません。

つまり、次のミニポートのコールバックは、他のプロパティ要求 (set-state 要求を含む) でシリアル化されません。