描述
IWbemServices.OpenNamespace方法为调用者提供了一个新的IWbemServices指针,该指针具有指定的子命名空间作为其操作上下文。所有操作通过新的指针,如类或实例创建,只影响该命名空间。命名空间必须是调用此方法的当前对象的子命名空间。
C++ 语法
HRESULT OpenNamespace( [in] const BSTR strNamespace, [in] LONG lFlags, [in] IWbemContext *pCtx, [out] IWbemServices **ppWorkingNamespace, [out] IWbemCallResult **ppResult ); |
PowerBASIC 语法
METHOD OpenNamespace ( _ BYVAL strNamespace AS DWORD, _ BYVAL lFlags AS LONG, _ BYVAL pCtx AS IWbemContext, _ BYREF ppWorkingNamespace AS IWbemServices, _ BYREF ppResult AS IWbemCallResult _ ) AS LONG |
参数
strNamespace
目标命名空间的路径。有关详细信息,请参阅在WMI中创建层次结构。此命名空间只能相对于与IWbemServices接口指针相关联的当前命名空间。此参数不能是绝对路径或NULL。
lFlags
该参数可以设置为0,使其成为同步调用。要使其成为一个半异步调用,请将LFLAGS设置为WBEM_FLAG_RETURN_IMMEDIATELY,为ppResult参数提供有效的指针,此调用将立即返回。有关详细信息,请参阅调用方法.
pCtx
保留。此参数必须为NULL。
ppWorkingNamespace
接收表示新命名空间上下文的对象。返回的指针具有正的引用计数。当不再需要时,主叫方必须在此指针上调用发布.当有错误时,此指针设置为NULL。如果指定了此参数,则ppResult必须为NULL。
ppResult
通常为NULL。如果不为NULL,则ppWorkingNamespace必须为NULL。在这种情况下,该参数接收一个指向新的IWbemCallResult对象的指针。如果LFLAGS参数设置为WBEM_FLAG_RETURN_IMMEDIATELY,则此调用将立即返回。然后调用者可以定期轮询IWbemCallResult.GetResultServices方法,直到所请求命名空间的指针变为可用。当出现错误并且不返回新对象时,此参数设置为NULL。
注意请注意,使用此参数时,必须在调用该方法之前将ppResult设置为NULL。这是一个COM规则。
返回值
此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。
失败时,您可以从COM功能GetErrorInfo获取任何可用的信息。
如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。
退货代码 |
描述 |
WBEM_E_ACCESS_DENIED |
用户没有访问请求的命名空间的权限。 |
WBEM_E_FAILED |
这表示其他未指定的错误。 |
WBEM_E_INVALID_NAMESPACE |
指定的命名空间不存在。 |
WBEM_E_INVALID_PARAMETER |
指定了无效的参数或无法解析命名空间。 |
WBEM_E_OUT_OF_MEMORY |
没有足够的内存来完成操作。 |
WBEM_E_SHUTTING_DOWN |
Windows管理服务可能已停止并重新启动。需要新的电话ConnectServer. |
WBEM_E_TRANSPORT_FAILURE |
当前进程和Windows管理之间的通信链接失败。 |
WBEM_S_NO_ERROR |
通话成功。 |
备注
IWbemLocator.ConnectServer方法也可用于打开相同的命名空间。唯一的区别是,OpenNamespace方法允许您在Namespace参数中放置相对对象路径以递归地打开子命名空间; IWbemLocator.ConnectServer需要一个完整的对象路径。有关详细信息,请参阅描述WMI命名空间对象路径.
例如,如果与IWbemServices接口指针相关联的当前命名空间是root,则在命名空间参数中使用Default将生成绑定到root \\ default命名空间的新指针。
当调用发布并且引用计数达到0(零)时,命名空间关闭。
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
头 |
在Wbemcli.inc中声明。 |
DLL |
需要Fastprox.dll。 需要Esscli.dll。 需要Framedyn.dll。 需要Ntevt.dll。 需要Stdprov.dll。 需要Viewprov.dll。 需要Wbemcomn.dll。 需要Wbemcore.dll。 需要Wbemess.dll。 需要Wbemsvc.dll。 需要Wmipicmp.dll。 需要Wmidcprv.dll。 需要Wmipjobj.dll。 需要Wmiprvsd.dll。 |