windows-itpro-docs/windows/client-management/mdm/icspnodetransactioning.md
Nicholas Brower ced60b41cc Merged PR 1941: adding ms.date to each mdm topic
adding ms.date to each mdm topic
2017-06-26 21:36:04 +00:00

82 lines
4.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: ICSPNodeTransactioning
description: ICSPNodeTransactioning
ms.assetid: 24dc518a-4a8d-41fe-9bc6-217bbbdf6a3f
ms.author: maricia
ms.topic: article
ms.prod: w10
ms.technology: windows
author: nickbrower
ms.date: 06/19/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](design-a-custom-windows-csp.md).
``` syntax
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();
};
```
## Related topics
[Create a custom configuration service provider](create-a-custom-configuration-service-provider.md)