如何在Windows Media基金会枚举时获取硬件ID

如何在Windows Media基金会枚举时获取硬件ID,windows,ms-media-foundation,Windows,Ms Media Foundation,我正在使用MFEnumDeviceSources()枚举连接的设备,我正在寻找一个特定的网络摄像头,其中我有两个连接的摄像头。枚举工作正常,我可以打印两台相机的友好名称,即FLIR Video 我正在努力找出如何从媒体基础设备源到特定的相机序列号,这样我就能知道哪一个相机是哪个。 我的示例程序在IMFActivate设备上写入可用属性,输出如下: Info: Found 2 devices Info: [ 0] Found device FLIR Video MF_DEVSOURCE_

我正在使用
MFEnumDeviceSources()
枚举连接的设备,我正在寻找一个特定的网络摄像头,其中我有两个连接的摄像头。枚举工作正常,我可以打印两台相机的友好名称,即
FLIR Video

我正在努力找出如何从媒体基础设备源到特定的相机序列号,这样我就能知道哪一个相机是哪个。 我的示例程序在
IMFActivate
设备上写入可用属性,输出如下:

Info: Found 2 devices
Info: [  0] Found device FLIR Video
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK: \\?\usb#vid_09cb&pid_4007&mi_00#8&13fab685&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global
    MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME: FLIR Video
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY: KSCATEGORY_VIDEO_CAMERA
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE: MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE: 4 0x00000004

Info: [  1] Found device Microsoft Camera Front
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK: \\?\display#int3470#4&1d31cc69&0&uid13424#{e5323777-f976-4f5b-9b55-b94699c46e44}\{3374b006-18e6-49a1-a5b7-f00d17acbf1f}
    MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME: Microsoft Camera Front
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY: KSCATEGORY_VIDEO_CAMERA
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE: MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
    MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE: 4 0x00000004

为了获取USB设备描述符,我尝试打开设备
MF\u DEVSOURCE\u属性\u SOURCE\u TYPE\u VIDCAP\u SYMBOLIC\u链接
,并使用
WinUsb\u GetDescriptor
deviceicontrol(IOCTL\u USB\u get\u NODE\u CONNECTION\u INFORMATION)
进行查询,但都失败了
ERROR\u INVALID\u FUNCTION