Standard WMI Qualifiers

The following lists standard qualifiers specific to WMI.

Amendment

Data type: boolean

Applies to: classes

Indicates that a class contains amended qualifiers that are localized. The default is TRUE.

The associated class can be translated. To access the translated version, use the locale identifier to construct a namespace name.

Bypass_GetObject

Data type: boolean

Applies to: methods

Indicates that the method call should pass directly to the ExecMethodAsync call of the provider rather than the provider first making a call to GetObject to validate the object path. The default is FALSE. Using Bypass_GetObject can significantly improve performance.

Before using Bypass_GetObject, ensure that neither of the following actions are taken:

  • Derive a class from your class.
  • Override the method that has the Bypass_GetObject qualifier.

Failure to follow these precautions can result in invoking the method implementation of the parent class instead of the child class. For more information, see Using the Bypass_GetObject Qualifier.

CIM_Key

Data type: CIM_BOOLEAN

Applies to: properties

Indicates that the associated property is a key property in CIM but not in WMI.

CIMType

Data type: VT_BSTR

Applies to: properties, methods, parameters

Contains text describing the type of a property.

ClassContext

Data type: VT_BSTR

Applies to: classes

Indicates that a class has instances associated with more information dynamically supplied by a provider.

Deprecated

Data type: CIM_BOOLEAN

Applies to: properties, classes

Indicates the property has been superseded by another property.

Display

Applies to: classes, properties

The UUID of the associated class.

Dynamic

Data type: boolean

Applies to: classes, properties

Indicates a class whose instances are created dynamically. The value of this qualifier must be set to TRUE.

DynProps

Data type: boolean

Applies to: classes, instances

Indicates that an instance contains values provided by dynamic property providers. The default is TRUE.

You must specify this qualifier on such an instance. Only the value TRUE is allowed.

Fixed

Data type: CIM_BOOLEAN

Applies to: instances

Indicates that the value of this property cannot change during the lifetime of the instance.

ID

Data type: VT_I4

Applies to: properties, parameters

Uniquely identifies and sequences a property or method parameter when MOF statements are generated automatically.

This qualifier is required for method parameters only. When creating parameters for a method, class designers should begin with Id(0) for the first parameter and use each successive integer for each successive parameter. If the ID qualifiers are unintentionally omitted, the MOF compiler generates ID qualifiers automatically.

Implemented

Data type: boolean

Applies to: methods

Indicates that a method has an implementation supplied by a provider.

InstanceContext

Data type: VT_BSTR

Applies to: instances

Indicates that an instance contains values provided by a dynamic property provider.

The value is passed to the property provider as an argument to the IWbemPropertyProvider::GetProperty method.

Locale

Data type: VT_BSTR

Applies to: classes or instances

Specifies the language of origin for a class or instance. For more information about locale values, see Locale Codes.

NamespaceSecuritySDDL

Data type: string array

Applies to: namespace instances

Specifies a security descriptor for the namespace in SDDL format. For more information, see Setting Namespace Security When the Namespace is Created. The SDDL string is processed by WMI to establish the namespace security but not stored as a string. If no security descriptor is specified, the default security is used. For more information, see Setting Namepace Security Descriptors.

Optional

Data type: boolean

Applies to: parameters

Indicates that a parameter is not required, and that it has a well-behaved default value.

Privileges

Data type: string array

Applies to: properties, methods

Set of values used to inform the client which privileges are required to create instances, fill in properties, or perform methods. The default is FALSE.

PropertyContext

Data type: VT_BSTR

Applies to: properties

Indicates that an instance property contains values provided by dynamic property providers.

You must specify this qualifier on such a property. The value is passed to the property provider as an argument to IWbemPropertyProvider::GetProperty.

Provider

Data type: VT_BSTR

Applies to: classes

The value of this qualifier is the name of the dynamic provider that provides class instances and refreshes instance data. This name must be registered with WMI by creating an instance of the __Win32Provider class with the Name property containing this name. When this qualifier is specified on a class whose instances are provided dynamically, the Dynamic qualifier must also be specified.

RequiresEncryption

Data type: boolean

Applies to: namespace instances

If set to TRUE, RequiresEncryption marks a namespace so that client applications and scripts must connect with encrypted authentication. The authentication level must be set to RPC_C_AUTHN_LEVEL_PKT_PRIVACY in C++. In scripting or Visual Basic, authentication level must be set to WbemAuthenticationLevelPktPrivacy. For more information, see Setting Namepace Security Descriptors. The qualifier is used in MOF with the pragma namespace preprocessor command.

For more information, see Setting the Default Process Security Level Using C++ or Setting the Default Process Security Level Using VBScript. Scripting authentication levels are defined in WbemAuthenticationLevelEnum.

Singleton

Data type: boolean

Applies to: classes

Designates a class that can only have one instance and that does not contain key properties.

Only the value TRUE (default) is allowed.

Static

Data type: boolean

Applies to: methods

Indicates whether a method can called by using the class definition or its instances.

The method cannot be invoked from an instance.

SubType

Data type: VT_BSTR

Applies to: properties

Indicates that a property of type CIM_DATETIME represents a time interval rather than a specific time.

To identify the property as an interval, the value of this qualifier must be "interval". All other values for this qualifier are reserved for future use.

UUID

Data type: string

Applies to: classes

Universally unique identifier applied to the class.

ClassVersion

Data type: string

Applies to: classes

The version number of the class object. The default is NULL. The version number is incremented when changes are made to the class.

WritePrivileges

Data type: string array

Applies to: properties

Set of values indicating which system privileges must be available and enabled for a successful write operation.

Remarks

Locale Codes

A locale code is of the form "MS_<Three Digit Language ID>". For example, English locale is MS_409. The following table lists the language IDs.

Language Language ID (hexadecimal)
Arabic 401
Portuguese (Brazil) 416
Chinese (Simplified) 804
Chinese (Traditional) 404
Czech 405
Danish 406
Dutch 413
English (default) 409
Finnish 40b
French 40c
German 407
Greek 408
Hebrew 40d
Hungarian 40e
Italian 410
Japanese 411
Korean 412
Norwegian 414
Polish 415
Portuguese (Portugal) 816
Russian 419
Spanish c0a
Swedish 41D
Turkish 41f

Using the Bypass_GetObject Qualifier

Using the Bypass_GetObject qualifier on a method can produce confusing results.

The following example defines the Shape and Circle classes. Note that the Circle class is derived from the Shape class.

class Shape
{
   string Name;
   uint32 DrawIt();  // - draws an irregular geometric shape
};

class Circle : Shape
{
   uint32 DrawIt();  // - draws a circle
};

The following call to ExecMethod uses a Circle object named "MyCircle" to draw a circle.

ExecMethod("Shape.Name='MyCircle'","DrawIt");

In the previous scenario, WMI calls GetObject; discovers that "Shape.Name='MyCircle'" is a Circle; and executes the Circle implementation of DrawIt. However, if you use the Bypass_GetObject qualifier on DrawIt, WMI does not call GetObject, does not discover that "Shape.Name='MyCircle'" is a Circle, and executes the Shape implementation of DrawIt instead of the Circle implementation of DrawIt.

The following call to ExecMethod always invokes the correct implementation of DrawIt.

ExecMethod("Circle.Name='MyCircle'","DrawIt");

Requirements

Requirement Value
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008

See also

Setting Namepace Security Descriptors

WMI Qualifiers

Adding a Qualifier