__ObjectProviderRegistration class

The __ObjectProviderRegistration abstract system class serves as the parent class for classes that are used to register class and instance providers in WMI.

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

[abstract]
class __ObjectProviderRegistration : __ProviderRegistration
{
  sint32         InteractionType = 0;
  __Provider REF provider;
  string         QuerySupportLevels[];
  boolean        SupportsBatching;
  boolean        SupportsDelete = False;
  boolean        SupportsEnumeration = False;
  boolean        SupportsGet = False;
  boolean        SupportsPut = False;
  boolean        SupportsTransactions;
};

Members

The __ObjectProviderRegistration class has these types of members:

Properties

The __ObjectProviderRegistration class has these properties.

InteractionType

Data type: sint32

Access type: Read/write

Indicates whether or not the class or instance provider supplies its own data, or relies on WMI and the Common Information Model (CIM) repository. Pull providers support dynamic access to their data, and push providers store their data in the CIM repository, and rely on WMI to provide access to it. For more information, see Determining Push or Pull Status. The default value is 0 (zero).

Pull (0)

Provider is a pull provider.

Push (1)

Provider is a push provider.

PushVerify (2)

Provider is a push-verify provider. Note that push-verify is not supported at this time.

provider

Data type: __Provider

Access type: Read-only

Reference to an instance of __Provider that represents an object path to the object provider. This property is inherited from __ProviderRegistration.

QuerySupportLevels

Data type: string array

Access type: Read/write

Array of the types of provider-included support for query processing. Class providers do not support any type of queries. Instance providers can set QuerySupportLevels to NULL if they do not support query processing. Providers that support queries implement the IWbemServices::ExecQueryAsync method, and set this property to one or more of the following values (the property type is an array).

"WQL:UnarySelect"

"WQL:References"

"WQL:Associators"

"WQL:V1ProviderDefined"

SupportsBatching

Data type: boolean

Access type: Read/write

Not used.

SupportsDelete

Data type: boolean

Access type: Read/write

If True, the provider supports data deletion.

True

The provider supports class or instance deletion by implementing one of either IWbemServices::DeleteClassAsync (class providers), or IWbemServices::DeleteInstanceAsync (instance providers).

False

The provider does not support data deletion, and returns WBEM_E_PROVIDER_NOT_CAPABLE from DeleteClassAsync or DeleteInstanceAsync.

SupportsEnumeration

Data type: boolean

Access type: Read/write

If True, the provider supports data enumeration.

True

The provider supports data enumeration by implementing one of either IWbemServices::CreateClassEnumAsync (class providers), or IWbemServices::CreateInstanceEnumAsync (instance providers).

False

The provider does not support data enumeration, and returns WBEM_E_PROVIDER_NOT_CAPABLE from CreateClassEnumAsync or CreateInstanceEnumAsync.

SupportsGet

Data type: boolean

Access type: Read/write

If True, the class or instance provider supports data retrieval.

True

The provider supports data retrieval by implementing IWbemServices::GetObjectAsync.

False

The provider does not support data retrieval, and returns WBEM_E_PROVIDER_NOT_CAPABLE from GetObjectAsync.

SupportsPut

Data type: boolean

Access type: Read/write

If True, the class or instance provider supports data modification.

True

The provider supports class or instance modification by implementing one of either IWbemServices::PutClassAsync (class providers), or IWbemServices::PutInstanceAsync (class providers).

False

The provider does not support data modification and returns WBEM_E_PROVIDER_NOT_CAPABLE from PutClassAsync or PutInstanceAsync.

SupportsTransactions

Data type: boolean

Access type: Read/write

Not used.

Remarks

The __ObjectProviderRegistration class is derived from __ProviderRegistration.

Class providers must set the SupportsEnumeration property to True because the providers must be able to supply WMI with a list of their classes. If a class provider attempts to set this property to False, WMI flags the registration as illegal. Instance providers are not required to support enumeration, and can choose to set SupportsEnumeration to either True or False.

A provider that sets QuerySupportLevels to "WQL:UnarySelect" can accept a query that consists of the basic SELECT statement as supported in WMI version 1.0. Both class and instance providers are expected to be able to handle the __CLASS system property. Class providers are also expected to process the __SUPERCLASS system property and the ISA operator. The ISA operator is used to expand a result set to derived classes. If a provider is given a query that it cannot interpret, it requests that WMI handle it by returning the WBEM_E_TOO_COMPLEX error value. For a description of valid WQL syntax, see Querying with WQL.

A provider that sets QuerySupportLevels to WQL:V1ProviderDefined can try to support a larger set of the SQL syntax at its own risk, such as the ORDER BY clause. WMI does not interpret the additional clauses, or attempt to ensure that the result set is correct.

Only administrators can register or delete a provider by creating an instance of __Win32Provider and registering it.

Requirements

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

See also

__ProviderRegistration

WMI System Classes

Registering a Provider