__Win32Provider class

The __Win32Provider system class registers information about the physical implementation of a provider in WMI. Providers that do not set the HostingModel property are loaded, by default, to run in a Wmiprvse.exe process as NetworkServiceHostOrSelfHost.

The following syntax is simplified from Managed Object Format (MOF) code and includes all inherited properties. Properties are listed in alphabetic order, not MOF order.

Syntax

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;
};

Members

The __Win32Provider class has these types of members:

Properties

The __Win32Provider class has these properties.

ClientLoadableCLSID

Data type: string

Access type: Read/write

Class identifier that WMI uses to determine whether or not to load a high performance provider into the client process or the WMI process. If both the provider and client are located on the same computer, WMI loads the provider in-process to the client by using ClientLoadableCLSID as the class identifier. When the provider and client are located on different computers, WMI loads the provider in-process to WMI. WMI also uses ClientLoadableCLSID to support refresh operations.

For more information, see Registering a High-Performance Provider.

CLSID

Data type: string

Access type: Read/write

GUID that represents the class identifier (CLSID) of the provider COM object. This COM object must contain an implementation of the IWbemProviderInit interface.

Concurrency

Data type: sint32

Access type: Read/write

Not used.

DefaultMachineName

Data type: string

Access type: Read/write

Identifies the computer on which to start the provider. If the provider runs on the local computer it is NULL.

Enabled

Data type: boolean

Access type: Read/write

If TRUE, this instance is enabled and can be used to complete client requests.

HostingModel

Data type: string

Access type: Read/write

This property is composed of values from the MSFT_Providers HostingGroup and HostingSpecification properties. The value of this property specifies how WMI loads the provider and the security account it runs under. For more information about setting the HostingModel property, see Provider Hosting and Security and Registering a Provider.

ImpersonationLevel

Data type: sint32

Access type: Read/write

Reserved. The default value is zero (0).

InitializationReentrancy

Data type: sint32

Access type: Read/write

Set of flags that provide information about serialization. The default value is zero (0).

0

All initialization of this provider must be serialized.

1

All initializations of this provider in the same namespace must be serialized.

2

No initialization serialization is necessary.

InitializationTimeoutInterval

Data type: datetime

Access type: Read/write

Not used.

InitializeAsAdminFirst

Data type: boolean

Access type: Read/write

TBD

Name

Data type: string

Access type: Read/write

Qualifiers: Key

The provider name.

OperationTimeoutInterval

Data type: datetime

Access type: Read/write

Not used.

PerLocaleInitialization

Data type: boolean

Access type: Read/write

If TRUE, the provider is initialized for each locale when a user connects to the same namespace more than one time using different locales. The default value is FALSE.

PerUserInitialization

Data type: boolean

Access type: Read/write

If TRUE, the provider is initialized one time for each NT LAN Manager (NTLM) user that makes requests to the provider. If FALSE (default), the provider is initialized one time for all users.

Pure

Data type: boolean

Access type: Read/write

If TRUE, the provider agrees to prepare to unload by calling IUnknown::Release on all outstanding interface points when WMI calls the Release method of its primary interface. Providers that must remain clients of WMI after they do not function as providers should set Pure to FALSE. The default setting is TRUE. For more information, see the Remarks section of this topic.

SecurityDescriptor

Data type: string

Access type: Read/write

Security descriptor (SD) in the Security Descriptor Definition Language (SDDL) that determines the set of users that can successfully call IWbemDecoupledRegistrar:Register for the decoupled provider. For more information, see the Security Descriptor Definition Language topic in the Security section of the Windows SDK. This security descriptor is used only for decoupled providers, and does not affect other providers. For more information, see Incorporating a Provider in an Application.

WMI performs access checks for decoupled providers that use the IWbemProviderInit and IWbemObjectSink interfaces. If the security descriptor is NULL, then only applications or services that run under the LocalSystem, NetworkService, LocalService accounts can run a decoupled provider.

The following string shows a decoupled provider to be run only by built-in Administrators."O:BAG:BAD:(A;;0x1;;;BA)"

For more information about setting the SecurityDescriptor property, see Maintaining WMI Security.

SupportsExplicitShutdown

Data type: boolean

Access type: Read/write

Not used.

SupportsExtendedStatus

Data type: boolean

Access type: Read/write

Not used.

SupportsQuotas

Data type: boolean

Access type: Read/write

Not used.

SupportsSendStatus

Data type: boolean

Access type: Read/write

Not used.

SupportsShutdown

Data type: boolean

Access type: Read/write

Not used.

SupportsThrottling

Data type: boolean

Access type: Read/write

Not used.

UnloadTimeout

Data type: datetime

Access type: Read/write

Date and Time Format that specifies how long WMI allows the provider to remain idle before it is unloaded. Typically, providers request that WMI wait no longer than five minutes.

For the current version of WMI, the value of this property is ignored. WMI unloads the provider based on the time-out value in an internal class in the \root namespace. It is recommended that providers set UnloadTimeout. For more information, see Unloading a Provider.

Version

Data type: uint32

Access type: Read/write

Version of the provider. The supported versions are 1 and 2. Version 2 strengthens validity checks for all associated property registrations, specifically the ImpersonationLevel property.

Remarks

The __Win32Provider class is derived from __Provider.

Most providers can accept the default values for the InitializationReentrancy property. However, if a provider can support simultaneous initialization for separate users, this property can be set to 1 (one). If serialized initialization is necessary, InitializationReentrancy remains 0 (zero). In both instances, PerUserInitialization is set to TRUE.

A pure provider or a provider that sets the Pure property to TRUE, exists only to service requests from applications and WMI. Most providers are pure providers. A nonpure provider is the exception. Nonpure providers transition to the role of client after they complete servicing requests.

An example of a nonpure provider is a push provider that starts to issue queries, and makes requests of WMI after it completes initialization. A push provider does not have responsibilities except to update the CIM repository with data at initialization time. After updating the repository, a push provider can wait to be unloaded, or transition to the role of client. The push provider that waits to be unloaded is a pure provider. The push provider that participates in client activities is nonpure.

WMI must be able to distinguish pure providers from non-pure providers so that it can determine when it is safe to shut down. WMI must wait for all operations that involve non-pure providers to complete before it can shut down safely.

Requirements

Requirement Value
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Namespace
All WMI namespaces

See also

__Provider

WMI System Classes

Registering a Provider