diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md
index 23e1cc2935..9c18df817e 100644
--- a/windows/deploy/resolve-windows-10-upgrade-errors.md
+++ b/windows/deploy/resolve-windows-10-upgrade-errors.md
@@ -42,18 +42,40 @@ WIM = Windows image (Microsoft)
## Upgrade error codes
-Setup will return two codes:
+If the upgrade process is not successful, Windows Setup will return two codes:
-1. A result code, corresponding to a specific Win32 error.
-2. An extend code, representing the phase when a failure occurred.
- - The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred.
+1. **A result code**: The result code corresponds to a specific Win32 error.
+2. **An extend code**: The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred.
->For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. In this case, the extend code **0x4000D** can be evaluated as representing a problem during phase 4 (**0x4**) with data migration (**000D**). A list of extend codes with phase and operation associations is provided below.
+>For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**.
Note: If only a result code is returned, this can be because a tool is being used that was not able to capture the extend code. For example, if you are using the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635) then only a result code might be returned.
+### Result codes
+
+>A result code of **0xC1900101** is generic and indicates that a rollback occurred. In most cases, the cause is a driver compatibility issue.
To troubleshoot a failed upgrade that has returned a result code of 0xC1900101, analyze the extend code to determine the Windows Setup phase, and see the [Common error codes](#common-error-codes) section later in this topic.
+
+Result codes can be matched to the type of error encountered. To match a result code to an error:
+
+1. Identify the error code type, using the first hexidecimal digit:
+
8 = Win32 error code (ex: 0x**8**0070070)
+
C = NTSTATUS value (ex: 0x**C**1900107)
+2. Write down the last 4 digits of the error code (ex: 0x8007**0070** = 0070). These digits correspond to the last 16 bits of the [HRESULT](https://msdn.microsoft.com/en-us/library/cc231198.aspx) or the [NTSTATUS](https://msdn.microsoft.com/en-us/library/cc231200.aspx) structure.
+3. Based on the type of error code determined in the first step, match the 4 digits derived from the second step to either a [Win32 error code](https://msdn.microsoft.com/en-us/library/cc231199.aspx), or an [NTSTATUS value](https://msdn.microsoft.com/en-us/library/cc704588.aspx).
+
+For example:
+- 0x80070070 = Win32 = 0070 = 0x00000070 = ERROR_DISK_FULL
+- 0xC1900107 = NTSTATUS = 0107 = 0x00000107 = STATUS_SOME_NOT_MAPPED
+
+
### Extend codes
+Extend codes can be matched to the phase and operation when an error occurred. To match an extend code to the phase and operation:
+
+1. Use the first digit to identify the phase (ex: 0x4000D = 4).
+2. Use the last two digits to identify the operation (ex: 0x4000D = 0D).
+3. Match the phase and operation to values in the tables provided below.
+
The following tables provide the corresponding phase and operation for values of an extend code:
@@ -115,6 +137,8 @@ The following tables provide the corresponding phase and operation for values of
+For example: An extend code of **0x4000D**, represents a problem during phase 4 (**0x4**) with data migration (**000D**).
+
## Log files
Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**. These logs are located in a different folder depending on the Windows Setup phase. Recall that you can determine the phase from the extend code.
@@ -152,7 +176,6 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots.
-
## Common error codes
### 0xC1900101
@@ -166,6 +189,32 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
+
+Code
+ | 0xC1900101 - 0x20004
+ |
+
+
+Cause
+ | Windows Setup encountered an error during the SAFE_OS with the INSTALL_RECOVERY_ENVIRONMENT operation
+ This is generally caused by out-of-date drivers.
+ |
+ |
+
+
+
+
+Mitigation
+ | Uninstall antivirus applications.
+ Remove all unused SATA devices.
+ Remove all unused devices and drivers.
+ Update drivers and BIOS.
+ |
+ |
+
+
+
+
Code
| 0xC1900101 - 0x2000c
@@ -246,6 +295,32 @@ Disconnect all peripheral devices that are connected to the system, except for t
|
+
+Code
+ | 0xC1900101 - 0x3000D
+ |
+
+
+Cause
+ | Installation failed during the FIRST_BOOT phase while attempting the MIGRATE_DATA operation.
+ This can occur due to a problem with a display driver.
+
+ |
+ |
+
+
+
+
+Mitigation
+ |
+Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display.
+ Update or uninstall the display driver.
+ |
+ |
+
+
+
+
Code
| 0xC1900101 - 0x4000D
@@ -365,7 +440,8 @@ Here is a mitigation procedure.
| Cause
|
-Here is a cause.
+The installation failed during the second boot phase while attempting the MIGRATE_DATA operation.
+ This issue can occur due to an application or driver incompatibility.
|
|
@@ -376,7 +452,11 @@ Here is a cause.
Mitigation
|
-Here is a mitigation procedure.
+Clean boot into Windows, and then attempt the upgrade to Windows 10.
+
+For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135).
+
+Ensure you select the option to "Download and install updates (recommended)."
|
|