IProvHelper

Exposes a set of methods for managing rollback data and passing transaction data between providers. Used by Microsoft® Provisioning Framework (MPF).

Provisioning engines call the GetRollbackData and SetRollbackData methods to store and retrieve rollback data. For example, if a procedure creates a registry key and values, the engine calls SetRollbackData to save the key path in the transaction log. After a crash, the engine calls GetRollbackData to retrieve the key path from the transaction log so rollback can delete the key. An engine can also call FlushRollbackData whenever it needs intermediate checkpoints for rollback data since, by default, the engine only flushes rollback data after the procedure returns successfully.

In addition to supporting rollback, the engine uses IProvHelper to pass non-XML transaction data between providers. Engines call the AddProperty, DeleteProperty, and QueryProperty methods to add, delete, and query properties in the transaction's property bag. The property bag contains keyed objects common to all providers. By default, any provider procedure in the same transaction can access values from the property bag. In addition to properties added by providers, the property bag also includes the system properties listed in the following table.

Property Variant Type Description
tipUrl VT_BSTR Points to the Transaction Internet Protocol (TIP) URL for the transaction.
dtcTransactionObj VT_UNKNOWN Points to the ITransaction object associated with the current transaction.
transactionId VT_BSTR Contains the transaction ID that MPF uses to identify the request. This value is the same as \executeXml\context\transactionContext\@transactionId.
Implementation

IProvHelper is implemented in MapsProcCntl.dll. It inherits from IDispatch.

Accessing IProvHelper

When a provisioning engine processes a transaction involving a provider procedure, it passes an instance of IProvHelper to IProvProvider::ActivateProvider. Custom providers developed using the templates installed by the MPF SDK implement ActivateProvider as follows:

Developers writing providers on other platforms must manage references to the object passed in the ActivateProvider call.

Public Methods
AddProperty Adds a key name/value pair to the provisioning transaction's property bag.
DeleteProperty Removes a key name/value pair from a provisioning transaction's property bag.
FlushRollbackData Saves rollback data to a persistent store.
GetRollbackData Retrieves rollback data associated with a provider action.
QueryProperty Queries the property bag for the value of a key name/value pair. Returns the property.
SetRollbackData Sets rollback data associated with the provider action.
 Applies To