StartServiceCtrlDispatcher/

Vitaliy Margolen wine-devel at kievinfo.com
Sun Jan 22 16:31:26 CST 2006


Saturday, January 21, 2006, 5:01:42 PM, Uwe Bonnes wrote:
> Hallo,

> jtagserver.exe from the Altera Quartus suite hangs in a call to
> ConnectNamedPipe (as a result of a call to StartServiceCtrlDispatcherA())
> Anybody an idea what is going wrong?
I don't think that's what happens:

> Appended  a +relay,+snoop,+ntdll,+file,+server,+advapi log from the point
> where the main process is started.

> 0009:Ret  ntdll.NtResumeThread() retval=00000000 ret=7fc674b5
> 0009:Ret  kernel32.CreateThread() retval=00000044 ret=7f99abb8
It creates new thread. And goes to wait on in.

> 0009:Call kernel32.WaitForMultipleObjectsEx(00000001,7fcfe630,00000001,ffffffff,00000000) ret=7f99ac24
> 0009:Call ntdll.NtWaitForMultipleObjects(00000001,7fb9fba0,00000001,00000000,00000000) ret=7fc604d9
> 0009: select( flags=5, cookie=0x7fb9fa54, signal=(nil), timeout=0, handles={0x44} )
> 0009: select() = PENDING
Here it's waiting on that thread (handles={0x44}).

> 000a:Call kernel32.ConnectNamedPipe(00000048,00000000) ret=7f99ca60
This is the call you are talking about.

[skip]
New thread calls ConnectNamedPipe and goes to sleep:
> 000a:Call kernel32.ConnectNamedPipe(00000048,00000000) ret=7f99ca60
> 000a:Call ntdll.NtFsControlFile(00000048,00000000,00000000,00000000,b7e15a14,00110008,00000000,00000000,00000000,00000000) ret=7fc6171e
> trace:ntdll:NtFsControlFile (0x48,(nil),(nil),(nil),0xb7e15a14,0x00110008,(nil),0x00000000,(nil),0x00000000)
> 000a: create_event( access=001f0003, attributes=00000000, rootdir=(nil), manual_reset=0, initial_state=0, name=L"" )
> 000a: create_event() = 0 { handle=0x50 }
> 000a: connect_named_pipe( handle=0x48, event=0x50, func=0x7ff98ee0 )
> 000a: connect_named_pipe() = 0
> 000a: select( flags=6, cookie=0xb7e157d4, signal=(nil), timeout=0, handles={0x50} )
> 000a: select() = PENDING
And here it's waiting.

Now we have other thread waking up and continuing on with error?! Did you
skipped something? Because I haven't seen why it ends up here.
> 0009: get_console_input_info( handle=(nil) )
> 0009: get_console_input_info() = INVALID_PARAMETER { history_mode=0, history_size=0, history_index=0, edition_mode=0, title=L"" }
> 0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7fc1f699
> 0009:Ret  ntdll.RtlNtStatusToDosError() retval=00000057 ret=7fc1f699
And 87 is ERROR_INVALID_PARAMETER.







More information about the wine-devel mailing list