Método Provider::EnumerateInstances (provider.h)
[A classe Provider faz parte do WMI Provider Framework que agora é considerado em estado final e nenhum desenvolvimento, melhoria ou atualização adicional estará disponível para problemas não relacionados à segurança que afetarem essas bibliotecas. As APIs de MI devem ser usadas para todos os novos desenvolvimentos.]
O método EnumerateInstances é chamado pelo WMI para recuperar todas as instâncias da classe de um provedor de estrutura.
Sintaxe
HRESULT EnumerateInstances(
MethodContext *pMethodContext,
long lFlags
);
Parâmetros
pMethodContext
Ponteiro para o objeto de contexto dessa chamada. Esse valor contém todas as propriedades IWbemContext especificadas pelo cliente. Além disso, esse ponteiro deve ser usado como um parâmetro para todas as chamadas de volta para o WMI.
lFlags
Máscara de bits de sinalizadores com informações sobre a operação EnumerateInstances . Esse é o valor especificado pelo cliente no método IWbemServices::CreateInstanceEnum .
Os seguintes sinalizadores são manipulados por (e filtrados) pelo WMI:
- WBEM_FLAG_DEEP
- WBEM_FLAG_SHALLOW
- WBEM_FLAG_RETURN_IMMEDIATELY
- WBEM_FLAG_FORWARD_ONLY
- WBEM_FLAG_BIDIRECTIONAL
- WBEM_FLAG_USE_AMENDED_QUALIFIERS
Retornar valor
A implementação do provedor de estrutura padrão desse método retorna WBEM_E_PROVIDER_NOT_CAPABLE ao método de chamada. O método IWbemServices::CreateInstanceEnum lista os valores retornados mais comuns, mas você pode optar por retornar qualquer código de retorno COM.
Comentários
Não é um erro para EnumerateInstances retornar instâncias zero criando uma instância zero de CInstance e definindo o valor retornado como WBEM_S_NO_ERROR.
O WMI geralmente chama EnumerateInstances quando um aplicativo cliente chama IWbemServices::CreateInstanceEnum, embora o WMI possa chamar EnumerateInstances em outras situações também. Veja a seguir uma maneira comum de substituir EnumerateInstances:
- Crie uma instância vazia da classe usando Provider::CreateNewInstance.
- Preencha as propriedades da instância vazia usando os métodos Set da classe CInstance , como CInstance::SetByte ou CInstance::SetStringArray.
- Envie a instância de volta para o cliente usando CInstance::Commit.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | provider.h (inclua FwCommon.h) |
Biblioteca | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |