windows-itpro-docs/windows/client-management/mdm/icspnodetransactioning.md
2018-05-11 10:45:43 -07:00

4.4 KiB

title, description, ms.assetid, ms.author, ms.topic, ms.prod, ms.technology, author, ms.date
title description ms.assetid ms.author ms.topic ms.prod ms.technology author ms.date
ICSPNodeTransactioning ICSPNodeTransactioning 24dc518a-4a8d-41fe-9bc6-217bbbdf6a3f maricia article w10 windows MariciaAlforque 06/26/2017

ICSPNodeTransactioning

This is an optional interface that enables a configuration service provider to define its own transactioning scheme (internal transactioning) for an individual node. Transactioning supports the ability to roll back previous actions on a node. The majority of nodes use external transactioning, which is handled automatically, and do not need to implement this interface. For more information about internal and external transactioning, including how to handle the RollbackAction functions, see "Determine node operations" in Designing a custom configuration service provider.

interface ICSPNodeTransactioning : IUnknown
{
    HRESULT PersistRollbackAddState([in] IConfigManager2URI* puriChild, 
                                    [in] CFG_DATATYPE DataType, 
                                    [in] VARIANT varValue, 
                                    [in] ISequentialStream* pRollbackStream, 
                                    [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackCopyState([in] IConfigManager2URI* puriDestination, 
                                     [in] ISequentialStream* pRollbackStream, 
                                     [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackDeleteChildState([in] IConfigManager2URI* puriChild, 
                                            [in] ISequentialStream* pRollbackStream, 
                                            [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackClearState([in] ISequentialStream* pRollbackStream, 
                                      [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackExecuteState([in] VARIANT varUserData, 
                                        [in] ISequentialStream* pRollbackStream, 
                                        [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackMoveState([in] IConfigManager2URI* puriDestination, 
                                     [in] ISequentialStream* pRollbackStream, 
                                     [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackSetValueState([in] VARIANT varValue, 
                                         [in] ISequentialStream* pRollbackStream, 
                                         [in] ISequentialStream* pUninstallStream);
    HRESULT PersistRollbackSetPropertyState([in] REFGUID guidProperty, 
                                            [in] VARIANT varValue, 
                                            [in] ISequentialStream* pRollbackStream, 
                                            [in] ISequentialStream* pUninstallStream); 
    HRESULT PersistRollbackDeletePropertyState([in] REFGUID guidProperty, 
                                               [in] ISequentialStream* pRollbackStream, 
                                               [in] ISequentialStream* pUninstallStream);
    HRESULT RollbackAdd([in] ISequentialStream* pUndoStream, 
                        [in] BOOL fRecoveryRollback);
    HRESULT RollbackCopy([in] ISequentialStream* pUndoStream, 
                         [in] BOOL fRecoveryRollback);
    HRESULT RollbackDeleteChild([in] ISequentialStream* pUndoStream, 
                                [in] BOOL fRecoveryRollback);
    HRESULT RollbackClear([in] ISequentialStream* pUndoStream, 
                          [in] BOOL fRecoveryRollback);
    HRESULT RollbackExecute([in] ISequentialStream* pUndoStream, 
                            [in] BOOL fRecoveryRollback);
    HRESULT RollbackMove([in] ISequentialStream* pUndoStream, 
                         [in] BOOL fRecoveryRollback);
    HRESULT RollbackSetValue([in] ISequentialStream* pUndoStream, 
                             [in] BOOL fRecoveryRollback);
    HRESULT RollbackSetProperty([in] ISequentialStream* pUndoStream, 
                                [in] BOOL fRecoveryRollback);
    HRESULT RollbackDeleteProperty([in] ISequentialStream* pUndoStream, 
                                   [in] BOOL fRecoveryRollback);

    HRESULT Commit();
};

Create a custom configuration service provider