In files/file.c, line 1351:
HFILE16 WINAPI _lclose16( HFILE16 hFile ) { if (hFile < 5) { FIXME("stdio handle closed, need proper conversion\n" ); SetLastError( ERROR_INVALID_HANDLE ); return HFILE_ERROR16; } ....
What does this mean? Taking it out doesn't seem to hurt anything. I understand from this block:
static void FILE_InitProcessDosHandles( void ) { dos_handles[0] = GetStdHandle(STD_INPUT_HANDLE); dos_handles[1] = GetStdHandle(STD_OUTPUT_HANDLE); dos_handles[2] = GetStdHandle(STD_ERROR_HANDLE); dos_handles[3] = GetStdHandle(STD_ERROR_HANDLE); dos_handles[4] = GetStdHandle(STD_ERROR_HANDLE); }
why we don't want to close those handles probably. But why would I see that message, do sloppy windows programs try to close a range of handle numbers or something? Tell me what needs to be properly converted to what and I'll try to do it :P
On Sat, 27 Jul 2002, Rafael Kitover wrote:
In files/file.c, line 1351:
HFILE16 WINAPI _lclose16( HFILE16 hFile ) { if (hFile < 5) { FIXME("stdio handle closed, need proper conversion\n" ); SetLastError( ERROR_INVALID_HANDLE ); return HFILE_ERROR16; } ....
What does this mean? Taking it out doesn't seem to hurt anything. I understand from this block:
static void FILE_InitProcessDosHandles( void ) { dos_handles[0] = GetStdHandle(STD_INPUT_HANDLE); dos_handles[1] = GetStdHandle(STD_OUTPUT_HANDLE); dos_handles[2] = GetStdHandle(STD_ERROR_HANDLE); dos_handles[3] = GetStdHandle(STD_ERROR_HANDLE); dos_handles[4] = GetStdHandle(STD_ERROR_HANDLE); }
why we don't want to close those handles probably.
Actually I guess it could be fixed by making the dos_handles[x] *duplicates* of the standard win32 handles, i.e. DuplicateHandle(GetCurrentProcess(), GetStdHandle(...), ...). If then a dos app tries to close those standard handles, only the duplicate will be closed, not the win32 std handle itself.
But why would I see that message, do sloppy windows programs try to close a range of handle numbers or something?
Yeah, I've seen some apps do just that. But it could also be trying to close a stdin/out handle in preparation for doing redirection.