次の方法で共有


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 要求を含む) と共にシリアル化されません。