http://bugs.winehq.org/show_bug.cgi?id=30397
Bug #: 30397 Summary: Spoon Studio 2011 (ex Xenocode) application sandboxing scheme needs support for NtSetInformationFile class FileDispositionInformation (Stylizer 5.x, Visual CSS editor) Product: Wine Version: 1.5.1 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: ntdll AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net Classification: Unclassified
Hello,
Stylizer 5.x (Visual CSS editor) is wrapped in Xenocode like sandboxing scheme, now called "Spoon Studio 2011".
The usual native API hooking in several places. It seems not very happy about some unimplemented NtSetInformationFile classes.
---snip --- ... 0025:Call ntdll.RtlInitUnicodeString(0032f334,008b3068 L"\??\C:\users\focht\Local Settings\Application Data\Skybound\Stylizer\Sandbox\2011.12.15T20.58\XSandbox.bin.__tmp__") ret=0034d108 0025:Ret ntdll.RtlInitUnicodeString() retval=0032f334 ret=0034d108 0025:Call ntdll.NtOpenFile(0032f308,00110100,0032f31c,0032f2f8,00000007,00000020) ret=0034da48 0025:Ret ntdll.NtOpenFile() retval=00000000 ret=0034da48 0025:Call ntdll.NtSetInformationFile(00000068,0032f300,0032f2cc,00000028,00000004) ret=0034da84 0025:Ret ntdll.NtSetInformationFile() retval=00000000 ret=0034da84 0025:Call ntdll.NtSetInformationFile(00000068,0032f300,0032f31b,00000001,0000000d) ret=0034da9d 0025:fixme:ntdll:NtSetInformationFile Unsupported class (13) 0025:Ret ntdll.NtSetInformationFile() retval=c0000002 ret=0034da9d 0025:Call ntdll.NtClose(00000068) ret=0036b1d3 0025:Ret ntdll.NtClose() retval=00000000 ret=0036b1d3 ... 0025:Call user32.MessageBoxW(00000000,008b2f70 L"The sandbox at \??\C:\users\focht\Local Settings\Application Data\Skybound\Stylizer\Sandbox\2011.12.15T20.58 is corrupt or inaccessible. Please check the location and try again.",008a3f48 L"Spoon Studio 2011",00000010) ret=00396aa6 ... ---snip ---
MSDN (ZwSetInformationFile): http://msdn.microsoft.com/en-us/library/windows/hardware/ff567096%28v=vs.85%...
class 13 -> FILE_DISPOSITION_INFORMATION:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff545765%28v=vs.85%...
Also interesting read: Cygwin's Corinna Vinschen and some MS guy about deletion semantics ;-)
http://www.tech-archive.net/Archive/Development/microsoft.public.win32.progr...
--- quote --- First off, FILE_DELETE_ON_CLOSE and FileDispositionInformation are NOT the same thing.
There are really two parts to delete. The first part is to logically delete the file. This consists of the file system marking the file as deleted and then waiting for the last handle to close. When a file is marked as deleted, many operations (including new opens) fail. Once the last handle as closed, the actual delete of the file can take place.
When you open a file with FILE_DELETE_ON_CLOSE, the file is left as is. Neither part of delete is done. The only thing done is to remember that when this handle is closed, the file should be deleted. All operations on the file will proceed as normal. When the handle marked as delete on close is closed, the file is logically deleted. If that handle was the last handle, the file will also actually be deleted.
When you use FileDispositionInformation to set a file to deleted, the file is logically deleted right then. Any new opens for the file and many other operations will fail. The file system will not complete the actual removal of the file until the last handle is closed, though. --- quote ---
Regards