Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Cria ou atualiza uma instância de uma classe existente. A instância é escrita para o repositório WMI.
Observação
Esta API é apenas para uso interno. Não é destinado a ser usado em código de desenvolvedor.
Sintaxe
HRESULT PutInstanceWmi (
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parâmetros
pInst
[dentro] Um apontador para a instância a ser escrita.
lFlags
[dentro] Uma combinação de flags que afetam o comportamento desta função. Os seguintes valores estão definidos no ficheiro de cabeçalho WbemCli.h , ou pode defini-los como constantes no seu código:
| Constante | Valor | Description |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Se for definido, o WMI não guarda quaisquer qualificadores com o Amended flavor. Se não for definido, assume-se que este objeto não está localizado, e todos os qualificadores são armazenados com esta instância. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Cria a instância se ela não existir, ou sobrescreve-a se 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 | Cria a instância. A chamada falha se a instância já existir. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | A bandeira provoca uma chamada semi-síncrona. |
pCtx
[dentro] Normalmente, este valor é null. Caso contrário, é um ponteiro para uma instância IWbemContext que pode ser usada pelo fornecedor que fornece as classes solicitadas.
ppCallResult
[fora] Se null, este parâmetro não é utilizado. Se lFlags contém WBEM_FLAG_RETURN_IMMEDIATELY, a função retorna imediatamente com WBEM_S_NO_ERROR. O ppCallResult parâmetro recebe um ponteiro para um novo objeto IWbemCallResult .
Valor de retorno
Os seguintes valores devolvidos por esta função são definidos no ficheiro de cabeçalho WbemCli.h , ou pode defini-los como constantes no seu código:
| Constante | Valor | Description |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | O utilizador 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 suporta esta instância não é válida. |
WBEM_E_ILLEGAL_NULL |
0x80041028 | A null foi especificado para uma propriedade que não pode ser null, como uma que está marcada por um Indexed qualificador de ou Not_Null . |
WBEM_E_INVALID_OBJECT |
0x8004100f | A instância especificada não é válida. (Por exemplo, chamar PutInstanceWmi com uma classe devolve este valor.) |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Um parâmetro não é válido. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | A WBEM_FLAG_CREATE_ONLY bandeira foi especificada, 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 existe memória suficiente para completar a operação. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | O WMI provavelmente estava parado e a reiniciar. Liga novamente para o ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | A ligação de chamada remota ao procedimento (RPC) entre o processo atual e o WMI falhou. |
WBEM_S_NO_ERROR |
0 | A chamada de função foi bem-sucedida. |
Observações
Esta função envolve uma chamada para o método IWbemServices::P utInstance .
A PutInstanceWmi função suporta apenas a criação de instâncias e a atualização de instâncias de classes existentes. Dependendo de como o pCtx parâmetro está definido, algumas ou todas as propriedades da instância são atualizadas.
Quando a instância apontada por pInst pertence a uma subclasse, a Gestão do Windows chama todos os fornecedores responsáveis pelas classes das quais a subclasse deriva. Todos estes prestadores têm de ter sucesso para que o pedido original PutInstanceWmi seja aprovado. O fornecedor que suporta a 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 a Gestão do Windows chegue ao fornecedor da classe que detém a instância apontada por pInst.
A Gestão do Windows não chama os fornecedores de nenhuma das classes filhos de uma instância.
Quando uma aplicação tem de atualizar uma instância que pertence a uma hierarquia de classes, o pInst parâmetro deve apontar para a instância que contém as propriedades a serem modificadas. Ou seja, considere uma instância alvo que pertence à Classe B. A ClassB instância deriva da Classe A e ClassA define a propriedade PropA. Se uma aplicação quiser alterar o valor de PropA na ClassB instância, deve definir pInst para essa instância em vez de uma instância de ClassA.
Não é permitido invocar PutInstanceWmi uma instância de uma classe abstrata.
Se a chamada de função falhar, pode obter informação adicional de erro chamando a função GetErrorInfo .
Requerimentos
Plataformas: Consulte Requisitos do sistema.
Cabeçalho: WMINet_Utils.idl
Versões do .NET Framework: Disponível desde a 4.7.2