On Wed, 2004-06-02 at 01:36, Raphael wrote:
With latest rsabase (i'll send the last today) and ntdll patches we go a lot further. But we seems to crash with File Access (sharing) problem. Who can understand this log ? The traces like fixme:ntdll:NtCreateFile L"\??\E:\4996.rra" => (0, 1) are traces in my tree ( FIXME("%s => (%lx, %lx)\n", debugstr_us(attr->ObjectName), io->u.Status, disposition); on ntdll/file.c#220 ) For me seems that MoveFile not create the file with the good sharing/access rights for future use :(
See below.
trace:file:MoveFileExW (L"E:\4996.rra",L"C:\Program Files\InstallShield Installation Information\{A98E5E03-E407-408E-A8D8-B9F088F21000}\setup.ilg",0002)
...
fixme:ntdll:NtCreateFile L"\??\E:\4996.rra" => (0, 1)
We open the existing file E:\4996.rra successfully as the source (asking for no access rights).
...
We presumably detect that the source and destination files are on different volumes and fall back to copy & delete rather than Unix rename: if (errno == EXDEV && (flag & MOVEFILE_COPY_ALLOWED)) { NtClose( source_handle ); RtlFreeAnsiString( &source_unix ); RtlFreeAnsiString( &dest_unix ); return (CopyFileW( source, dest, TRUE ) && DeleteFileW( source )); }
Therefore, we have now (presumably) closed the source_handle and so we shouldn't care about how MoveFile opened the file.
trace:file:CopyFileW L"E:\4996.rra" -> L"C:\Program Files\InstallShield Installation Information\{A98E5E03-E407-408E-A8D8-B9F088F21000}\setup.ilg" trace:file:CreateFileW L"E:\4996.rra" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING attributes 0x0 trace:file:RtlDosPathNameToNtPathName_U (L"E:\4996.rra",0x4069d610,(nil), (nil)) trace:file:RtlGetFullPathName_U (L"E:\4996.rra" 520 0x4069d3b4 (nil)) trace:file:wine_nt_to_unix_file_name L"\??\E:\4996.rra" -> "/home/fenix/.wine/dosdevices/e:/4996.rra" fixme:ntdll:NtCreateFile L"\??\E:\4996.rra" => (c0000043, 4069d628)
But, we cannot open the file this time.
...
And stuff fails from there.
trace:ole:CoUninitialize () trace:module:LdrShutdownThread ()
We are asking for slightly different rights the second time we open the file. I presume E:\ is your temp directory? I'm guessing that further up the log it was created or left open without the right permissions. You will have to show earlier traces in your log to determine the real cause.
Rob