Share this question

Welcome to Teachnovice Q&A, where you can ask questions and receive answers from other members of the community.

This is a collaboratively edited question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How to fix corrupted opencl.dll in Windows 10, if SFC and DISM are failing?

0 like 0 dislike
143 views

It took me several hours to fix the issue because the local component store was corrupted and the computers are accessing a local WSUS server instead of the public update server by Microsoft (and because I use Dism very rarely). For reference and to help other people with the same issue, I will write down a problem description and provide a solution.

Since upgrading to Windows 10 Pro Version 1511 (Build 10586) I have a problem with a corrupted filed opencl.dll in several locations.

I tried sfc.exe /scannow, but it failed to fix the issue. The error messages are, among others:

2015-12-08 08:50:43, Info                  CSI    00003c3a Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3b [SR] Cannot repair member file [l:10]"opencl.dll" of microsoft-windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-C, version 10.0.10586.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-12-08 08:50:43, Info                  CSI    00003c3c [SR] This component was referenced by [l:125]"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.10586.0.RemoteFX clientVM and UMTS files and regkeys"
2015-12-08 08:50:43, Info                  CSI    00003c3d Hashes for file member \??\C:\WINDOWS\SysWOW64\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3e Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3f [SR] Could not reproject corrupted file [l:23 ml:24]"\??\C:\WINDOWS\SysWOW64"\[l:10]"opencl.dll"; source file in store is also corrupted

Okay, so the issue is clear now. Unfortunately, SFC is unable to resolve the corruption because the local component store also got corrupted. Unfortunately, I lost the error messages indicating the component store corruptions.

So I tried Dism /Online /Cleanup-Image /RestoreHealth to no avail. It fails with error 0x800f081f, indicating another problem with the source files.

2015-12-08 08:57:35, Info                  CBS    Exec: Download qualification evaluation, business scenario: Manual Corruption Repair
2015-12-08 08:57:35, Info                  CBS    Exec: Clients specified using Windows Update.
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.update.microsoft.com/v6/, Name: Microsoft Update
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.ws.microsoft.com/v6/, Name: Windows Store
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe3.delivery.mp.microsoft.com/, Name: Windows Store (DCat Prod)
2015-12-08 08:57:35, Info                  CBS    WU: WSUS service is the default, URL: (null), Name: Windows Server Update Service
2015-12-08 08:57:35, Info                  CBS    DWLD:Search is done, set download progress to 20 percent.
2015-12-08 08:57:35, Info                  CBS    Nothing to download, unexpected
2015-12-08 08:57:35, Info                  CBS    Failed to collect payload and there is nothing to repair. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2015-12-08 08:57:35, Info                  CBS    Failed to repair store. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]

Looking at the error messages, it becomes clear that Windows is set to use our local WSUS server and therefore Dism is unable to retrieve the valid file from the repositories. While I am sure that I could somehow configure WSUS to provide the necessary files, I don't know how and I need a quick fix. (If someone knows how to configure WSUS accordingly, please provide information).

Limiting access to the local storage by adding the paramter /LimitAccess would be useless as the local component store is also corrupted, as mentioned earlier.

I experienced this issue on two machines. A refresh of Windows 10 did not fix the issue.

asked Aug 13, 2016 by Daniel  

5 Answers

0 like 0 dislike
 
Best answer

To fix this problem, you need to have the ISO of the exact build you have installed.

  1. Mount the ISO image.
  2. Create a temporary directory to mount the Windows Image File (WIM).
    mkdir C:\WIM
  3. Mount the WIM file.
    Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
  4. Run Dism with the following parameters.
    Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
  5. When done, unmount the image and delete the folder
    Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
  6. It's mandatory to restart your computer, or SFC and DISM will still show errors.

That should fix the issue.

Edit
As pointed out in the comments, there might be a more direct approach. The TL;DR is, that it did not work for me, hence my more detailed approach. But I am interested if you had any problems with the direct approach. Please comment.

