Classe __Win32Provider

A classe do sistema __Win32Provider registra informações sobre a implementação física de um provedor no WMI. Os provedores que não definem a propriedade HostingModel são carregados, por padrão, para serem executados em um processo Wmiprvse.exe como NetworkServiceHostOrSelfHost.

A sintaxe a seguir é simplificada do código MOF (Managed Object Format) e inclui todas as propriedades herdadas. As propriedades são listadas em ordem alfabética e não na ordem do MOF.

Sintaxe

class __Win32Provider : __Provider
{
  string   ClientLoadableCLSID;
  string   CLSID;
  sint32   Concurrency;
  string   DefaultMachineName;
  boolean  Enabled;
  string   HostingModel;
  sint32   ImpersonationLevel = 0;
  sint32   InitializationReentrancy;
  datetime InitializationTimeoutInterval;
  boolean  InitializeAsAdminFirst;
  string   Name;
  datetime OperationTimeoutInterval;
  boolean  PerLocaleInitialization = FALSE;
  boolean  PerUserInitialization = FALSE;
  boolean  Pure = TRUE;
  string   SecurityDescriptor;
  boolean  SupportsExplicitShutdown;
  boolean  SupportsExtendedStatus;
  boolean  SupportsQuotas;
  boolean  SupportsSendStatus;
  boolean  SupportsShutdown;
  boolean  SupportsThrottling;
  datetime UnloadTimeout;
  uint32   Version;
};

Membros

A classe __Win32Provider tem estes tipos de membros:

Propriedades

A classe __Win32Provider tem estas propriedades.

ClientLoadableCLSID

Tipo de dados: string

Tipo de acesso: leitura/gravação

Identificador de classe que o WMI usa para determinar se um provedor de alto desempenho deve ou não ser carregado no processo do cliente ou no processo do WMI. Se o provedor e o cliente estiverem no mesmo computador, o WMI carregará o provedor em processo no cliente usando ClientLoadableCLSID como o identificador de classe. Quando o provedor e o cliente estiverem em computadores diferentes, o WMI carregará o provedor em processo no próprio WMI. O WMI também usa ClientLoadableCLSID para dar suporte a operações de atualização.

Para obter mais informações, consulte Registrar um provedor de alto desempenho.

CLSID

Tipo de dados: string

Tipo de acesso: leitura/gravação

GUID que representa o CLSID (identificador de classe) do objeto COM do provedor. Esse objeto COM deve conter uma implementação da interface IWbemProviderInit.

Simultaneidade

Tipo de dados: sint32

Tipo de acesso: leitura/gravação

Não usado.

DefaultMachineName

Tipo de dados: string

Tipo de acesso: leitura/gravação

Identifica o computador no qual iniciar o provedor. Se o provedor for executado no computador local, ele será NULL.

Enabled

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Se for TRUE, essa instância será habilitada e poderá ser usada para concluir solicitações de cliente.

HostingModel

Tipo de dados: string

Tipo de acesso: leitura/gravação

Essa propriedade é composta de valores das propriedades MSFT_ProvidersHostingGroup e HostingSpecification. O valor dessa propriedade especifica como o WMI carrega o provedor e a conta de segurança em que ele é executado. Para obter mais informações sobre como definir a propriedade HostingModel, confira Hospedagem e segurança do provedor e Registrar um provedor.

ImpersonationLevel

Tipo de dados: sint32

Tipo de acesso: leitura/gravação

Reservado. O valor padrão é zero (0).

InitializationReentrancy

Tipo de dados: sint32

Tipo de acesso: leitura/gravação

Conjunto de sinalizadores que fornecem informações sobre serialização. O valor padrão é zero (0).

0

Toda a inicialização desse provedor deve ser serializada.

1

Todas as inicializações desse provedor no mesmo namespace devem ser serializadas.

2

Nenhuma serialização de inicialização é necessária.

InitializationTimeoutInterval

Tipo de dados: datetime

Tipo de acesso: leitura/gravação

Não usado.

InitializeAsAdminFirst

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

TBD

Nome

Tipo de dados: string

Tipo de acesso: leitura/gravação

Qualificadores: Key

O nome do provedor.

OperationTimeoutInterval

Tipo de dados: datetime

Tipo de acesso: leitura/gravação

Não usado.

PerLocaleInitialization

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Se for TRUE, o provedor será inicializado para cada localidade quando um usuário se conectar ao mesmo namespace mais de uma vez usando localidades diferentes. O valor padrão é FALSE.

