カメラ 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
}