카메라 UVC 컨트롤 캐시에 대한 드라이버 지원

프레임 서버가 종료되면 UVC 컨트롤이 디바이스에 고정됩니다. UVC 컨트롤을 사용하여 White Balance를 설정한 다음 앱을 종료하는 앱을 사용하는 경우 카메라의 White Balance가 다시 설정되지 않습니다. White Balance를 열고 변경하지 않는 다른 앱은 이전 설정을 상속합니다.

한 가지 예외는 컴퓨터가 S3으로 전환되는 경우입니다. 카메라 디바이스가 D3 또는 D3 콜드로 전환되는지 여부에 따라 UVC 컨트롤이 각각 고정되거나 고정되지 않을 수 있습니다. 이 동작은 D3 Cold가 카메라에서 전원을 제거하기 때문입니다.

캐시 UVC 제어 프로토콜을 활용하는 것은 애플리케이션 세션, S3 및 컴퓨터 종료에서 일관된 동작을 수행하는 방법입니다.

MS OS 2.0 설명자 또는 사용자 지정 INF 파일의 이전 메서드를 통해 구성 키 "CacheUVCControl"을 디바이스 HW 레지스트리 키의 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  
}