Partilhar via


Método IWbemServices::P utClass (wbemcli.h)

O método IWbemServices::P utClass cria uma nova classe ou atualiza uma existente. A classe especificada pelo parâmetro pObject deve ter sido inicializada corretamente com todos os valores de propriedade necessários.

O usuário pode não criar classes com nomes que começam ou terminam com um sublinhado (_). Isso é reservado para classes do sistema.

Sintaxe

HRESULT PutClass(
  [in]  IWbemClassObject *pObject,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [out] IWbemCallResult  **ppCallResult
);

Parâmetros

[in] pObject

Deve apontar para uma definição de classe válida. A contagem de referência não é alterada.

[in] lFlags

Os sinalizadores a seguir afetam o comportamento desse método.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Se esse sinalizador estiver definido, a WMI não armazenará nenhum qualificador com o sabor alterado. Se esse sinalizador não estiver definido, supõe-se que esse objeto não esteja localizado e todos os qualificadores sejam armazenados com essa instância.

WBEM_FLAG_CREATE_OR_UPDATE

Esse sinalizador fará com que a classe seja criada se ela não existir ou substituída se ela já existir.

WBEM_FLAG_UPDATE_ONLY

Esse sinalizador faz com que essa chamada seja atualizada. A classe precisa existir para que a chamada seja bem-sucedida.

WBEM_FLAG_CREATE_ONLY

Esse sinalizador é usado apenas para criação. A chamada falhará se a classe já existir.

WBEM_FLAG_RETURN_IMMEDIATELY

Esse sinalizador faz com que essa seja uma chamada semissíncrona. Para obter mais informações, confira Como chamar um método.

WBEM_FLAG_OWNER_UPDATE

Os provedores de push devem especificar esse sinalizador ao chamar PutClass para indicar que essa classe foi alterada.

WBEM_FLAG_UPDATE_COMPATIBLE

Esse sinalizador permite que uma classe seja atualizada se não houver classes derivadas e não houver instâncias para essa classe. Ele também permite atualizações em todos os casos se a alteração for apenas para qualificadores não importantes (por exemplo, o qualificador Descrição ). Esse é o comportamento padrão dessa chamada e é usado para compatibilidade com versões anteriores do Gerenciamento do Windows. Se a classe tiver instâncias ou alterações para qualificadores importantes, a atualização falhará.

WBEM_FLAG_UPDATE_SAFE_MODE

Esse sinalizador permite atualizações de classes mesmo que haja classes filho, desde que a alteração não cause conflitos com classes filho. Um exemplo de uma atualização que esse sinalizador permitiria seria adicionar uma nova propriedade à classe base que não foi mencionada anteriormente em nenhuma das classes filho. Se a classe tiver instâncias, a atualização falhará.

WBEM_FLAG_UPDATE_FORCE_MODE

Esse sinalizador força as atualizações de classes quando há classes filho conflitantes. Um exemplo de uma atualização que esse sinalizador forçaria seria se um qualificador de classe fosse definido em uma classe filho e a classe base tentasse adicionar o mesmo qualificador que estava em conflito com o existente. No modo de força, esse conflito seria resolvido excluindo o qualificador conflitante na classe filho.

[in] pCtx

Normalmente NULL. Caso contrário, esse é um ponteiro para um objeto IWbemContext exigido pelo provedor de classe dinâmica que está produzindo as instâncias de classe. Os valores no objeto de contexto devem ser especificados na documentação do provedor em questão. Para obter mais informações sobre esse parâmetro, consulte Fazendo chamadas para WMI.

[out] ppCallResult

Se NULL, esse parâmetro não será usado. Se o parâmetro lFlagscontiver WBEM_FLAG_RETURN_IMMEDIATELY, essa chamada retornará imediatamente com WBEM_S_NO_ERROR. O parâmetro ppCallResult recebe um ponteiro para um novo objeto IWbemCallResult , que pode ser sondado para obter o resultado usando o método IWbemCallResult::GetCallStatus .

Retornar valor

Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.

Em caso de falha, você pode obter todas as informações disponíveis da função COM GetErrorInfo.

Códigos de erro específicos de COM também podem ser retornados se problemas de rede fizerem com que você perca a conexão remota com o Gerenciamento do Windows.

Nota Um comportamento imprevisível resultará se você alterar as definições de classe enquanto elas estiverem em uso por clientes ou provedores. O método IWbemServices::P utClass só deve ser usado para criar ou atualizar uma classe quando não houver clientes ou provedores atualmente usando a classe .
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wbemcli.h (inclua Wbemidl.h)
Biblioteca 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

Confira também

Como criar uma classe

IWbemCallResult

IWbemServices

Como recuperar um código de erro