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


Метод IWbemServices::D eleteInstance (wbemcli.h)

Метод IWbemServices::D eleteInstance удаляет экземпляр существующего класса в текущем пространстве имен.

Синтаксис

HRESULT DeleteInstance(
  [in]  const BSTR      strObjectPath,
  [in]  long            lFlags,
  [in]  IWbemContext    *pCtx,
  [out] IWbemCallResult **ppCallResult
);

Параметры

[in] strObjectPath

Допустимый BSTR , содержащий путь к объекту к удаляемом экземпляру.

[in] lFlags

Одно из следующих значений является допустимым.

WBEM_FLAG_RETURN_IMMEDIATELY

Этот флаг приводит к полусинхронному вызову. Дополнительные сведения см. в разделе Вызов метода .

[in] pCtx

Как правило, значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, удаляющим экземпляр. Значения в объекте контекста должны быть указаны в документации для соответствующего поставщика.

[out] ppCallResult

Если значение NULL, этот параметр не используется. Если указан параметр ppCallResult , необходимо задать значение NULL для записи. Если параметр lFlags содержит WBEM_FLAG_RETURN_IMMEDIATELY, этот вызов немедленно возвращается с WBEM_S_NO_ERROR. Параметр ppCallResult получает указатель на новый объект IWbemCallResult , который затем можно опросить для получения результата с помощью метода GetCallStatus .

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.

При сбое можно получить любые доступные сведения из функции COM GetErrorInfo.

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

Комментарии

Метод IWbemServices::D eleteInstance вызывается для удаления существующего экземпляра в текущем пространстве имен. Экземпляры в других пространствах имен не могут быть удалены. При вызове Метода DeleteInstance для удаления экземпляра, относящегося к классу в иерархии, управление Windows вызывает метод DeleteInstanceAsync для всех поставщиков, ответственных за неавстрактные классы в иерархии. То есть, если параметр strObjectPath идентифицирует экземпляр ClassB, а ClassB является производным от Класса А, не абстрактного класса, и является родительским классом ClassC и ClassD, также неабстрактными классами, вызываются поставщики для всех четырех классов.

Управление Windows вызывает каждого поставщика с путем к объекту, который изменен для указания на их класс. Например, если strObjectPath для исходного вызова имеет значение "ClassB.k=1", вызов поставщика ClassA установит для strObjectPath значение "ClassA.k=1".

Успех вызова DeleteInstance зависит только от успешного вызова DeleteInstanceAsync к поставщику самого верхнего неавстрактного класса. Неавстрактный класс имеет абстрактный класс в качестве родительского. Если поставщик для любого из таких классов успешно выполняется, операция завершается успешно; Если все такие классы завершаются ошибкой, операция завершается сбоем.

Например, предположим, что ClassX является базовым классом для следующей иерархии:

  1. КлассA является производным от ClassX.
  2. КлассB является производным от Класса А.
  3. ClassC и ClassD являются производными от ClassB.
Если ClassX является единственным абстрактным классом в иерархии, а параметр strObjectPath в DeleteInstance указывает на экземпляр ClassB, то только поставщик для ClassA должен успешно выполнять вызов DeleteInstanceAsync .

Если ClassX, ClassA и ClassB являются абстрактными и параметр strObjectPath в DeleteInstance снова указывает на экземпляр ClassB, поставщик для ClassC или поставщик для ClassD должен быть выполнен успешно.

Требования

Требование Значение
Минимальная версия клиента 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

См. также раздел

Описание пути к объекту экземпляра

IWbemCallResult

IWbemServices

IWbemServices::D eleteInstanceAsync

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