次の方法で共有


カメラ UVC コントロール キャッシュのドライバー サポート

UVC コントロールは、フレーム サーバーがシャットダウンしたときに、デバイスにスティックします。 アプリケーションで UVC コントロールを使用して White Balance を設定し、その後アプリケーションをシャットダウンすると、カメラの White Balance がリセットされません。 White Balance を開いて変更しない他のアプリは、前の設定を継承します。

コンピューターがS3に入る場合は例外です。 カメラデバイスがD3またはD3 Cold に入るかどうかに応じて、それぞれUVCコントロールが固定されるかどうかが異なります。 この動作は、D3 Cold がカメラから電力を取り除いたためです。

キャッシュ UVC 制御プロトコルを使用すると、アプリケーション セッション、S3、およびコンピューターのシャットダウン間で一貫した動作を実現できます。

デバイス HW レジストリキーにある構成キー「CacheUVCControl」をMS OS 2.0 記述子や以前のメソッドでのカスタムINFファイルを介してDWORD 値 1 に設定することで、カメラは S3 やコンピュータの再起動を超えてユーザーが設定した UVC コントロールの値を保持します。 保存および再適用される特定の UVC コントロール値の一覧を以下に示します。

影響を受ける UVC コントロール

以下は、再起動後にキャッシュ、再適用される UVC コントロールのリストです:

  • KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS
  • KSPROPERTY_VIDEOPROCAMP_CONTRAST
  • KSPROPERTY_VIDEOPROCAMP_GAIN
  • KSPROPERTY_VIDEOPROCAMP_GAMMA
  • KSPROPERTY_VIDEOPROCAMP_HUE(+ AUTO)
  • KSPROPERTY_VIDEOPROCAMP_SATURATION
  • KSPROPERTY_VIDEOPROCAMP_SHARPNESS
  • KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE(+ AUTO)

INF の例

[Device.AddReg.HW]
HKR,,"CacheUVCControl",0x00010001,1

MS OS 2.0 記述子の例

UCHAR Example_MSOS20DescriptorSet_CacheUVCControl[0x38] =
{
    //
    // Microsoft OS 2.0 Descriptor Set Header
    //
    0x0A, 0x00,               // wLength - 10 bytes
    0x00, 0x00,               // MSOS20_SET_HEADER_DESCRIPTOR
    0x00, 0x00, 0x0?, 0x06,   // dwWindowsVersion – 0x060?0000 for future Windows version
    0x3C, 0x00,               // wTotalLength – 60 bytes

    //
    // Microsoft OS 2.0 Registry Value Feature Descriptor
    //
    0x32, 0x00,               // wLength 0x32 (50) in bytes of this descriptor  
    0x04, 0x00,               // wDescriptorType – MSOS20_FEATURE_REG_PROPERTY  
    0x04, 0x00,               // wPropertyDataType - REG_DWORD  
    0x24, 0x00,               // wPropertyNameLength – 0x24 (36) bytes
    'C',  0x00, 'a',  0x00,   // Property Name - “CacheUVCControl”  
    'c',  0x00, 'h',  0x00,  
    'e',  0x00, 'U',  0x00,
    'V',  0x00, 'C',  0x00,  
    'C',  0x00, 'o',  0x00,  
    'n',  0x00, 't',  0x00,  
    'r',  0x00, 'o',  0x00,  
    'l',  0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00,
    0x04, 0x00,               // wPropertyDataLength – 4 bytes  
    0x01, 0x00, 0x00, 0x00,   // Enable to cache UVC controls  
}