IWbemServices::OpenNamespace 方法 (wbemcli.h)

IWbemServices::OpenNamespace 方法为调用方提供了一个新的 IWbemServices 指针,该指针将指定的子命名空间作为其操作上下文。 通过新指针执行的所有操作(例如类或实例创建)仅影响该命名空间。 命名空间必须是调用此方法的当前对象的子命名空间。

语法

HRESULT OpenNamespace(
  [in]  const BSTR      strNamespace,
  [in]  long            lFlags,
  [in]  IWbemContext    *pCtx,
  [out] IWbemServices   **ppWorkingNamespace,
  [out] IWbemCallResult **ppResult
);

参数

[in] strNamespace

目标命名空间的路径。 有关详细信息,请参阅 在 WMI 中创建层次结构。 此命名空间只能相对于与 IWbemServices 接口指针关联的当前命名空间。 此参数不能是绝对路径或 NULL

[in] lFlags

可以将此参数设置为 0 以将其设置为同步调用。 若要将其设置为半同步调用,请将 lFlags 设置为 WBEM_FLAG_RETURN_IMMEDIATELY,为 ppResult 参数提供有效的指针,此调用将立即返回。 有关详细信息,请参阅调用方法

[in] pCtx

保留。 此参数必须为 NULL

[out] ppWorkingNamespace

接收表示新命名空间上下文的 对象。 返回的指针具有正引用计数。 当不再需要此指针时,调用方必须对此指针调用 Release 。 出现错误时,此指针设置为 NULL 。 如果指定此参数,则 ppResult 必须为 NULL

[out] ppResult

通常 为 NULL。 如果不是 NULL,则 ppWorkingNamespace 必须为 NULL。 在这种情况下, 参数接收指向新 IWbemCallResult 对象的指针。 如果 lFlags 参数设置为 WBEM_FLAG_RETURN_IMMEDIATELY 此调用将立即返回。 然后,调用方可以定期轮询 IWbemCallResult::GetResultServices 方法,直到请求的命名空间的指针变为可用。 当出现错误且未返回新对象时,此参数设置为指向 NULL

注意 请务必注意,使用此参数时,必须在调用 方法之前将 ppResult 设置为指向 NULL 。 这是 COM 规则。
 

返回值

此方法返回指示方法调用状态的 HRESULT。 以下列表列出了 HRESULT 中包含的值。

如果失败,可以从 COM 函数 GetErrorInfo 获取任何可用信息。

如果网络问题导致你失去与 Windows 管理的远程连接,也可能会返回特定于 COM 的错误代码。

注解

IWbemLocator::ConnectServer 方法也可用于打开相同的命名空间。 唯一的区别在于 ,OpenNamespace 方法允许你将相对对象路径放置在 Namespace 参数中,以递归方式打开子命名空间; IWbemLocator::ConnectServer 需要完整的对象路径。 有关详细信息,请参阅 描述 WMI 命名空间对象路径

例如,如果与 IWbemServices 接口指针关联的当前命名空间是根命名空间,则在 Namespace 参数中使用 Default 会生成绑定到 root\default 命名空间的新指针。

调用 Release 且引用计数达到 0 (零) 时,命名空间将关闭。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemcli.h (包括 Wbemidl.h)
Library Wbemuuid.lib
DLL Fastprox.dll;Esscli.dll;FrameDyn.dll;FrameDynOS.dll;Ntevt.dll;Stdprov.dll;Viewprov.dll;Wbemcomn.dll;Wbemcore.dll;Wbemess.dll;Wbemsvc.dll;Wmipicmp.dll;Wmidcprv.dll;Wmipjobj.dll;Wmiprvsd.dll

另请参阅

在 WMI 中创建层次结构

IWbemLocator::ConnectServer

IWbemServices

检索错误代码