PerUserInitialization

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Se for TRUE, o provedor será inicializado uma vez para cada usuário do NTLM (NT LAN Manager) que faz solicitações ao provedor. Se for FALSE (padrão), o provedor será inicializado uma vez para todos os usuários.

Pura

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Se for TRUE, o provedor concordará em se preparar para descarregar chamando IUnknown::Release em todos os pontos de interface pendentes quando o WMI chamar o método Release de sua interface primária. Os provedores que devem permanecer clientes do WMI depois de não funcionarem como provedores devem definir Pure como FALSE. A configuração padrão é TRUE. Para obter mais informações, confira a seção Comentários desse tópico.

SecurityDescriptor

Tipo de dados: string

Tipo de acesso: leitura/gravação

SD (descritor de segurança) na SDDL (Linguagem de Definição do Descritor de Segurança) que determina o conjunto de usuários que pode chamar IWbemDecoupledRegistrar:Register com êxito para o provedor separado. Para obter mais informações, consulte o tópico Linguagem de Definição do Descritor de Segurança na seção Segurança do SDK do Windows. Esse descritor de segurança é usado apenas para provedores separados e não afeta outros provedores. Para obter mais informações, consulte Incorporar um provedor em um aplicativo.

O WMI executa verificações de acesso para provedores separados que usam as interfaces IWbemProviderInit e IWbemObjectSink. Se o descritor de segurança for NULL, somente aplicativos ou serviços executados nas contas LocalSystem, NetworkService e LocalService poderão executar um provedor separado.

A cadeia de caracteres a seguir mostra um provedor separado a ser executado somente por administradores internos."O:BAG:BAD:(A;;0x1;;;BA)"

Para obter mais informações sobre como definir a propriedade SecurityDescriptor, consulte Manutenção da segurança do WMI.

SupportsExplicitShutdown

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

SupportsExtendedStatus

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

SupportsQuotas

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

SupportsSendStatus

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

SupportsShutdown

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

SupportsThrottling

Tipo de dados: boolean

Tipo de acesso: leitura/gravação

Não usado.

UnloadTimeout

Tipo de dados: datetime

Tipo de acesso: leitura/gravação

Formato de data e hora que especifica por quanto tempo o WMI permite que o provedor permaneça ocioso antes de ser descarregado. Normalmente, os provedores solicitam que o WMI não aguarde mais do que cinco minutos.

Na versão atual do WMI, o valor dessa propriedade é ignorado. O WMI descarrega o provedor com base no valor de tempo limite em uma classe interna no namespace \root. É recomendável que os provedores definam UnloadTimeout. Para obter mais informações, confira Descarregar um provedor.

Versão

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Versão do provedor. As versões compatíveis são 1 e 2. A versão 2 reforça as verificações de validade para todos os registros de propriedade associados, especificamente a propriedade ImpersonationLevel.

Comentários

A classe __Win32Provider é derivada de __Provider.

A maioria dos provedores pode aceitar os valores padrão para a propriedade InitializationReentrancy. No entanto, caso um provedor dê suporte à inicialização simultânea para usuários separados, essa propriedade pode ser definida como 1 (um). Se a inicialização serializada for necessária, InitializationReentrancy permanecerá 0 (zero). Em ambas as instâncias, PerUserInitialization é definido como TRUE.

Um provedor puro ou um provedor que define a propriedade Pure como TRUE existe apenas para solicitações de serviço de aplicativos e do WMI. A maioria dos provedores são provedores puros. Um provedor que não é puro é a exceção. Os provedores que não são puros fazem a transição para a função do cliente depois de concluírem as solicitações de manutenção.

Um exemplo de um provedor não puro é um provedor de push que começa a emitir consultas e faz solicitações do WMI após concluir a inicialização. Um provedor de push não tem responsabilidades, exceto para atualizar o repositório CIM com dados no momento da inicialização. Depois de atualizar o repositório, um provedor de push pode aguardar para ser descarregado ou fazer a transição para a função do cliente. O provedor de push que espera para ser descarregado é um provedor puro. O provedor de push que participa das atividades do cliente não é puro.

O WMI deve ser capaz de distinguir provedores puros de provedores não puros para que possa determinar quando é seguro desligar. O WMI deve aguardar a conclusão de todas as operações que envolvem provedores não puros antes de ser desligado com segurança.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Todos os namespaces do WMI

Confira também

__Provider

Classes do sistema do WMI

Registrar um provedor