Метод 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 является базовым классом для следующей иерархии:
- КлассA является производным от ClassX.
- КлассB является производным от Класса А.
- ClassC и ClassD являются производными от ClassB.
Если 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 |
См. также раздел
Описание пути к объекту экземпляра