On Sat, 30 Jun 2001, Mike McCormack wrote:
this is the first step in cleaning up the 16bit comm code. This patch is untested, so have a look, and give it a go!
- ptr->s_read = SERVICE_AddObject( FILE_DupUnixHandle( ptr->fd,
GENERIC_READ | SYNCHRONIZE ),
- ptr->s_read = SERVICE_AddObject( ptr->handle, comm_notification, (ULONG_PTR)ptr );
Not good... you *must* duplicate the handle (probably with DuplicateHandle) before passing it to SERVICE_AddObject. The SERVICE_Delete will close the handle passed to AddObject, which is bound to cause problems if it's not a duplicate.
On Sun, 1 Jul 2001, Ove Kaaven wrote:
Not good... you *must* duplicate the handle (probably with DuplicateHandle) before passing it to SERVICE_AddObject. The SERVICE_Delete will close the handle passed to AddObject, which is bound to cause problems if it's not a duplicate.
Okay, third try at this patch works fine AFAICT, exercising the following functions:
trace:comm:COMM_Init trace:comm:CloseComm16 trace:comm:EscapeCommFunction16 trace:comm:FlushComm16 trace:comm:GetCommError16 trace:comm:GetCommState16 trace:comm:OpenComm16 trace:comm:ReadComm16 trace:comm:SetCommEventMask16 trace:comm:SetCommState16 trace:comm:WriteComm16 trace:comm:comm_notification
If we want to exercise the other 16 bit comm functions, we need another app. Or we can go ahead with this, and handle the others on a com[laint basis.
I guess Mike will be sending it to wine-patches presently, or I can, after breakfast and physical therapy.
Lawson ---cut here---
________________________________________________________________ GET INTERNET ACCESS FROM JUNO! Juno offers FREE or PREMIUM Internet access for less! Join Juno today! For your FREE software, visit: http://dl.www.juno.com/get/tagj.