hawk3152
驱动牛犊
驱动牛犊
  • 注册日期2012-03-13
  • 最后登录2013-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2046回复:2

求助使用DeviceIoControl控制摄像头属性

楼主#
更多 发布于:2012-08-15 14:21
我是新手想要控制摄像头属性,如亮度等,但是不能使用Dshow里面的接口,在mediafoundation中又没有找到相应接口。
driver是UVC的driver。所以我想使用DeviceIoControl来控制属性。使用createfile得到了摄像头的handle,但是使用
DeviceIoControl返回错误, hr = HRESULT_FROM_WIN32(GetLastError());的结果是函数不正确。我使用的控制码是
IOCTL_KS_PROPERTY。而如果使用   IOCTL_KS_ENABLE_EVENT,  IOCTL_KS_RESET_STATE ,等其他控制码就不
会返回错误,不知道这样是否表明我的handle没有错误。
代码如下:
KSPROPERTY_VIDEOPROCAMP_S ProcAmpProp;
    ProcAmpProp.Property.Set = PROPSETID_VIDCAP_VIDEOPROCAMP;//PROPSETID_CUSTOM_CAMERAPROP;
    ProcAmpProp.Property.Id = lID;
    ProcAmpProp.Property.Flags = KSPROPERTY_TYPE_GET;

    hr = SynchronousDeviceControl(
        g_hDeviceHandle,
        IOCTL_KS_PROPERTY,
    //   IOCTL_KS_ENABLE_EVENT,
    //   IOCTL_KS_RESET_STATE ,

      &ProcAmpProp,
        sizeof(ProcAmpProp),
    //    NULL,
    //    NULL,
      &ProcAmpProp,
       sizeof(ProcAmpProp),
     //         NULL,
        //NULL,
        &BytesReturned);


SynchronousDeviceControl只是在deviceIOcontrol上加了一些错误判断。
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
沙发#
发布于:2012-08-21 13:49
你使用的是系统标准的UVC驱动吗?返回的是什么错误?
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
hawk3152
驱动牛犊
驱动牛犊
  • 注册日期2012-03-13
  • 最后登录2013-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2012-08-22 14:48
使用的是标准的uvc驱动 hr = HRESULT_FROM_WIN32(GetLastError());返回的错误是error invalid founction

游客

返回顶部