Problem report: SHRINKER.ERR, fix to DEVICE_Open/CreateFileA?
Robert Baruch
autophile at starband.net
Thu Dec 6 16:04:54 CST 2001
Well, I made the modification to the source code. This time the program
got past opening the file after it was written to. The program then
deleted the file, and then tried to do a DeviceIoControl on it:
0806b0a8:Ret kernel32.CreateFileA() retval=00000038 ret=00761731
0806b0a8:Call kernel32.DeleteFileA(40606d3c "C:\\WINDOWS\\000e914.tmp")
ret=00761911
0806b0a8:trace:file:DeleteFileA 'C:\WINDOWS\000e914.tmp'
0806b0a8:trace:dosfs:DOSFS_GetFullName C:\WINDOWS\000e914.tmp (last=1)
0806b0a8:trace:string:lstrcpynA (0x40602380, "/mnt/dos", 1024)
0806b0a8:trace:dosfs:DOSFS_FindUnixName /mnt/dos,WINDOWS\000e914.tmp
0806b0a8:trace:heap:HeapAlloc (403a0000,00000002,0000022c): returning
4041ef38
0806b0a8:trace:dosfs:DOSFS_FindUnixName (/mnt/dos,WINDOWS\000e914.tmp)
-> windows (WINDOWS)
0806b0a8:trace:heap:HeapFree (403a0000,00000002,4041ef38): returning TRUE
0806b0a8:trace:dosfs:DOSFS_FindUnixName /mnt/dos/windows,000e914.tmp
0806b0a8:trace:heap:HeapAlloc (403a0000,00000002,0000022c): returning
4041ef38
0806b0a8:trace:dosfs:DOSFS_FindUnixName (/mnt/dos/windows,000e914.tmp)
-> 000e914.tmp (000E914.TMP)
0806b0a8:trace:heap:HeapFree (403a0000,00000002,4041ef38): returning TRUE
0806b0a8:trace:dosfs:DOSFS_GetFullName returning
/mnt/dos/windows/000e914.tmp =
C:\WINDOWS\000E914.TMP
0806b0a8:Ret kernel32.DeleteFileA() retval=00000001 ret=00761911
0806b0a8:Call
kernel32.DeviceIoControl(00000038,00000001,00000000,00000000,40606e40,00000010,40606e50,00000000)
ret=00761943
0806b0a8:trace:win32:DeviceIoControl
(56,1,(nil),0,0x40606e40,16,0x40606e50,(nil))
0806b0a8: get_file_info( handle=56 )
0806b0a8: get_file_info() = 0 { type=1, attr=32, access_time=1007675668,
write_time=1007675668, size_high=0, size_low=12936, links=0,
index_high=769, index_low=902562, serial=00000000 }
0806b0a8:Ret kernel32.DeviceIoControl() retval=00000000 ret=00761943
0806b0a8:Call kernel32.GetLastError() ret=00760303
0806b0a8:Ret kernel32.GetLastError() retval=00000057 ret=00760303
This last error means "Invalid Parameter".
So I take back my thought that \\.\filename.ext should just open the
file as a regular file. I think it should be opening the file as a VxD,
installing it if it isn't already installed. How that's supposed to work
is beyond me, but I'll see if I can learn about how it should be done.
--Rob
More information about the wine-users
mailing list