Index: reactos/dll/win32/kernel32/client/file/fileinfo.c =================================================================== --- reactos/dll/win32/kernel32/client/file/fileinfo.c (revision 75222) +++ reactos/dll/win32/kernel32/client/file/fileinfo.c (working copy) @@ -729,7 +729,10 @@ } FileAttributeData = (WIN32_FILE_ATTRIBUTE_DATA*)lpFileInformation; - FileAttributeData->dwFileAttributes = FileInformation.FileAttributes; + if (FileInformation.FileAttributes == 0) + FileAttributeData->dwFileAttributes = FILE_ATTRIBUTE_NORMAL; + else + FileAttributeData->dwFileAttributes = FileInformation.FileAttributes; FileAttributeData->ftCreationTime.dwLowDateTime = FileInformation.CreationTime.u.LowPart; FileAttributeData->ftCreationTime.dwHighDateTime = FileInformation.CreationTime.u.HighPart; FileAttributeData->ftLastAccessTime.dwLowDateTime = FileInformation.LastAccessTime.u.LowPart; @@ -944,20 +947,12 @@ return FALSE; } - Status = NtQueryInformationFile(FileHandle, - &IoStatusBlock, - &FileInformation, - sizeof(FILE_BASIC_INFORMATION), - FileBasicInformation); - if (!NT_SUCCESS(Status)) - { - WARN ("SetFileAttributes NtQueryInformationFile failed with status 0x%08x\n", Status); - NtClose (FileHandle); - BaseSetLastNTError (Status); - return FALSE; - } + RtlZeroMemory(&FileInformation, sizeof(FILE_BASIC_INFORMATION)); + if (dwFileAttributes == 0) + FileInformation.FileAttributes = FILE_ATTRIBUTE_NORMAL; + else + FileInformation.FileAttributes = dwFileAttributes; - FileInformation.FileAttributes = dwFileAttributes; Status = NtSetInformationFile(FileHandle, &IoStatusBlock, &FileInformation,