Partilhar via


Método IWbemServices::CreateInstanceEnum (wbemcli.h)

O método IWbemServices::CreateInstanceEnum cria um enumerador que retorna as instâncias de uma classe especificada de acordo com os critérios de seleção especificados pelo usuário. Esse método dá suporte a consultas WQL simples; consultas mais complexas podem ser processadas usando o método IWbemServices::ExecQuery .

Sintaxe

HRESULT CreateInstanceEnum(
  [in]  const BSTR           strFilter,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Parâmetros

[in] strFilter

BSTR válido que contém o nome da classe para a qual as instâncias são desejadas. Esse parâmetro não pode ser NULL.

[in] lFlags

Os sinalizadores a seguir afetam o comportamento desse método. O valor sugerido para esse parâmetro é WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY para melhor desempenho.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Se esse sinalizador estiver definido, o WMI recuperará os qualificadores alterados armazenados no namespace localizado da localidade da conexão atual. Se não estiver definido, somente os qualificadores armazenados no namespace imediato serão recuperados.

WBEM_FLAG_DEEP

Esse sinalizador força a enumeração a incluir essa e todas as subclasses na hierarquia.

WBEM_FLAG_SHALLOW

Esse sinalizador força a enumeração a incluir apenas instâncias puras dessa classe, excluindo todas as instâncias de subclasses que fornecem propriedades não encontradas nessa classe.

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_FORWARD_ONLY

Esse sinalizador faz com que um enumerador somente de encaminhamento seja retornado. Os enumeradores somente de encaminhamento geralmente são muito mais rápidos e usam menos memória do que os enumeradores convencionais, mas não permitem chamadas para Clonar ou Redefinir.

WBEM_FLAG_BIDIRECTIONAL

Esse sinalizador faz com que o Gerenciamento do Windows mantenha ponteiros para objetos da enumeração até que o cliente libere o enumerador. Como os ponteiros de objeto não são liberados imediatamente, esse método pode falhar com um hResult de WBEM_E_OUT_OF_MEMORY se o cliente tentar enumerar um grande número de objetos. Esse sinalizador será implícito por padrão se você definir o parâmetro lFlags como 0 (zero).

WBEM_FLAG_DIRECT_READ

Esse sinalizador faz com que o acesso direto ao provedor para a classe especificada sem qualquer relação com sua classe pai ou subclasses.

[in] pCtx

Normalmente NULL. Caso contrário, esse é um ponteiro para um objeto IWbemContext que pode ser usado pelo provedor que está fornecendo as instâncias solicitadas. 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] ppEnum

Recebe o ponteiro para o enumerador, que tem uma contagem de referência positiva. O chamador deve chamar IUnknown::Release no ponteiro depois que ele não for mais necessário.

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.

Comentários

Não é um erro para o enumerador retornado ter zero elementos.

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

IWbemServices

IWbemServices::CreateInstanceEnumAsync

Como recuperar um código de erro