You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UVC扩展单元示例源码及FindExtensionNode实现位置咨询

UVC扩展单元开发相关问题解答

FindExtensionNode 函数实现位置

该函数是UVC扩展单元示例中封装的自定义辅助函数,不属于Windows系统公开API,核心作用是遍历视频流拓扑结构中的所有节点,匹配传入的扩展单元GUID,返回对应节点的ID,具体实现逻辑如下:

HRESULT FindExtensionNode(
    IKsTopologyInfo* pKsTopologyInfo,
    GUID  extensionGuid,
    DWORD* pdwNodeId
)
{
    HRESULT hr = S_OK;
    DWORD dwTotalNodes = 0;
    GUID currentNodeType;

    if (pKsTopologyInfo == NULL || pdwNodeId == NULL)
    {
        return E_POINTER;
    }

    // 获取当前拓扑结构包含的节点总数
    hr = pKsTopologyInfo->get_NumNodes(&dwTotalNodes);
    if (FAILED(hr))
    {
        return hr;
    }

    // 逐节点遍历匹配目标扩展单元GUID
    for (DWORD nodeIdx = 0; nodeIdx < dwTotalNodes; nodeIdx++)
    {
        hr = pKsTopologyInfo->get_NodeType(nodeIdx, &currentNodeType);
        if (FAILED(hr))
        {
            continue;
        }

        if (IsEqualGUID(currentNodeType, extensionGuid))
        {
            *pdwNodeId = nodeIdx;
            return S_OK;
        }
    }

    // 遍历完成未找到匹配节点,返回查找失败错误
    return E_FAIL;
}

UVC曝光控制功能实现说明

你需要实现的两个参数控制项同属一个扩展单元,按照给定的参数配置,基于示例的扩展单元控制逻辑即可完成开发,参数对应关系如下:

  • 手动曝光控制:扩展单元GUID为C9606CCB-594C-4D25-AF47-CCC496435995,节点ID为2,控制ID为3,传入参数为4字节长度的整型曝光值
  • 自动曝光控制:扩展单元GUID为C9606CCB-594C-4D25-AF47-CCC496435995,节点ID为2,控制ID为11,传入参数为1字节长度的开关值(通常0代表关闭自动曝光,1代表开启自动曝光)

调用时直接参考示例中通过IKsControl接口发起扩展单元属性请求的逻辑即可,注意传入参数的长度必须和给定值完全匹配,否则会出现调用失败的问题。

内容的提问来源于stack exchange,提问作者Gilad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:42:14