Table of contents
TOC
Collapse the table of content
Expand the table of content

ICSPNode

Last Updated: 10/28/2016

This interface does most of the work in a configuration service provider. Each individual node in a configuration service provider tree is represented by a separate implementation of this interface. The actions of a ConfigManager2 client are typically translated into calls to an instance of an ICSPNode.

These methods must be implemented so that, if they fail, the node's state at the end of the method matches the state before the method was called.

Some nodes will not be able to perform certain actions, and can return CFGMGR_E_COMMANDNOTALLOWED for those methods. For each method that is implemented for externally–transactioned nodes, the contrary method must also be implemented, as defined by "Determine node operations" in Designing a custom configuration service provider.

The following table shows the methods defined by this interface that OEMs must implement.

MethodDescription

ICSPNode::Add

Adds an immediate child to a configuration service provider node and returns a pointer to the new child node.

ICSPNode::Clear

Deletes the contents and children of the current configuration service provider node. Called before ICSPNode::DeleteChild.

ICSPNode::Copy

Makes a copy of the current node at the specified path within the configuration service provider. If the target node exists, it should be overwritten.

ICSPNode::DeleteChild

Deletes the specified child node from the configuration service provider node.

ICSPNode::DeleteProperty

Deletes a property from a configuration service provider node.

ICSPNode::Execute

Runs a task on an internally-transactioned configuration service provider node by passing in the specified user data and returning a result.

ICSPNode::GetChildNodeNames

Returns the list of children for a configuration service provider node.

ICSPNode::GetProperty

Returns a property value from a configuration service provider node.

ICSPNode::GetPropertyIdentifiers

Returns a list of non-standard properties supported by the node. The returned array must be allocated with CoTaskMemAlloc.

ICSPNode::GetValue

Gets the value and data type for the node. Interior (non-leaf) nodes may not have a value.

ICSPNode::Move

Moves this node to a new location within the configuration service provider. If the target node already exists, it should be overwritten.

ICSPNode::SetProperty

Sets a property value for a configuration service provider node.

ICSPNode::SetValue

Sets the value for the configuration service provider node. It is an error to attempt to set the value of an interior node.

Create a custom configuration service provider

© 2017 Microsoft