Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cria ou atualiza uma instância de uma classe existente. A instância é gravada no repositório WMI.
Observação
Essa API é apenas para uso interno. Ele não se destina ao uso do código do desenvolvedor.
Sintaxe
HRESULT PutInstanceWmi (
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parâmetros
pInst
[in] Um ponteiro para a instância a ser gravada.
lFlags
[in] Uma combinação de sinalizadores que afetam o comportamento dessa função. Os seguintes valores são definidos no arquivo de cabeçalho WbemCli.h ou você pode defini-los como constantes em seu código:
| Constante | Value | Description |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Se definido, o WMI não armazenará nenhum qualificador com o Amended sabor. Se 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 |
0 | Crie a instância se ela não existir ou substitua-a se ela já existir. |
WBEM_FLAG_UPDATE_ONLY |
1 | Atualize a instância. A instância deve existir para que a chamada seja bem-sucedida. |
WBEM_FLAG_CREATE_ONLY |
2 | Crie a instância. A chamada falhará se a instância já existir. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | O sinalizador causa uma chamada semissíncrona. |
pCtx
[in] Normalmente, esse valor é null. Caso contrário, é um ponteiro para uma instância IWbemContext que pode ser usada pelo provedor que está fornecendo as classes solicitadas.
ppCallResult
[out] Se null, esse parâmetro não é usado. Se lFlags contiver WBEM_FLAG_RETURN_IMMEDIATELY, a função retornará imediatamente com WBEM_S_NO_ERROR. O ppCallResult parâmetro recebe um ponteiro para um novo objeto IWbemCallResult .
Valor de retorno
Os seguintes valores retornados por essa função são definidos no arquivo de cabeçalho WbemCli.h ou você pode defini-los como constantes em seu código:
| Constante | Value | Description |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | O usuário não tem permissão para atualizar uma instância da classe especificada. |
WBEM_E_FAILED |
0x80041001 | Ocorreu um erro não especificado. |
WBEM_E_INVALID_CLASS |
0x80041010 | A classe que dá suporte a essa instância não é válida. |
WBEM_E_ILLEGAL_NULL |
0x80041028 | um null foi especificado para uma propriedade que não pode ser null, como uma que é marcada por um Indexed qualificador ou Not_Null um qualificador. |
WBEM_E_INVALID_OBJECT |
0x8004100f | A instância especificada não é válida. (Por exemplo, chamar PutInstanceWmi com uma classe retorna esse valor.) |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Um parâmetro não é válido. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | O WBEM_FLAG_CREATE_ONLY sinalizador foi especificado, mas a instância já existe. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY foi especificado em lFlags, mas a instância não existe. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Não há memória suficiente disponível para concluir a operação. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | O WMI provavelmente foi interrompido e reiniciado. Chame ConnectServerWmi novamente. |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | O link de RPC (chamada de procedimento remoto) entre o processo atual e o WMI falhou. |
WBEM_S_NO_ERROR |
0 | A chamada de função foi bem-sucedida. |
Observações
Essa função encapsula uma chamada para o método IWbemServices::P utInstance .
A PutInstanceWmi função dá suporte apenas à criação de instâncias e à atualização de instâncias de classes existentes. Dependendo de como o pCtx parâmetro é definido, algumas ou todas as propriedades da instância são atualizadas.
Quando a instância apontada pertence pInst a uma subclasse, o Gerenciamento do Windows chama todos os provedores responsáveis pelas classes das quais a subclasse deriva. Todos esses provedores devem ter êxito para que a solicitação original PutInstanceWmi seja bem-sucedida. O provedor que dá suporte à classe mais alta na hierarquia é chamado primeiro. A ordem de chamada continua com a subclasse da classe mais alta e prossegue de cima para baixo até que o Gerenciamento do Windows atinja o provedor da classe que possui a instância apontada por pInst.
O Gerenciamento do Windows não chama os provedores para nenhuma das classes filho de uma instância.
Quando um aplicativo deve atualizar uma instância que pertence a uma hierarquia de classe, o pInst parâmetro deve apontar para a instância que contém as propriedades a serem modificadas. Ou seja, considere uma instância de destino que pertence ao ClassB. A ClassB instância deriva de ClassA e ClassA define a propriedade PropA. Se um aplicativo quiser fazer uma alteração no ClassB valor da PropA instância, ele deverá definir pInst para essa instância em vez de uma instância de ClassA.
Não é permitido chamar PutInstanceWmi uma instância de uma classe abstrata.
Se a chamada de função falhar, você poderá obter informações de erro adicionais chamando a função GetErrorInfo .
Requirements
Plataformas: confira Requisitos do sistema.
Cabeçalho: WMINet_Utils.idl
Versões do .NET Framework: Disponível desde 4.7.2