- ERROR("Win32 API: Failed to look up data streams of \"%s\"",
- path);
- return WIMLIB_ERR_READ;
+ err = GetLastError();
+
+ /* Seems legal for this to return ERROR_HANDLE_EOF on reparse
+ * points and directories */
+ if ((inode->i_attributes &
+ (FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_DIRECTORY))
+ && err == ERROR_HANDLE_EOF)
+ {
+ return 0;
+ } else {
+ ERROR("Win32 API: Failed to look up data streams of \"%s\"",
+ path);
+ win32_error(err);
+ return WIMLIB_ERR_READ;
+ }