On Wednesday 06 January 2010 01:02:04 Reece Dunn wrote:
2010/1/5 Michael Stefaniuc mstefani@redhat.com:
2040 | 36 | ntdll:RtlNtStatusToDosErrorNoTeb no mapping for c0000109
0xc0000109 is NT_STATUS_MESSAGE_NOT_FOUND according to http://lists.samba.org/archive/jcifs/2004-February/003038.html.
Interestingly, in dlls/ntdll/tests/error.c, there is already an entry for STATUS_MESSAGE_NOT_FOUND, so I am not sure where this fixme is originating (older version of wine?): 511 cmp(STATUS_MESSAGE_NOT_FOUND, ERROR_MR_MID_NOT_FOUND);
Nope, that fixme is still in the code. To quote from dlls/ntdll/error.c:
while (table->start) { if (status < table->start) break; if (status < table->end) { DWORD ret = table->table[status - table->start]; if (ret == ERROR_MR_MID_NOT_FOUND) FIXME( "no mapping for %08x\n", status ); ^^^^^^^^^^^^^^^^^^^^^^^ return ret; } table++; }
So there's an explicit test for the STATUS_MESSAGE_NOT_FOUND mapping, as that's also used for a "No mapping found" return in the mapping table. It looks like it'd make sense to change that if check to
if (ret == ERROR_MR_MID_NOT_FOUND && status != STATUS_MESSAGE_NOT_FOUND) FIXME(...);
I'll send a patch.
Cheers, Kai