2011-11-04 16 views
0

在用戶認證過程中,我正在進行一個至少需要15秒才能返回的ADsGetObject函數調用。我的機器中有近20個組。調用堆棧如下。什麼可能是延誤的原因?需要長時間返回的ADsGetObject函數

00fcc230 77215ccc 7548179c 000005f9 00000000 ntdll!KiFastSystemCallRet 
00fcc234 7548179c 000005f9 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 
00fcc2a0 7706efa3 000005f9 ffffffff 00000000 KERNELBASE!WaitForSingleObjectEx+0x98 
00fcc2b8 7682c1bf 000005f9 ffffffff 00000000 kernel32!WaitForSingleObjectExImplementation+0x75 
00fcc2d0 7682c179 00000000 ffffffff 000003e5 RPCRT4!UTIL_WaitForSyncIO+0x1c 
00fcc2ec 7682d488 00000000 00fcc30c 00000000 RPCRT4!UTIL_GetOverlappedResultEx+0x62 
00fcc314 7682c0f1 001978c0 0000005c 00238348 RPCRT4!NMP_SyncSendRecv+0xb6 
00fcc340 7682ce5d 00238228 0000005c 00fcc464 RPCRT4!OSF_CCONNECTION::TransSendReceive+0xc5 
00fcc3c4 7682cdc9 00197790 001a9478 0024e9a8 RPCRT4!OSF_CCONNECTION::SendFragment+0x295 
00fcc420 7682cb39 00000018 00000000 ffffffff RPCRT4!OSF_CCALL::SendNextFragment+0x302 
00fcc474 7682ca56 0024e9a8 00fcc50c 00fcc4b4 RPCRT4!OSF_CCALL::FastSendReceive+0x239 
00fcc494 7682c9df 00fcc4b4 00fcc50c 00fcc538 RPCRT4!OSF_CCALL::SendReceiveHelper+0x55 
00fcc4bc 7683c1fc 00238360 00fcc538 00fcc538 RPCRT4!OSF_CCALL::SendReceive+0x43 
00fcc4d0 7683c6cf 00fcc50c 74ab1c60 00000001 RPCRT4!I_RpcSendReceive+0x29 
00fcc4e4 7683c69d 00fcc538 002383a4 00fcc538 RPCRT4!NdrSendReceive+0x31 
00fcc4f4 76895744 7d52523d 00000000 00000000 RPCRT4!NdrpSendReceive+0xc 
00fcc90c 74ab5096 74ab1c60 74ab45de 00fcc92c RPCRT4!NdrClientCall2+0x1a6 
00fcc924 74ab4d7d 00000000 00000000 00000000 LOGONCLI!DsrGetDcNameEx2+0x19 
00fcc998 74ab4cc8 00000000 00000000 00000000 LOGONCLI!DsGetDcNameWithAccountW+0x17e 
00fcc9c0 69b49029 00000000 0024f560 00000000 LOGONCLI!DsGetDcNameW+0x20 
00fcc9fc 69b48f85 0024f560 00fcca30 00000000 adsnt!DsGetDcNameNTWrapper+0x5c 
00fcca3c 69b49207 0024f560 00000001 00fccf04 adsnt!WinNTGetCachedObject+0x26e 
00fcced0 69b4557e 0024f560 00fccf00 00fccf04 adsnt!WinNTGetCachedName+0x11a 
00fcd988 69b41ddd 00fcd9a0 00fcda48 00fcda38 adsnt!HeuristicGetObject+0x110 
00fcda14 69b41cc6 0022d67c 00fcda48 00fcda38 adsnt!GetObjectW+0x1a4 
00fcda64 69b41c77 001bb080 0022d67c 00fcdafc adsnt!CWinNTProvider::ResolvePathName+0x3e 
00fcda80 76e2cba7 00232a30 001bb080 0022d67c adsnt!CWinNTProvider::ParseDisplayName+0x26 
00fcdacc 76e2cad6 001bb080 0022d67c 00fcdafc ole32!FindClassMoniker+0x8b 
00fcdb04 6f1535c9 001bb080 0022d67c 00fcdb28 ole32!MkParseDisplayName+0xbb 
00fcdb3c 6f1534db 0022d67c 00aa2d68 00fcdb84 ACTIVEDS!GetObjectW+0x117 
00fcdb54 007d5ec7 0022d67c 00aa2d68 00fcdb84 ACTIVEDS!ADsGetObject+0x15 
+0

最後它的工作與否?你可以多給點一些背景知識嗎? – JPBlanc

+0

它正在工作,但需要很長時間才能返回。 – sarat

+0

請你能給更多的上下文嗎?代碼行,客戶端計算機的組成部分。 – JPBlanc

回答

0

使用Process Monitor找出需要這麼長時間。可能是某種超時。你會在事件日誌中看到它。也許你會得到一個有趣的案例,如Mark with his slow logons;)

+0

謝謝你的回答。我發現這個調用堆棧阻止了操作。我想我也會從Process Monitor中獲得相同的結果。但是,這種阻礙的原因是一個問題。 – sarat

+1

您不僅可以獲得調用堆棧,還可以獲得磁盤,註冊表和設備活動,函數調用參數和函數結果。誠然,這是在黑暗中拍攝的,但也許你會在那裏找到一些東西。 –

+0

我發現原因,域/用戶名在許多情況下不存在。發現該用戶不存在於域中需要時間來返回錯誤! – sarat

相關問題