ToolsHere's an interesting issue I ran into the other day.  While going through the DPM Protection Group wizard to protect a servers NTFS volume, after enumerating the protected servers data sources and clicking on the volume to protect you receive the following popup message:

DPM is unable to enumerate C:\ on computer <FQDN>. (ID: 3055)

NOTE: The Drive letter in the error may vary.

Cause

The Windows NTFS file system \$Extend\$Reparse metafile has corruption that needs to be fixed.

Resolution

To fix the NTFS file system, run chkdsk /f or run fsutil dirty set drive_letter:  - against the problematic volume then reboot.      The chkdsk output should show that we fixed index entries in $R of file 26:

<snip>
Checking file system on C:
The type of the file system is NTFS.

One of your disks needs to be checked for consistency. You
may cancel the disk check, but it is strongly recommended
that you continue.

Windows will now check the disk.                        

CHKDSK is verifying files (stage 1 of 3)...

132352 file records processed.                                        
File verification completed.
  199 large file records processed.                                  
  0 bad file records processed.                                    
  0 EA records processed.                                          
  348 reparse records processed.                                     

CHKDSK is verifying indexes (stage 2 of 3)...
The reparse point index entry in file 0x1a points to file 0x131
but the file has no reparse point in it.
Deleting an index entry from index $R of file 26.
The reparse point index entry in file 0x1a points to file 0x132
but the file has no reparse point in it.
Deleting an index entry from index $R of file 26.
The reparse point index entry in file 0x1a points to file 0x133
..
..
.
>snip<

Once the process completes you should be able to complete the wizard successfully.

More Information

Look in the DPMRACurr.errlog on the protected server for the error code 0x80070057 associated with the FindFirstVolumeMountPoint of the effected volume.

Using err.exe the 0x80070057 error =  ERROR_INVALID_PARAMETER

<snip>
14C8 20D0 12/09 14:44:09.473 61 neserver.cpp(61)  804C5960-7294-4E85-81B8-944D4C253A72 NORMAL ==>CNEServer::EnumerateServerChildren
14C8 20D0 12/09 14:44:09.504 61 neserver.cpp(61)  804C5960-7294-4E85-81B8-944D4C253A72 NORMAL <--CNEServer::EnumerateServerChildren
14C8 20D0 12/09 14:44:09.504 61 mountpointutil.cpp(101)  804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] FindFirstVolumeMountPoint failed for [\\?\Volume{38a7c944-e94c-11de-b98b-806e6f6e6963}\]
14C8 20D0 12/09 14:44:09.504 61 mountpointutil.cpp(127)  804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : hr
14C8 20D0 12/09 14:44:09.504 61 nefsbase.cpp(163) [00000000003A2AF0] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : MountPointUtil::EnumerateMountPoints(volume, mountPointCallback)
14C8 20D0 12/09 14:44:09.504 61 nefsbase.cpp(119) [00000000003A2AF0] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : EnumerateTopLevelPhysicalChildren(traversingReplica, callback)
14C8 20D0 12/09 14:44:10.175 61 mountpointutil.cpp(101)  804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] FindFirstVolumeMountPoint failed for [\\?\Volume{38a7c944-e94c-11de-b98b-806e6f6e6963}\]
14C8 20D0 12/09 14:44:10.175 61 mountpointutil.cpp(127)  804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : hr
14C8 20D0 12/09 14:44:10.175 61 mountpointutil.cpp(246)  804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : EnumerateMountPoints(volume, callback)
14C8 20D0 12/09 14:44:10.175 61 fileenumerator.cpp(898) [00000000003BBC60] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : MountPointUtil::ExpandMountPointsInPath(expandedShare, traversingReplica, expandedMounts)
14C8 20D0 12/09 14:44:10.175 31 vainquirysubtask.cpp(225) [000000000037A580] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : m_fileProvider->PreprocessPath(path, traversingReplica, pDLSRuntime, preprocessed)
14C8 20D0 12/09 14:44:10.175 61 inquirysubtask.cpp(1126) [00000000003BDA60] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] : F: lVal : m_provider->PreprocessPath(startNode, m_traversingReplica, m_agent->GetRuntime(), preprocessed)
14C8 20D0 12/09 14:44:10.175 61 inquirysubtask.cpp(1090) [00000000003BDA60] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] Ignoring preprocessing error, preprocessing will continue for other nodes
14C8 20D0 12/09 14:44:10.175 61 inquirysubtask.cpp(1705) [00000000003BDA60] 804C5960-7294-4E85-81B8-944D4C253A72 WARNING Failed: Hr: = [0x80070057] CInquirySubTask::CreateAndLogError::Adding inquiry error for component
\\Server_name.domain.com\MTATempStore$\
>snip<

If you download the processmonitor utility from the www.sysinternals.com web site and run it on the protected serer while DPM tries to protect the offending drive, you will see log entries like the following.  The invalid parameter error (0x80070057) being received for C: on the client machine is being thrown from here, notice the extra character after the HarddiskVolume2 - there should not be any extra character:

<Process monitor log output>

5:52:26.4342908 PM   DPMRA.exe     11056  8672   IRP_MJ_CREATE \Device\HarddiskVolume2ı   INVALID PARAMETER       Desired Access: Synchronize, Disposition: Open, Options: Open By ID, Open For Backup, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, Impersonating: NT AUTHORITY\SYSTEM

5:52:27.0858911 PM   DPMRA.exe     11056  8672   IRP_MJ_CREATE \Device\HarddiskVolume2ı   INVALID PARAMETER       Desired Access: Synchronize, Disposition: Open, Options: Open By ID, Open For Backup, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, Impersonating: NT AUTHORITY\SYSTEM

Hope this helps,

Michael Jacquet | Senior Support Escalation Engineer

The App-V Team blog: http://blogs.technet.com/appv/
The WSUS Support Team blog: http://blogs.technet.com/sus/
The SCMDM Support Team blog: http://blogs.technet.com/mdm/
The ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
The SCOM 2007 Support Team blog: http://blogs.technet.com/operationsmgr/
The SCVMM Team blog: http://blogs.technet.com/scvmm/
The MED-V Team blog: http://blogs.technet.com/medv/
The DPM Team blog: http://blogs.technet.com/dpm/
The OOB Support Team blog: http://blogs.technet.com/oob/
The Opalis Team blog: http://blogs.technet.com/opalis
The Service Manager Team blog: http: http://blogs.technet.com/b/servicemanager
The AVIcode Team blog: http: http://blogs.technet.com/b/avicode

clip_image001 clip_image002