The game I was trying to run (Ravendawn) was polluting the stdout with hundreds of CreateFile2 FIXMEs. The game worked fine, probably because the params pointer was NULL, so any non-implemented extra parameters weren't even used and we just forwarded to CreateFileW. So, a simple if was added to check whether the pointer is null, and if it is, we just call TRACE instead of FIXME since in this case it isn't really necessary.
From: kubni nikola.kuburovic123@gmail.com
If CREATEFILE2_EXTENDED_PARAMS struct pointer is null, we just forward to CreateFileW and we don't need FIXME's. --- dlls/kernelbase/file.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c index e1ba92a6448..4c065c894d0 100644 --- a/dlls/kernelbase/file.c +++ b/dlls/kernelbase/file.c @@ -687,7 +687,10 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFile2( LPCWSTR name, DWORD access, DWORD s DWORD attributes = params ? params->dwFileAttributes : 0; DWORD flags = params ? params->dwFileFlags : 0;
- FIXME( "(%s %lx %lx %lx %p), partial stub\n", debugstr_w(name), access, sharing, creation, params ); + if (params == NULL) + TRACE("CREATEFILE2_EXTENDED_PARAMETERS pointer is NULL\n"); + else + FIXME( "(%s %lx %lx %lx %p), partial stub - dwSize and dwSecurityQosFlags not checked\n", debugstr_w(name), access, sharing, creation, params );
if (attributes & ~attributes_mask) FIXME( "unsupported attributes %#lx\n", attributes ); if (flags & ~flags_mask) FIXME( "unsupported flags %#lx\n", flags );
I'd instead do:
TRACE( "%s %#lx %#lx %#lx %p" ); if (params) FIXME( "Ignoring extended parameters %p\n" );