当帧服务器关闭时,UVC 控件会固定在设备上。 如果一个应用程序使用 UVC 控件设置白平衡,然后关闭该应用程序,相机的白平衡将不会被重置。 打开且不更改白平衡的其他应用将继承以前的设置。
一个例外是计算机进入 S3。 根据相机设备进入 D3 还是 D3 冷状态,UVC 控件可能会保留也可能不会。 此现象是因为 D3 Cold 断开了相机的电源。
利用缓存 UVC 控制协议是跨应用程序会话、Amazon S3 和计算机关机保持一致行为的方法。
通过将配置键“CacheUVCControl”设置为设备 HW 注册表项中 1 的 DWORD 值(通过 MS OS 2.0 描述符或较旧的自定义 INF 文件方法),相机将保留用户跨 S3 或计算机重新启动设置的 UVC 控制值。 将存储和重新应用的特定 UVC 控件值的列表如下。
UVC 控件受影响
下面是将在重新启动后缓存和重新应用的 UVC 控件列表:
- KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS(亮度)
- KSPROPERTY_VIDEOPROCAMP_CONTRAST
- KSPROPERTY_VIDEOPROCAMP_GAIN
- KSPROPERTY_VIDEOPROCAMP_GAMMA
- KSPROPERTY_VIDEOPROCAMP_HUE(+ 自动)
- KSPROPERTY_VIDEOPROCAMP_SATURATION
- KSPROPERTY_VIDEOPROCAMP_SHARPNESS(锐度)
- KSPROPERTY_VIDEOPROCAMP_白平衡(+ 自动)
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
}