[Wine] Win32 programs can't find files on FAT32 partitions

sagar.mittal at gmail.com sagar.mittal at gmail.com
Fri May 5 06:51:12 CDT 2006


I'm having trouble with  opening files on fat32 partitions with
programs running under wine. The programs report that they can't find
the file, even though it exists. I can open files on reiser and iso9660
partitions successfully.

The simplest program I could find that exhibits this problem is
notepad. If I provide the filename on the command line, notepad.exe
tells me it can't find the file and asks if I want to create a new
file.  If I say yes, the contents of the file are displayed!

I tried to debug the problem with a file trace, but enabling the trace
causes wine to crash (on both fat32 and reiser partitions).  I've
pasted the tail end of that trace below.  It looks like the string
isn't being properly null-terminated, but I'm not sure how to fix this.
This trace also doesn't seem to get anywhere near trying to load the
file I'm trying to open (I was trying to load a test.txt, which was not
in C:\, but in the current directory, which mapped to D:\).

trace:file:GetLongPathNameW
L"c:\\windows\\system32\\winedbg.exe",0x55c2cd64,260
trace:file:FindFirstFileExW L"c:\\windows" 0 0x55c2c294 0 (nil) 0
trace:file:RtlDosPathNameToNtPathName_U
(L"c:\\windows",0x55c2c20c,0x55c2c220,(nil))
trace:file:RtlGetFullPathName_U (L"c:\\windows" 520 0x55c2bf54
0x55c2c220)
trace:file:wine_nt_to_unix_file_name L"\\??\\C:\\" ->
"/home/sagar/.wine/dosdevices/c:/"
trace:file:FindNextFileW 0x5591ec18 0x55c2c294
trace:file:NtQueryDirectoryFile (0x64 (nil) (nil) (nil) 0x55c2c164
0x5591ec58 0x00002000 0x00000003 0x00000000 L"windows" 0x00000000
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L".U\00dd\0080sU\0003" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L".U\00dd\0080sU\0003", L"windows")
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L"..\00dd\0080sU\0003" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L"..\00dd\0080sU\0003", L"windows")
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L"windows" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L"windows", L"windows")
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L"ntldrws" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L"ntldrws", L"windows")
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L"ntdetect.com" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L"ntdetect.com", L"windows")
trace:file:append_entry long L"uU\00ac\00c0\00c2UF\0088sU at RvU" short
L"boot.ini.com" mask L"windows"
trace:file:match_filename (L"uU\00ac\00c0\00c2UF\0088sU at RvU",
L"windows")
trace:file:match_filename (L"boot.ini.com", L"windows")
trace:file:append_entry long L"Documents and Settingsd\00bf\00c2U"
short L"docume~1.com" mask L"windows"
trace:file:match_filename (L"Documents and Settingsd\00bf\00c2U",
L"windows")
trace:file:match_filename (L"docume~1.com", L"windows")
trace:file:append_entry long L"Program Files Settingsd\00bf\00c2U"
short L"progra~1.com" mask L"windows"
trace:file:match_filename (L"Program Files Settingsd\00bf\00c2U",
L"windows")
trace:file:match_filename (L"progra~1.com", L"windows")
trace:file:append_entry long L"Program Files Settingsd\00bf\00c2U"
short L"pagefile.sys" mask L"windows"
trace:file:match_filename (L"Program Files Settingsd\00bf\00c2U",
L"windows")
trace:file:match_filename (L"pagefile.sys", L"windows")
trace:file:append_entry long L"System Volume InformationU" short
L"system~1.sys" mask L"windows"
trace:file:match_filename (L"System Volume InformationU", L"windows")
trace:file:match_filename (L"system~1.sys", L"windows")
trace:file:append_entry long L"Recycledolume InformationU" short
L"recycled.sys" mask L"windows"
trace:file:match_filename (L"Recycledolume InformationU", L"windows")
trace:file:match_filename (L"recycled.sys", L"windows")
trace:file:append_entry long L"Dev-Cppdolume InformationU" short
L"dev-cppd.sys" mask L"windows"
trace:file:match_filename (L"Dev-Cppdolume InformationU", L"windows")
trace:file:match_filename (L"dev-cppd.sys", L"windows")
trace:file:append_entry long L"Dev-Cppdolume InformationU" short
L"tmp-cppd.sys" mask L"windows"
trace:file:match_filename (L"Dev-Cppdolume InformationU", L"windows")
trace:file:match_filename (L"tmp-cppd.sys", L"windows")
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr
0x55709d5a

The contents of the directory being listed above:
tmp
Dev-Cpp
Recycled
System Volume Information
Program Files
Documents and Settings
boot.ini
windows
pagefile.sys
ntdetect.com
ntldr

This occurs on two fat32 partitions, one mounted with only noatime and
the other mounted with the following options:
exec,codepage=437,iocharset=utf8,noatime,umask=002,gid=mygroup,uid=myuser

Any ideas?



More information about the wine-users mailing list