CM_Get_Child 函数是 Windows 配置管理器 (Configuration Manager) 提供的一个函数,用于获取指定设备实例的子设备实例。在 Cfgmgr32.h 头文件中,CM_Get_Child 函数的原型通常如下:
CMAPI CONFIGRET WINAPI CM_Get_Child(
  OUT PDEVINST pdnDevInst,
  IN  DEVINST  dnDevInst,
  IN  ULONG    ulFlags
);

其中:

  •  pdnDevInst 是输出参数,用于接收子设备实例的指针。

  •  dnDevInst 是输入参数,表示父设备实例。

  •  ulFlags 是输入参数,指定一些标志,通常为0。


这个函数的作用是通过提供的父设备实例获取其第一个子设备实例。如果成功,返回 CR_SUCCESS;否则,返回相应的错误码,可以使用 CM_Get_Last_Error 函数获取详细的错误信息。

以下是一个示例代码:
#include <windows.h>
#include <Cfgmgr32.h>
#include <tchar.h>

int main() {
    CONFIGRET cr;
    DEVINST dnDevInstChild = 0;

    // 假设 dnDevInst 是父设备的实例
    DEVINST dnDevInstParent = ...; 

    cr = CM_Get_Child(&dnDevInstChild, dnDevInstParent, 0);

    if (cr == CR_SUCCESS) {
        // 成功获取子设备实例,可以进行后续操作
        _tprintf(_T("Child Device Instance: %lu\n"), dnDevInstChild);
    } else {
        // 获取失败,可以通过 CM_Get_Last_Error 获取错误信息
        DWORD dwError = CM_Get_Last_Error();
        _tprintf(_T("Error %lu occurred.\n"), dwError);
    }

    return 0;
}

请注意,这只是一个简单的示例,实际使用时需要根据具体情况进行适当的错误处理和资源释放。


转载请注明出处:http://www.zyzy.cn/article/detail/24291/Win32 API/Cfgmgr32.h/CM_Get_Child