RegisterDeviceProvider 方法向设备主机注册设备提供程序。 设备提供程序未在网络上发布。 相反,它会动态创建设备,并使用 RegisterRunningDevice 注册它们。
语法
HRESULT RegisterDeviceProvider(
[in] BSTR bstrProviderName,
[in] BSTR bstrProgIDProviderClass,
[in] BSTR bstrInitString,
[in] BSTR bstrContainerId
);
参数
[in] bstrProviderName
指定设备提供程序的名称。
[in] bstrProgIDProviderClass
指定实现 IUPnPDeviceProvider 接口的 对象的 ProgID。 此对象必须已注册到 COM。 此对象必须是进程内 COM 服务器 (CLSCTX_INPROC_SERVER) ,并且必须可供 LocalService 访问。
[in] bstrInitString
标识特定于设备提供程序的初始化字符串。
[in] bstrContainerId
指定一个字符串,用于标识设备提供程序所属的进程组。 具有相同容器 ID 的所有设备和设备提供程序都包含在同一进程中。
返回值
如果该方法成功,则返回值S_OK。 否则,该方法返回 WinError.h 中定义的 COM 错误代码之一。
注解
调用此函数时可能发生的常见错误包括:
- 找不到必要的 COM 对象。
- 无法访问 LocalService 的 COM 对象。
- 从属 COM 接口。
要求
| 最低受支持的客户端 | Windows XP [仅限桌面应用] |
| 最低受支持的服务器 | 无受支持的版本 |
| 目标平台 | Windows |
| 标头 | upnphost.h |
| DLL | Upnphost.dll |