From df70010de240ee50a6bec6e83afa4c6f68ff22ae Mon Sep 17 00:00:00 2001 From: Vinay Pamnani <37223378+vinaypamnani-msft@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:49:11 -0500 Subject: [PATCH] NodeCache CSP --- .../client-management/mdm/nodecache-csp.md | 966 +++++++++++++++--- .../mdm/nodecache-ddf-file.md | 856 ++++++++-------- 2 files changed, 1249 insertions(+), 573 deletions(-) diff --git a/windows/client-management/mdm/nodecache-csp.md b/windows/client-management/mdm/nodecache-csp.md index b7fa0fbc34..73dafa6c77 100644 --- a/windows/client-management/mdm/nodecache-csp.md +++ b/windows/client-management/mdm/nodecache-csp.md @@ -1,29 +1,23 @@ --- title: NodeCache CSP -description: Use the NodeCache configuration service provider (CSP) to synchronize, monitor, and manage the client cache. -ms.reviewer: +description: Learn more about the NodeCache CSP. +author: vinaypamnani-msft manager: aaroncz ms.author: vinpa -ms.topic: article +ms.date: 02/21/2023 +ms.localizationpriority: medium ms.prod: windows-client ms.technology: itpro-manage -author: vinaypamnani-msft -ms.date: 06/26/2017 +ms.topic: reference --- + + + # NodeCache CSP -The table below shows the applicability of Windows: - -|Edition|Windows 10|Windows 11| -|--- |--- |--- | -|Home|Yes|Yes| -|Pro|Yes|Yes| -|Windows SE|No|Yes| -|Business|Yes|Yes| -|Enterprise|Yes|Yes| -|Education|Yes|Yes| - + + The NodeCache configuration service provider is used to manage the client cache. This configuration service provider is to be used only by enterprise management servers. It provides a level of abstraction that decouples the management of the node list from a specific backing store. It synchronizes the client cache with the server side cache. It also provides an API for monitoring device-side cache changes. NodeCache supports the comparison of hash values instead of actual node values: @@ -35,90 +29,347 @@ application/x-nodemon-sha256 ``` NodeCache will hash the values and compare with a hash value that was sent down by the server. This process supports checking a parent node and its children recursively. + + The following example shows the NodeCache configuration service provider in tree format. + +```text +./Device/Vendor/MSFT/NodeCache +--- {ProviderID} +------ CacheVersion +------ ChangedNodes +------ ChangedNodesData +------ Nodes +--------- {NodeID} +------------ AutoSetExpectedValue +------------ ExpectedValue +------------ NodeURI +./User/Vendor/MSFT/NodeCache +--- {ProviderID} +------ CacheVersion +------ ChangedNodes +------ ChangedNodesData +------ Nodes +--------- {NodeID} +------------ AutoSetExpectedValue +------------ ExpectedValue +------------ NodeURI ``` -./User/Vendor/MSFT -NodeCache -----ProviderID ---------CacheVersion ---------ChangedNodes ---------ChangedNodesData ---------Nodes -------------NodeID -----------------NodeURI -----------------ExpectedValue -----------------AutoSetExpectedValue + + +## Device/{ProviderID} -./Device/Vendor/MSFT -NodeCache -----ProviderID ---------CacheVersion ---------ChangedNodes ---------ChangedNodesData ---------Nodes -------------NodeID -----------------NodeURI -----------------ExpectedValue -----------------AutoSetExpectedValue + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + - -./User/Vendor/MSFT -./Device/Vendor/MSFT -NodeCache -----ProviderID ---------CacheVersion ---------ChangedNodes ---------ChangedNodesData ---------Nodes -------------NodeID -----------------NodeURI -----------------ExpectedValue -----------------AutoSetExpectedValue + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID} ``` -**./Device/Vendor/MSFT and ./User/Vendor/MSFT** -Required. The root node for the NodeCache object. Supported operation is Get. This configuration service provider is used for enterprise device management only. This parameter's value is a predefined MIME type to identify this managed object in OMA DM syntax. + -***ProviderID*** -Optional. Group settings per DM server. Each group of settings is distinguished by the server’s Provider ID. It should be the same DM server **PROVIDER-ID** value that was supplied through the [w7 APPLICATION configuration service provider](w7-application-csp.md) XML during the enrollment process. Only one enterprise management server is supported. That is, there should be only one **ProviderID** node under **NodeCache**. Scope is dynamic. + + +Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the [w7 APPLICATION](w7-application-csp.md) configuration service provider XML during the enrollment process. In Windows Phone 8, only one enterprise management server is supported. That is, there should be only one ProviderID node under NodeCache. + -Supported operations are Get, Add, and Delete. + + + -***ProviderID*/CacheVersion** -Optional. Character string representing the cache version set by the server. Scope is dynamic. + +**Description framework properties**: -Data type is string. Supported operations are Get, Add, and Replace. +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Add, Delete, Get | +| Dynamic Node Naming | UniqueName: It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. | + -***ProviderID*/ChangedNodes** -Optional. List of nodes whose values don't match their expected values as specified in **/*NodeID*/ExpectedValue**. Scope is dynamic. + + + -Data type is string. Supported operation is Get. + -***ProviderID*/ChangedNodesData** -Added in Windows 10, version 1703. Optional. XML containing nodes whose values don't match their expected values as specified in /NodeID/ExpectedValue. + +### Device/{ProviderID}/CacheVersion -Supported operation is Get. + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + -***ProviderID*/Nodes** -Required. Root node for cached nodes. Scope is dynamic. + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion +``` + -Supported operation is Get. + + +Character string representing the cache version set by the server. + -**/Nodes/***NodeID* -Optional. Information about each cached node is stored under *NodeID* as specified by the server. This value must not contain a comma. Scope is dynamic. + + + -Supported operations are Get, Add, and Delete. + +**Description framework properties**: -**/*NodeID*/NodeURI** -Required. This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. Scope is dynamic. +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Get, Replace | + -Data type is string. Supported operations are Get, Add, and Delete. + + + -**/*NodeID*/ExpectedValue** -Required. The server expects this value to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. Scope is dynamic. Supported values are string and x-nodemon-nonexistent. + -Supported operations are Get, Add, and Delete. + +### Device/{ProviderID}/ChangedNodes + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes +``` + + + + +List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Get | + + + + + + + + + +### Device/{ProviderID}/ChangedNodesData + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData +``` + + + + +XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | xml | +| Access Type | Get | + + + + + + + + + +### Device/{ProviderID}/Nodes + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes +``` + + + + +Root node for cached nodes. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Get | + + + + + + + + + +#### Device/{ProviderID}/Nodes/{NodeID} + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID} +``` + + + + +Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Add, Delete, Get | +| Dynamic Node Naming | ServerGeneratedUniqueIdentifier | + + + + + + + + + +##### Device/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue +``` + + + + +This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | null | +| Access Type | Add, Delete, Get | + + + + + + + + + +##### Device/{ProviderID}/Nodes/{NodeID}/ExpectedValue + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue +``` + + + + +This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. + + + + +Supported values are string and x-nodemon-nonexistent. + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Delete, Get | + + + + +**Example**: Here's an example for setting the ExpectedValue to nonexistent. @@ -127,7 +378,7 @@ Here's an example for setting the ExpectedValue to nonexistent. 10 - ./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue + ./Device/Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue chr @@ -136,60 +387,449 @@ Here's an example for setting the ExpectedValue to nonexistent. ``` + -**/*NodeID*/AutoSetExpectedValue** -Added in Windows 10, version 1703. Required. This parameter's value automatically sets the value on the device to match the actual value of the node. The node is specified in NodeURI. + -Supported operations are Add, Get, and Delete. + +##### Device/{ProviderID}/Nodes/{NodeID}/NodeURI + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1511 [10.0.10586] and later | + + + +```Device +./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/NodeURI +``` + + + + +This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Delete, Get | + + + + + + + + + +## User/{ProviderID} + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID} +``` + + + + +Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the [w7 APPLICATION](w7-application-csp.md) configuration service provider XML during the enrollment process. In Windows Phone 8, only one enterprise management server is supported. That is, there should be only one ProviderID node under NodeCache. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Add, Delete, Get | +| Dynamic Node Naming | UniqueName: It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. | + + + + + + + + + +### User/{ProviderID}/CacheVersion + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion +``` + + + + +Character string representing the cache version set by the server. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Get, Replace | + + + + + + + + + +### User/{ProviderID}/ChangedNodes + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes +``` + + + + +List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Get | + + + + + + + + + +### User/{ProviderID}/ChangedNodesData + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData +``` + + + + +XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | xml | +| Access Type | Get | + + + + + + + + + +### User/{ProviderID}/Nodes + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes +``` + + + + +Root node for cached nodes. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Get | + + + + + + + + + +#### User/{ProviderID}/Nodes/{NodeID} + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID} +``` + + + + +Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | node | +| Access Type | Add, Delete, Get | +| Dynamic Node Naming | ServerGeneratedUniqueIdentifier | + + + + + + + + + +##### User/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue +``` + + + + +This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | null | +| Access Type | Add, Delete, Get | + + + + + + + + + +##### User/{ProviderID}/Nodes/{NodeID}/ExpectedValue + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue +``` + + + + +This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. + + + + +Supported values are string and x-nodemon-nonexistent. + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Delete, Get | + + + + +**Example**: + +Here's an example for setting the ExpectedValue to nonexistent. + +```xml + + 10 + + + ./User/Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue + + + chr + application/x-nodemon-nonexistent + + + +``` + + + + + +##### User/{ProviderID}/Nodes/{NodeID}/NodeURI + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| :heavy_check_mark: Device
:heavy_check_mark: User | :x: Home
:heavy_check_mark: Pro
:heavy_check_mark: Enterprise
:heavy_check_mark: Education
:heavy_check_mark: Windows SE | :heavy_check_mark: Windows 10, version 1703 [10.0.15063] and later | + + + +```User +./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/NodeURI +``` + + + + +This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | chr (string) | +| Access Type | Add, Delete, Get | + + + + + + + + + + ## A typical DM session with the NodeCache configuration service provider - -1. The device connects to a DM server. - -2. The server queries the **NodeCache** version by issuing a Get operation for ./Vendor/MSFT/NodeCache/*ProviderID*/CacheVersion LocURI - -3. If the device **CacheVersion** and the server-side cache differ (due to a device crash or server crash), the server can clear the server-side cache and go to Step 5. - -4. The server updates the server-side cache: - - 1. Sends a Get operation for ./Vendor/MSFT/NodeCache/*ProviderID*/ChangedNodes LocURI - - 2. Response is a list of changed node IDs. Each ID in the list corresponds to a node under ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes root - - 3. For each node in the invalid nodes list, the server sends a `GET` command to retrieve the actual value of the node. For example, `GET `, where `NodeURI` is a full device LocURI that corresponds to the invalid cache node. - - 4. Nodes in the server-side cache are updated with the actual values received from the device. - - 5. For each updated node, a `REPLACE` command is sent to the device to update the device-side cache: - - `REPLACE ./Vendor/MSFT/NodeCache/ProviderID/Nodes/NodeID/ExpectedValue => ActualValue` - - 6. A new cache version is created and sent to the device: - - `REPLACE ./Vendor/MSFT/NodeCache/ProviderID/CacheVersion => new_version` - - The `new_version` value is stored by the server. - -5. The management server retrieves the corresponding value from the server-side cache: - - 1. If a value already exists in the server-side cache, retrieve the value from the server-side cache instead of going to the device. - - 2. If a value doesn't exist in the server-side cache, do the following tasks: - - 1. Create a new entry with a unique *NodeID* in the server-side cache. - - 2. Query the device to retrieve the actual value of the URI. - - 3. Create a new node under ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes with *NodeID* value. - - 4. Set up **NodeURI** and **ExpectedValue** for the ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes/*NodeID* node. - - 5. Update the **CachedNodes** version. +1. The device connects to a DM server. +2. The server queries the **NodeCache** version by issuing a Get operation for ./Vendor/MSFT/NodeCache/*ProviderID*/CacheVersion LocURI +3. If the device **CacheVersion** and the server-side cache differ (due to a device crash or server crash), the server can clear the server-side cache and go to Step 5. +4. The server updates the server-side cache: + 1. Sends a Get operation for ./Vendor/MSFT/NodeCache/*ProviderID*/ChangedNodes LocURI + 2. Response is a list of changed node IDs. Each ID in the list corresponds to a node under ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes root + 3. For each node in the invalid nodes list, the server sends a `GET` command to retrieve the actual value of the node. For example, `GET `, where `NodeURI` is a full device LocURI that corresponds to the invalid cache node. + 4. Nodes in the server-side cache are updated with the actual values received from the device. + 5. For each updated node, a `REPLACE` command is sent to the device to update the device-side cache: + `REPLACE ./Vendor/MSFT/NodeCache/ProviderID/Nodes/NodeID/ExpectedValue => ActualValue` + 6. A new cache version is created and sent to the device: + `REPLACE ./Vendor/MSFT/NodeCache/ProviderID/CacheVersion => new_version` + The `new_version` value is stored by the server. +5. The management server retrieves the corresponding value from the server-side cache: + 1. If a value already exists in the server-side cache, retrieve the value from the server-side cache instead of going to the device. + 2. If a value doesn't exist in the server-side cache, do the following tasks: + 1. Create a new entry with a unique *NodeID* in the server-side cache. + 2. Query the device to retrieve the actual value of the URI. + 3. Create a new node under ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes with *NodeID* value. + 4. Set up **NodeURI** and **ExpectedValue** for the ./Vendor/MSFT/NodeCache/*ProviderID*/Nodes/*NodeID* node. + 5. Update the **CachedNodes** version. ## OMA DM examples - Creating settings for node caching: ```xml @@ -346,44 +986,45 @@ Replacing the cache version, node URI, and expected value: For AutoSetExpectedValue, a Replace operation with empty data will query the ./DevDetail/Ext/Microsoft/DeviceName. ```xml - - 2001 - - - ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20 - - - node - - - - - 2002 - - - ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/NodeURI - - ./DevDetail/Ext/Microsoft/DeviceName - - - - 2003 - - - ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/AutoSetExpectedValue - - - - + + 2001 + + + ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20 + + + node + + + + + 2002 + + + ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/NodeURI + + ./DevDetail/Ext/Microsoft/DeviceName + + + + 2003 + + + ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/AutoSetExpectedValue + + + + ``` -A Get operation on ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/ExpectedValue returns what the Device Name was when the AutoSet was called. +A Get operation on `./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/ExpectedValue` returns what the Device Name was when the AutoSet was called. A Get operation on the ChangedNodesData returns an encoded XML. Here's an example: ```xml U09NRU5FV1ZBTFVF ``` + It represents this example: ```xml @@ -397,19 +1038,10 @@ Id is the node ID that was added by the MDM server, and Uri is the path that the If a Uri is not set, the node will always be reported as changed, as in Node ID 10. The value inside of the node tag is the actual value returned by the Uri, which means that for Node ID 20 the DeviceName did not match what was previously expected, and the device name is now U09NRU5FV1ZBTFVF instead of what it was previously. + + -## Related topics - - -[Configuration service provider reference](index.yml) - - - - - - - - - +## Related articles +[Configuration service provider reference](configuration-service-provider-reference.md) diff --git a/windows/client-management/mdm/nodecache-ddf-file.md b/windows/client-management/mdm/nodecache-ddf-file.md index f5f3d05408..9b143a00d7 100644 --- a/windows/client-management/mdm/nodecache-ddf-file.md +++ b/windows/client-management/mdm/nodecache-ddf-file.md @@ -1,40 +1,160 @@ --- title: NodeCache DDF file -description: Learn about the OMA DM device description framework (DDF) for the NodeCache configuration service provider (CSP). -ms.reviewer: +description: View the XML file containing the device description framework (DDF) for the NodeCache configuration service provider. +author: vinaypamnani-msft manager: aaroncz ms.author: vinpa -ms.topic: article +ms.date: 02/21/2023 +ms.localizationpriority: medium ms.prod: windows-client ms.technology: itpro-manage -author: vinaypamnani-msft -ms.date: 12/05/2017 +ms.topic: reference --- + + # NodeCache DDF file - -This topic shows the OMA DM device description framework (DDF) for the **NodeCache** configuration service provider. DDF files are used only with OMA DM provisioning XML. - -Looking for the DDF XML files? See [CSP DDF files download](configuration-service-provider-ddf.md). - -The XML below is the current version for this CSP. +The following XML file contains the device description framework (DDF) for the NodeCache configuration service provider. ```xml -]> +]> 1.2 + + + + NodeCache + ./User/Vendor/MSFT + + + + + The root node for the NodeCache object. + + + + + + + + + + + + + + 10.0.15063 + 1.1 + 0x4;0x1B;0x30;0x31;0x48;0x54;0x62;0x63;0x64;0x65;0x77;0x79;0x7A;0x7D;0x7E;0x81;0x82;0x87;0x88;0x88*;0x8A;0x8B;0xA1;0xA2;0xA4;0xA5;0xAB;0xAC;0xAF;0xB4;0xBC;0xBF;0xCA;0xCB;0xCD; + + + + + + + + + + + + Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. In Windows Phone 8, only one enterprise management server is supported. That is, there should be only one ProviderID node under NodeCache. + + + + + + + + + + ProviderID + + + + + It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. + + - NodeCache - ./User/Vendor/MSFT + CacheVersion + + + + + + + Character string representing the cache version set by the server. + + + + + + + + + + + + + + + + + + ChangedNodes - The root node for the NodeCache object. + List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue + + + + + + + + + + + + + + + + ChangedNodesData + + + + + XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue + + + + + + + + + + + + + + 10.0.15063 + 1.1 + + + + + Nodes + + + + + Root node for cached nodes @@ -42,110 +162,53 @@ The XML below is the current version for this CSP. - + - com.microsoft/1.2/MDM/NodeCache + - + + - + - Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. + Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. - + - ProviderID + NodeID - + + + + + + - CacheVersion + NodeURI - - + + - Character string representing the cache version set by the server. + This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. - - - - - - - - text/plain - - - - - ChangedNodes - - - - - List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue - - - - - - - - - - - text/plain - - - - - ChangedNodesData - - - - - XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue - - - - - - - - - - - text/plain - - - - - Nodes - - - - - Root node for cached nodes - - - @@ -153,224 +216,24 @@ The XML below is the current version for this CSP. - + + + - - - - - - - - - Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. - - - - - - - - - - NodeID - - - - - - NodeURI - - - - - - - This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. - - - - - - - - - - - text/plain - - - - - ExpectedValue - - - - - - - This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. - - - - - - - - - - - text/plain - - - - - AutoSetExpectedValue - - - - - - - This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. - - - - - - - - - - - text/plain - - - - - - - - NodeCache - ./Device/Vendor/MSFT - - - - - The root node for the NodeCache object. - - - - - - - - - - - com.microsoft/1.2/MDM/NodeCache - - - - - - - - - - - Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. - - - - - - - - - - ProviderID - - - - - CacheVersion + ExpectedValue - - + + - Character string representing the cache version set by the server. + This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. - - - - - - - - text/plain - - - - - ChangedNodes - - - - - List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue - - - - - - - - - - - text/plain - - - - - ChangedNodesData - - - - - XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue - - - - - - - - - - - text/plain - - - - - Nodes - - - - - Root node for cached nodes - - - @@ -378,119 +241,300 @@ The XML below is the current version for this CSP. - + + + + + + + AutoSetExpectedValue + + + + + + + This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. + + + + + + + + + + + + + + 10.0.15063 + 1.1 + - - - - - - - - - Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. - - - - - - - - - - NodeID - - - - - - NodeURI - - - - - - - This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. - - - - - - - - - - - text/plain - - - - - ExpectedValue - - - - - - - This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. - - - - - - - - - - - text/plain - - - - - AutoSetExpectedValue - - - - - - - This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. - - - - - - - - - - - text/plain - - - - + + + + NodeCache + ./Device/Vendor/MSFT + + + + + The root node for the NodeCache object. + + + + + + + + + + + + + + 10.0.10586 + 1.0 + 0x4;0x1B;0x30;0x31;0x48;0x54;0x62;0x63;0x64;0x65;0x77;0x79;0x7A;0x7D;0x7E;0x81;0x82;0x87;0x88;0x88*;0x8A;0x8B;0xA1;0xA2;0xA4;0xA5;0xAB;0xAC;0xAF;0xB4;0xBC;0xBF;0xCA;0xCB;0xCD; + + + + + + + + + + + + Group settings per DM server. Each group of settings is distinguished by the server's Provider ID. It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. In Windows Phone 8, only one enterprise management server is supported. That is, there should be only one ProviderID node under NodeCache. + + + + + + + + + + ProviderID + + + + + It should be the same DM server PROVIDER-ID value that was supplied through the w7 APPLICATION configuration service provider XML during the enrollment process. + + + + CacheVersion + + + + + + + Character string representing the cache version set by the server. + + + + + + + + + + + + + + + + + + ChangedNodes + + + + + List of nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue + + + + + + + + + + + + + + + + ChangedNodesData + + + + + XML containing nodes whose values do not match their expected values as specified in /NodeID/ExpectedValue + + + + + + + + + + + + + + 10.0.15063 + 1.1 + + + + + Nodes + + + + + Root node for cached nodes + + + + + + + + + + + + + + + + + + + + + + + Information about each cached node is stored under NodeID as specified by the server. This value must not contain a comma. + + + + + + + + + + NodeID + + + + + + + + + + + NodeURI + + + + + + + This node's value is a complete OMA DM node URI. It can specify either an interior or leaf node in the device management tree. + + + + + + + + + + + + + + + + + + ExpectedValue + + + + + + + This is the value that the server expects to be on the device. When the configuration service provider initiates a session, it checks the expected value against the node's actual value. + + + + + + + + + + + + + + + + + + AutoSetExpectedValue + + + + + + + This will automatically set the value on the device to match the node's actual value. The node is specified in NodeURI. + + + + + + + + + + + + + + 10.0.15063 + 1.1 + + + + + + + ``` -## Related topics - - -[NodeCache configuration service provider](nodecache-csp.md) - -  - -  - - - - - +## Related articles +[NodeCache configuration service provider reference](nodecache-csp.md)