---
title: DevicePreparation CSP
description: Learn more about the DevicePreparation CSP.
ms.date: 04/10/2024
---
# DevicePreparation CSP
[!INCLUDE [Windows Insider tip](includes/mdm-insider-csp-note.md)]
The following list shows the DevicePreparation configuration service provider nodes:
- ./Device/Vendor/MSFT/DevicePreparation
- [BootstrapperAgent](#bootstrapperagent)
- [ExecutionContext](#bootstrapperagentexecutioncontext)
- [MDMProvider](#mdmprovider)
- [MdmAgentInstalled](#mdmprovidermdmagentinstalled)
- [Progress](#mdmproviderprogress)
- [RebootRequired](#mdmproviderrebootrequired)
- [PageEnabled](#pageenabled)
- [PageErrorCode](#pageerrorcode)
- [PageErrorDetails](#pageerrordetails)
- [PageErrorPhase](#pageerrorphase)
- [PageSettings](#pagesettings)
- [PageStatus](#pagestatus)
## BootstrapperAgent
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/BootstrapperAgent
```
Parent node for configuring agent that orchestrates provisioning and communicate status to Device Preparation page.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `node` |
| Access Type | Get |
### BootstrapperAgent/ExecutionContext
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/BootstrapperAgent/ExecutionContext
```
This node holds opaque data that will be passed to the Bootstrapper Agent as a parameter when it's invoked to execute.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `chr` (string) |
| Access Type | Get, Replace |
## MDMProvider
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/MDMProvider
```
Parent node for configuring the MDM provider that interacts with the BootstrapperAgent.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `node` |
| Access Type | Get |
### MDMProvider/MdmAgentInstalled
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/MDMProvider/MdmAgentInstalled
```
This node indicates whether the MDM agent was installed or not. When set to true sets the AUTOPILOT_MDM_AGENT_REGISTERED WNF event.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `bool` |
| Access Type | Get, Replace |
| Default Value | False |
**Allowed values**:
| Value | Description |
|:--|:--|
| false (Default) | Mdm Agent Not Installed. |
| true | Mdm Agent Installed. |
### MDMProvider/Progress
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/MDMProvider/Progress
```
Node for reporting progress status as opaque data. Contract for data is between the server and EMM agent that reads the data.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `chr` (string) |
| Access Type | Add, Delete, Get, Replace |
### MDMProvider/RebootRequired
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/MDMProvider/RebootRequired
```
This node indicates whether an MDM policy was provisioned that requires a reboot.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `bool` |
| Access Type | Get |
| Default Value | False |
**Allowed values**:
| Value | Description |
|:--|:--|
| false (Default) | No Reboot Required. |
| true | Reboot Required. |
## PageEnabled
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageEnabled
```
This node determines whether to show the Device Preparation page during OOBE.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `bool` |
| Access Type | Get, Replace |
| Default Value | false |
**Allowed values**:
| Value | Description |
|:--|:--|
| false (Default) | Disable Page. |
| true | Enable Page. |
## PageErrorCode
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageErrorCode
```
This node provides specific overall HRESULT causing a fatal error on the Device Preparation page. This node is valid only if the PageErrorPhase node's value isn't Unknown.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `int` |
| Access Type | Get |
## PageErrorDetails
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageErrorDetails
```
This node provides optional details for any fatal error on the Device Preparation page. This node is valid only if the PageErrorPhase node's value isn't Unknown, but not all errors will have details.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `chr` (string) |
| Access Type | Get |
## PageErrorPhase
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageErrorPhase
```
This node provides the specific phase that failed during the Device Preparation page. Values are an enum: 0 = Unknown; 1 = AgentDownload; 2 = AgentProgress.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `int` |
| Access Type | Get |
**Allowed values**:
| Value | Description |
|:--|:--|
| 0 | Unknown. |
| 1 | AgentDownload. |
| 2 | AgentProgress. |
## PageSettings
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageSettings
```
This node configures the Device Preparation page settings.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `chr` (string) |
| Access Type | Get, Replace |
## PageStatus
| Scope | Editions | Applicable OS |
|:--|:--|:--|
| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview |
```Device
./Device/Vendor/MSFT/DevicePreparation/PageStatus
```
This node provides status of the Device Preparation page.
**Description framework properties**:
| Property name | Property value |
|:--|:--|
| Format | `int` |
| Access Type | Get, Replace |
**Allowed values**:
| Value | Description |
|:--|:--|
| 0 | Disabled. |
| 1 | Enabled. |
| 2 | InProgress. |
| 3 | ExitOnSuccess. |
| 4 | ExitOnFailure. |
## Related articles
[Configuration service provider reference](configuration-service-provider-reference.md)