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.