answered Aug 13, 2016 by Daniel  
0 like 0 dislike

I solved the problem with opengl.dll as follows:

  1. Mount the Windows 10 image.

  2. Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:F:\sources\install.esd\1\Windows\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\

  3. sfc /scannow

Good luck!

answered Aug 13, 2016 by Vitaly Stelmakov  
0 like 0 dislike

From various forums on the Internet, I've assembled following repair procedure:

  1. Download MediaCreationTool from http://go.microsoft.com/fwlink/?LinkId=691209
  2. Download Windows 10 Pro ISO with MediaCreationTool.exe to c:\temp\windows.iso
  3. Use 7-zip for extract file c:\temp\windows.iso to folder c:\temp\windows
  4. Convert install.esd to install.wim

    Dism /Export-Image /SourceImageFile:c:\temp\windows\sources\install.esd /SourceIndex:1 /DestinationImageFile:c:\temp\windows\sources\install.wim /compress:max

  5. Check index and windows version in .wim file
    -index is used for next Dism command in parameter /Source:wim:path_to_wim:[index]

    Dism /Get-WimInfo /wimFile:c:\temp\Windows\sources\install.wim

  6. Restore health windows components from downloaded and converted windows image (wim):

    Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:c:\temp\Windows\sources\install.wim:1 /LimitAccess

  7. Repair corrupted files:

    sfc /scannow

    It will repair corrupted files - success message: Windows Resource Protection found corrupt files and successfully repaired them.

  8. Restart Windows
  9. Check System file again:

    sfc /scannow

    Success message after scan: Windows Resource Protection did not find any integrity violations.

answered Aug 13, 2016 by kapitanrum  
0 like 0 dislike
An ESD is not an "encrypted" WIM, it is a WIM that has been highly packed differently.

A WIM is just "fast" compressed by unbreakble units of 4KB or 16KB, using a fast Huffmann compression. An ESD uses more advanced LZ-based compression without block size limitations. This compresssion does not allow the image to be open in read-write-mode as the compression is global.

An SWM is a multipart WIM that has been split in multiple files with smaller sizes with a (rough) maximum size, but it is still writable, and can be stored on multiple DVDs.

CBS providers allow several archiving formats that can be supported by DISM, including WIM, CAB, ZIP, VHD, VHDX, multisession ISOs... But Windows comes with two builtin providers for the WIM and ESD formats (ESD is new to Windows 10, with Windows 8, only the WIM format was supported, but the images were larger)

The ESD format has been tuned for allowing the full multilingual distribution of Windows 10 to fit on a single DVD with less than 3GB...
answered Aug 13, 2016 by verdy_p  
0 like 0 dislike

Due to not having a local copy and for a separate reason unable to download the ISO file (the ISO was not of the Windows 10 type I have installed) There is a hotfix solution here which I used which involves downloading a specialist file called "SFCFix":

SFCFix is a brilliant little utility that is capable of fixing this problem for you by repairing/replacing the corrupt dll file.

Once the executable file for SFCFix has been downloaded, move it to your Desktop.

A ZIP file containing everything SFCFix needs in order to repair/replace your corrupt opencl.dll file. You will be asked by the website to register on it to gain access to the ZIP file, you should do so as it is completely free.

Once sfcfix.zip has been downloaded, move it to your Desktop. Close all open programs. Drag the ZIP file onto the executable file for the SFCFix program and then release it.

SFCFix will launch and start applying the fix for the corrupt dll file. Let it work its magic.

Once SFCFix is done, it will create a file named SFCFix.txt on your Desktop. Open this file and, if SFCFix was successful at repairing/replacing your corrupt opencl.dll file,

Please note that running the SFCFix.exe file without the hotfix ZIP will be a long slow process that achieves very little, you need to run it with the ZIP file drag/drop method, and the result is almost instant.

answered Aug 13, 2016 by Martin  
...