How to fix Error C0000034 after Windows 7 64-bit SP1


To totally unlock this section you need to Log-in


Login

This issue can occur when a user attempts to install the Service Pack, does not restart the machine to complete the installation, installs other updates and then restarts the machine. This issue can also occur if the Service Pack is installed simultaneously with other updates when using WSUS (usually in business environments).

During Service Pack installation, the servicing feature of Windows maintains lists of operations to be performed. Some are performed immediately; others can only be done once the system has restarted. One such list is the Primitive Operation Queue (POQ).

The POQ operations that need to be performed during restart are stored in pending.xml. In the scenario showing failure, the system attempts to complete the POQ operations twice. The second attempt of the POQ fails (because it has already been done) and causes the error “0xc0000034”.

Windows considers any failure at this stage of the install to be blocking and the servicing feature halts the machine from continuing.

Solution

Do the following:

1. Locate a second computer with access to the internet.
2. Open Notepad.
3. Copy and paste the following text into Notepad:

     Dim xmlDoc, node, nodeList, fileName, backupFileName, numberOfPOQNodes

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
If Wscript.Arguments.Count = 0 Then
WScript.echo("Error! No XML file specified.")
Wscript.quit
End If
fileName = WScript.Arguments(0)
backupFileName = Left(fileName, InStrRev(fileName, ".") - 1) & "_backup.xml"
If Not xmlDoc.load(fileName) Then
WScript.echo("Failure loading XML file " & fileName & ".")
Wscript.quit
End If
xmlDoc.save(backupFileName)
Set nodeList = xmlDoc.documentElement.selectNodes("POQ")
numberOfPOQNodes = nodeList.Length
For Each node in nodeList
xmlDoc.documentElement.removeChild(node)
Next
xmlDoc.save(fileName)
Set xmlDoc = Nothing
WScript.echo(numberOfPOQNodes & " POQ nodes removed. Script completed.")

Click File, and then click Save as. Name the file script.vbs and save the file to a removable media device such as a USB thumb drive.

Applying the script to the failed installation

1. Restart your computer and start pressing the F8 key on your keyboard. You have to press F8 before the Windows logo appears. If the Windows Logo appears, you have to try again by waiting until the Windows logon prompt appears and then shutting down and restarting your computer.

2. Use the arrow keys to select Repair your Computer in the Advanced Boot Options area, and then press Enter. If you are prompted, select the Windows 7 installation to be repaired, and then click Next.

3. Select the language and a keyboard input method, and then click Next.

4. Select a user name, type your password, and then click OK.

5. Under System Recovery Options, make a note of the Windows 7 drive letter listed on the line below Choose a recovery tool.

For example, you may see something similar to the following:

Operating system: Windows 7 on (C:) 

NOTE: In this example, the drive letter for Windows 7 would be C.

6. Under System Recovery Options, click Command Prompt.

7. Insert the removable media with the script (.vbs) file that you previously created into the PC.

8. At the command prompt, navigate to the drive, and the directory, that contains the script (.vbs) file that you previously created.

For example, if you previously saved the script.vbs file that you created to the root of a USB thumb drive, and the drive letter associated with the USB thumb drive is the “E” drive, you would simply type the following at the command prompt, and then press Enter.

E:

NOTE: If you are not sure which drive contains the removable media you can use Diskpart to display a list of drives. To run Diskpart, follow these steps:

a. Type diskpart, and then press Enter.
b. Type list volume, and then press Enter.
c. Make a note of the drive that contains the removable media with the script (.vbs) file that you previously created. Assuming you used a USB thumb drive, the drive type will be listed as “Removable”.
d. To exit diskpart type exit, and then press Enter.

9. At the command prompt, type the following command and press Enter:

Cscript Script.vbs C:\Windows\winsxs\pending.xml

In this example, (c:\) is the drive letter that the Windows 7 operating system is installed on.

This will run the script in the Script.vbs file. After the script completes, you may see a message similar to following.

2 POQ nodes removed. Script Completed

10. To exit the command prompt type Exit, and then press Enter.

11. Restart your computer. Service Pack 1 installation should now complete successfully.