WaitClassification WatchFunctions
WaitClassification WatchFunctions
# This is a list of functions that are not meant to have long waits,
# so if stacks with long waits contain these functions, it is probably
# a performance problem.
#
# Locks
ExpWaitForResource
RtlpWaitOnCriticalSection
EnterCrit
# EnterSharedCrit
GreAcquireSemaphore
GreAcquireSemaphoreShared
ExfAcquirePushLockExclusive
ExfAcquirePushLockShared
FltAcquirePushLockShared
# ExAcquireSharedStarveExclusive
# ExAcquireFastMutex
ExfAcquireRundownProtection
# Memory / flushing
MmAccessFault # page fault
MmWorkingSetManager
MmCreateSection
MmFlushSection # flushing
DiskFlushDispatch
VmFlushBuffers
PmFlushBuffers
NtFlushVirtualMemory
NtFlushBuffersFile
# Registry
NtOpenKey
NtFlushKey
NtEnumerateKey
NtQueryKey
NtQueryValueKey
NtSetValueKey
NtCreateHey
NtDeleteValueKey
HvSyncHive
ZwFlushKey
# NTFS
NtfsCommonRead
NtfsCommonWrite
NtfsAcquireResourceShared
NtfsAcquireResourceExclusive
NtfsAcquirePagingResourceExclusive
NtfsAcquirePagingResourceShared
NtfsAcquireSharedVcb
NtfsAcquireSharedFcb
NtfsAcquireExclusiveFcb
# NtfsAcquireSharedScbForTransaction
# NtfsAcquireScbForLazyWrite
# NtfsAcquireFcbWithPaging
# LfsAcquireLfcbShared
# LfsAcquireLfcbExclusive
# LfsAcquireLchShared
# LfsAcquireLchExclusive
TxfFlushTxfLsnForNtfsLsn
NtfsWaitOnIo
NtfsCommitCurrentTransaction
GetOverlappedResult
# Network IO
MupCreate
MupFsControl
MupStateMachine
# IE
CBrowserFrame::AddTab
# Outlook
LargePST::NDB::WaitForMutex
LargePST::FileRead
CFileCache::EnterFileMutex
CFileCache::EnterMutex
FileCacheRead
FileCacheWrite
IopAcquireFileObjectLock
PSTCrashRecovery
# PnP
PNP_QueryRemove
PNP_GetDeviceList
PNP_GetDeviceRegProp
PNP_ValidateDeviceInstance
PNP_GetFirstLogConf
PNP_GetInterfaceDeviceList
PNP_GetObjectProp
# AV
CheckFileWaitInTrap
WaitInTrap
# Misc
_QueryClassInterface # verclsid action going on
CJSProxy::dnsResolve # DNS resolution
RxFsdDispatch # network file system I/O
SLOpen # sometimes the Software Licensing service won't
start
LdrLoadDll # DLL loading
LdrLockLoaderLock
LdrGetDllHandleEx
LdrpCheckForLoadedDll
GetProcAddress
GetModuleHandleExA # kernel32 api that causes lock contention
GetModuleHandleExW
GetModuleHandleW
ApphelpCheckShellObject
JetSeek
PfProcessCreateNotification # app launch prefetching
SetupDiCallClassInstaller # setupapi.dll
RpcBroadcastSystemMessage # lsm.exe
BroadcastPnpWindowMessage # hits a 5-second timeout sometimes
NtUserScrollDC
xxxDWP_NCMouse
xxxMouseActivate
CoCreateInstanceEx
CAudioCompressor::OnSample # audio glitching
CVideoBaseCodec::OnSample # video glitching
CDoc::OnMouseMessage # mouse processing in mshtml.dll
CComposition::Compose # DWM drawing
CWindowList::UpdateScene # more DWM
CToolbar::TBPaint
OnDwpNcLButtonDown
OnDwpNcMouseMove
OnDwpNcMouseLeave
OnDwpNcPaint
RChangeServiceConfigW
ZwFlushBuffersFile
SHParseDisplayName
SHGetUserDisplayName
IsTrustedFile
RtlAllocateHeap
CcWaitForUninitializeCacheMap
FWOpenPolicyStore # firewall
FWGetGlobalConfig
PSGetPropertyDescription
SHGetIconIndexFromPIDL
SHGetAttributes
GetFileAttributesW
ZwQueryAttributesFile
GetDiskFreeSpaceExW
NtGdiGetCharABCWidths
# AlpcpReceiveSynchronousReply # synchronous RPC call
# CUrlMon::BindToStorage
# WinHttpSendRequest
LpcGetUserName # lsass function, seen hitting 20-second timeout
CuipCheckNetworkFileAccess # consent.exe
LoadUserProfileW
# Query_Main # DNS query
QueryDns
InternetInitializeAutoProxySync