[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: question on _lclose16
From: Ove Kaaven <ovehk () ping ! uio ! no>
Date: 2002-07-28 21:21:14
[Download RAW message or body]
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.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic