Why is CoRegisterClassObject creating two extra threads?
        Posted  
        
            by Stijn Sanders
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Stijn Sanders
        
        
        
        Published on 2010-06-17T15:17:41Z
        Indexed on 
            2010/06/18
            8:03 UTC
        
        
        Read the original article
        Hit count: 264
        
I'm trying to fix a problem that only recently happens on a number of machine's on a VPN. They each run a client application I wrote that exposes a COM automation object.
For some strange reason I haven't been able to discover yet, one thread in the application takes up all of the available CPU time, slowing other operation on the machine. In observing the application's strange behaviour, I've noticed it's the third thread started, and if I debug on my machine I notice the first call to CoRegisterClassObject created two extra threads.
If the second of these two threads is the one that gets into an infinite loop, I'm not at all shure how to fix this. Where could I check next about what's wrong? Could it have started by one of the recent patches rolled out by Microsoft this last 'patch tuesday'?
I had a go with ProcessExplorer to extract a stack trace of the thread:
ntoskrnl.exe!ExReleaseResourceLite+0x1a3
ntoskrnl.exe!PsGetContextThread+0x329
WLDAP32.dll!Ordinal325+0x1231
WLDAP32.dll!Ordinal325+0x129e
WLDAP32.dll!Ordinal325+0x1178
ntdll.dll!LdrInitializeThunk+0x24
ntdll.dll!LdrShutdownThread+0xe9
kernel32.dll!ExitThread+0x3e
kernel32.dll!FreeLibraryAndExitThread+0x1e
ole32.dll!StringFromGUID2+0x65d
kernel32.dll!GetModuleFileNameA+0x1ba
© Stack Overflow or respective owner