Поделиться через


Метод 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.

Коды ошибок, относящихся к COM, также могут быть возвращены, если сетевые проблемы приводят к потере удаленного подключения к управлению Windows.

Комментарии

Метод IWbemLocator::ConnectServer также можно использовать для открытия того же пространства имен. Единственное отличие заключается в том, что метод OpenNamespace позволяет размещать относительные пути к объектам в параметре Namespace для рекурсивного открытия дочерних пространств имен. Для IWbemLocator::ConnectServer требуется полный путь к объекту. Дополнительные сведения см. в разделе Описание пути объекта пространства имен WMI.

Например, если текущее пространство имен, связанное с указателем интерфейса IWbemServices , является корневым, то использование Default в параметре Пространства имен возвращает новый указатель, привязанный к пространству имен root\default.

Пространство имен закрывается при вызове Release , а число ссылок достигает 0 (ноль).

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)
Библиотека 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

Получение кода ошибки