3.1.4.3 IWbemServices Interface

The IWbemServices interface exposes methods that MUST provide management services to client processes. The implementation MUST implement all methods and return errors if the semantics of the operation cannot be completed. IWbemServices defines the execution scope for all methods implemented on the interface. The initial scope MUST be established by the IWbemLevel1Login::NTLMLogin call, which returns the interface pointer.

Methods in RPC Opnum Order

Method

Description

OpenNamespace

Provides the client with an IWbemServices interface pointer that is scoped to the requested namespace.

Opnum: 3

CancelAsyncCall

Cancels a currently pending asynchronous method call identified by the IWbemObjectSink pointer passed to the initial asynchronous method.

Opnum: 4

QueryObjectSink

Obtains a notification handler that allows the client to send events directly to the server.

Opnum: 5

GetObject

Retrieves a CIM class or a CIM instance.

Opnum: 6

GetObjectAsync

Asynchronous version of the IWbemServices::GetObject method.

Opnum: 7

PutClass

Creates a new class or updates an existing class in the namespace associated with the current IWbemServices interface.

Opnum: 8

PutClassAsync

Asynchronous version of the IWbemServices::PutClass method.

Opnum: 9

DeleteClass

Deletes a specified class from the namespace associated with the current IWbemServices interface.

Opnum: 10

DeleteClassAsync

Asynchronous version of the IWbemServices::DeleteClass method.

Opnum: 11

CreateClassEnum

Creates a class enumeration.

Opnum: 12

CreateClassEnumAsync

Asynchronous version of the IWbemServices::CreateClassEnum method.

Opnum: 13

PutInstance

Creates or updates an instance of an existing class.

Opnum: 14

PutInstanceAsync

Asynchronous version of the PutInstance method.

Opnum: 15

DeleteInstance

Deletes an instance of an existing class from the namespace that is pointed to by the IWbemServices interface object that is used to call the method.

Opnum: 16

DeleteInstanceAsync

Asynchronous version of the IWbemServices::DeleteInstance method.

Opnum: 17

CreateInstanceEnum

Creates an instance enumeration of all class instances that satisfy the selection criteria.

Opnum: 18

CreateInstanceEnumAsync

Asynchronous version of the IWbemServices::CreateInstanceEnum method.

Opnum: 19

ExecQuery

Returns an enumerable collection of IWbemClassObject interface objects based on a query.

Opnum: 20

ExecQueryAsync

Asynchronous version of the IWbemServices::ExecQuery method.

Opnum: 21

ExecNotificationQuery

Server runs a query to receive events when called by a client to request subscription to the events.

Opnum: 22

ExecNotificationQueryAsync

Asynchronous version of the IWbemServices::ExecNotificationQuery method.

Opnum: 23

ExecMethod

Executes a CIM method implemented by a CIM class or a CIM instance retrieved from the IWbemServices interface.

Opnum: 24

ExecMethodAsync

Asynchronous version of the IWbemServices::ExecMethod method.

Opnum: 25

IWbemServices MUST be a DCOM Remote Protocol interface. The interface MUST be uniquely identified by UUID {9556dc99-828c-11cf-a37e-00aa003240c7}. The object exporting this interface also implements the IWbemRefreshingServices interface, as shown in the following diagram.

The IWbemServices interface

Figure 5: The IWbemServices interface

For all methods, the server MUST increment CurrentRequestCount at the start of the method, and decrement it when returning from the method.

If IsServerPaused flag is set to True, the server MUST return WBEM_E_SERVER_TOO_BUSY if CurrentRequestCount is greater than MaxRequestLimit. The class names used in the operations MUST conform to the CLASS-NAME element of the WQL query. The server MUST treat class names in a case-insensitive manner.