0byt3m1n1
Path:
C:
/
Windows
/
Inf
/
DirectoryServices
/
[
Home
]
File: ntdsctr.h
//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: ntdsctr.h // //-------------------------------------------------------------------------- // // NTDSCTR.h // // Offset definition file for exensible counter objects and counters // // These "relative" offsets must start at 0 and be multiples of 2 (i.e. // even numbers). In the Open Procedure, they will be added to the // "First Counter" and "First Help" values of the device they belong to, // in order to determine the absolute location of the counter and // object names and corresponding help text in the registry. // // this file is used by the extensible counter DLL code as well as the // counter name and help text definition file (.INI) file that is used // by LODCTR to load the names into the registry. // // We use a version number to keep track of which set of counters we are // using, and whether the performance counters in the registry need to be // reloaded. If you add or delete any counters, please change the version // number at the end of this file. // #define DSAOBJ 0 #define DRA_IN_PROPS 2 #define BROWSE 4 #define REPL 6 #define THREAD 8 #define ABCLIENT 10 #define PENDSYNC 12 #define REMREPUPD 14 #define SDPROPS 16 #define SDEVENTS 18 #define LDAPCLIENTS 20 #define LDAPACTIVE 22 #define LDAPWRITE 24 #define LDAPSEARCH 26 #define DRAOBJSHIPPED 28 #define DRAPROPSHIPPED 30 #define DRA_IN_VALUES 32 #define DRASYNCREQUESTMADE 34 #define DRASYNCREQUESTSUCCESSFUL 36 #define DRASYNCREQUESTFAILEDSCHEMAMISMATCH 38 #define DRASYNCOBJRECEIVED 40 #define DRASYNCPROPUPDATED 42 #define DRASYNCPROPSAME 44 #define MONLIST 46 #define NOTIFYQ 48 #define LDAPUDPCLIENTS 50 #define SUBSEARCHOPS 52 #define NAMECACHEHIT 54 #define NAMECACHETRY 56 #define HIGHESTUSNISSUEDLO 58 #define HIGHESTUSNISSUEDHI 60 #define HIGHESTUSNCOMMITTEDLO 62 #define HIGHESTUSNCOMMITTEDHI 64 #define SAMWRITES 66 #define TOTALWRITES1 68 #define DRAWRITES 70 #define TOTALWRITES2 72 #define LDAPWRITES 74 #define TOTALWRITES3 76 #define LSAWRITES 78 #define TOTALWRITES4 80 #define KCCWRITES 82 #define TOTALWRITES6 84 #define NSPIWRITES 86 #define TOTALWRITES7 88 #define OTHERWRITES 90 #define TOTALWRITES8 92 #define TOTALWRITES 94 #define SAMSEARCHES 96 #define TOTALSEARCHES1 98 #define DRASEARCHES 100 #define TOTALSEARCHES2 102 #define LDAPSEARCHES 104 #define TOTALSEARCHES3 106 #define LSASEARCHES 108 #define TOTALSEARCHES4 110 #define KCCSEARCHES 112 #define TOTALSEARCHES6 114 #define NSPISEARCHES 116 #define TOTALSEARCHES7 118 #define OTHERSEARCHES 120 #define TOTALSEARCHES8 122 #define TOTALSEARCHES 124 #define SAMREADS 126 #define TOTALREADS1 128 #define DRAREADS 130 #define TOTALREADS2 132 #define DRA_IN_DN_VALUES 134 #define DRA_IN_OBJS_FILTERED 136 #define LSAREADS 138 #define TOTALREADS4 140 #define KCCREADS 142 #define TOTALREADS6 144 #define NSPIREADS 146 #define TOTALREADS7 148 #define OTHERREADS 150 #define TOTALREADS8 152 #define TOTALREADS 154 #define LDAPBINDSUCCESSFUL 156 #define LDAPBINDTIME 158 #define CREATEMACHINESUCCESSFUL 160 #define CREATEMACHINETRIES 162 #define CREATEUSERSUCCESSFUL 164 #define CREATEUSERTRIES 166 #define PASSWORDCHANGES 168 #define MEMBERSHIPCHANGES 170 #define QUERYDISPLAYS 172 #define ENUMERATIONS 174 #define MEMBEREVALTRANSITIVE 176 #define MEMBEREVALNONTRANSITIVE 178 #define MEMBEREVALRESOURCE 180 #define MEMBEREVALUNIVERSAL 182 #define MEMBEREVALACCOUNT 184 #define MEMBEREVALASGC 186 #define DRASYNCFULLREM 188 #define DRA_IN_BYTES_TOTAL_RATE 190 #define DRA_IN_BYTES_NOT_COMP_RATE 192 #define DRA_IN_BYTES_COMP_PRE_RATE 194 #define DRA_IN_BYTES_COMP_POST_RATE 196 #define DRA_OUT_BYTES_TOTAL_RATE 198 #define DRA_OUT_BYTES_NOT_COMP_RATE 200 #define DRA_OUT_BYTES_COMP_PRE_RATE 202 #define DRA_OUT_BYTES_COMP_POST_RATE 204 #define DS_CLIENT_BIND 206 #define DS_SERVER_BIND 208 #define DS_CLIENT_NAME_XLATE 210 #define DS_SERVER_NAME_XLATE 212 #define SDPROP_RUNTIME_QUEUE 214 #define SDPROP_WAIT_TIME 216 #define DRA_OUT_OBJS_FILTERED 218 #define DRA_OUT_VALUES 220 #define DRA_OUT_DN_VALUES 222 #define NSPI_ANR 224 #define NSPI_PROPERTY_READS 226 #define NSPI_OBJECT_SEARCH 228 #define NSPI_OBJECT_MATCHES 230 #define NSPI_PROXY_LOOKUP 232 #define ATQ_THREADS_TOTAL 234 #define ATQ_THREADS_LDAP 236 #define ATQ_THREADS_OTHER 238 #define DRA_IN_BYTES_TOTAL 240 #define DRA_IN_BYTES_NOT_COMP 242 #define DRA_IN_BYTES_COMP_PRE 244 #define DRA_IN_BYTES_COMP_POST 246 #define DRA_OUT_BYTES_TOTAL 248 #define DRA_OUT_BYTES_NOT_COMP 250 #define DRA_OUT_BYTES_COMP_PRE 252 #define DRA_OUT_BYTES_COMP_POST 254 #define LDAP_NEW_CONNS_PER_SEC 256 #define LDAP_CLS_CONNS_PER_SEC 258 #define LDAP_SSL_CONNS_PER_SEC 260 #define DRA_REPL_QUEUE_OPS 262 #define DRA_TDS_IN_GETCHNGS 264 #define DRA_TDS_IN_GETCHNGS_W_SEM 266 #define DRA_REM_REPL_UPD_LNK 268 #define DRA_REM_REPL_UPD_TOT 270 #define NTDSAPIWRITES 272 #define TOTALWRITES9 274 #define NTDSAPISEARCHES 276 #define TOTALSEARCHES9 278 #define NTDSAPIREADS 280 #define TOTALREADS9 282 #define SAM_ACCT_GROUP_LATENCY 284 #define SAM_RES_GROUP_LATENCY 286 #define ATQ_QUEUE_DEPTH 288 #define ATQ_REQUEST_LATENCY 290 #define ATQ_EST_QUEUE_DELAY 292 #define GC_OBJS_CLEANED_PER_SEC 294 #define PHANTOMS_CLEANED_PER_SEC 296 #define LINK_VALS_CLEANED_PER_SEC 298 #define GC_OBJS_VISITED_PER_SEC 300 #define PHANTOMS_VISITED_PER_SEC 302 #define NTLM_BINDS 304 #define NEGO_BINDS 306 #define DIGEST_BINDS 308 #define SIMPLE_BINDS 310 #define EXTERNAL_BINDS 312 #define FAST_BINDS 314 #define SEARCHES_BASE 316 #define SEARCHES_SUBTREE 318 #define SEARCHES_ONELEVEL 320 #define OBJECT_ADDS 322 #define OBJECT_MODS 324 #define OBJECT_DELETES 326 #define OBJECT_RECYCLES 328 #define APPROXIMATE_HIGHEST_DNT_USED 330 #define NUM_TRANSITIVE_OPERATIONS 332 #define NUM_TRANSITIVE_SUB_OPERATIONS 334 #define TRANSITIVE_MILLISECONDS_RUN 336 #define NUM_DIRSYNC_SESSIONS 338 #define DIRSYNC_THROTTLING_RATE 340 #define DRASYNCLNKDELETED 342 #define DSA_PERF_COUNTER_BLOCK TEXT("Global\\Microsoft.Windows.NTDS.Perf") //If the last counter changes, DSA_LAST_COUNTER_INDEX need to be changed #define DSA_LAST_COUNTER_INDEX DRASYNCLNKDELETED extern volatile unsigned long * pcBrowse; extern volatile unsigned long * pcSDProps; extern volatile unsigned long * pcSDEvents; extern volatile unsigned long * pcLDAPClients; extern volatile unsigned long * pcLDAPActive; extern volatile unsigned long * pcLDAPWritePerSec; extern volatile unsigned long * pcLDAPSearchPerSec; extern volatile unsigned long * pcThread; extern volatile unsigned long * pcABClient; extern volatile unsigned long * pcMonListSize; extern volatile unsigned long * pcNotifyQSize; extern volatile unsigned long * pcLDAPUDPClientOpsPerSecond; extern volatile unsigned long * pcSearchSubOperations; extern volatile unsigned long * pcNameCacheHit; extern volatile unsigned long * pcNameCacheTry; extern volatile unsigned long * pcHighestUsnIssuedLo; extern volatile unsigned long * pcHighestUsnIssuedHi; extern volatile unsigned long * pcHighestUsnCommittedLo; extern volatile unsigned long * pcHighestUsnCommittedHi; extern volatile unsigned long * pcSAMWrites; extern volatile unsigned long * pcDRAWrites; extern volatile unsigned long * pcLDAPWrites; extern volatile unsigned long * pcLSAWrites; extern volatile unsigned long * pcKCCWrites; extern volatile unsigned long * pcNSPIWrites; extern volatile unsigned long * pcOtherWrites; extern volatile unsigned long * pcNTDSAPIWrites; extern volatile unsigned long * pcTotalWrites; extern volatile unsigned long * pcSAMSearches; extern volatile unsigned long * pcDRASearches; extern volatile unsigned long * pcLDAPSearches; extern volatile unsigned long * pcLSASearches; extern volatile unsigned long * pcKCCSearches; extern volatile unsigned long * pcNSPISearches; extern volatile unsigned long * pcOtherSearches; extern volatile unsigned long * pcNTDSAPISearches; extern volatile unsigned long * pcTotalSearches; extern volatile unsigned long * pcSAMReads; extern volatile unsigned long * pcDRAReads; extern volatile unsigned long * pcLSAReads; extern volatile unsigned long * pcKCCReads; extern volatile unsigned long * pcNSPIReads; extern volatile unsigned long * pcOtherReads; extern volatile unsigned long * pcNTDSAPIReads; extern volatile unsigned long * pcTotalReads; extern volatile unsigned long * pcLDAPBinds; extern volatile unsigned long * pcLDAPBindTime; extern volatile unsigned long * pcCreateMachineSuccessful; extern volatile unsigned long * pcCreateMachineTries; extern volatile unsigned long * pcCreateUserSuccessful; extern volatile unsigned long * pcCreateUserTries; extern volatile unsigned long * pcPasswordChanges; extern volatile unsigned long * pcMembershipChanges; extern volatile unsigned long * pcQueryDisplays; extern volatile unsigned long * pcEnumerations; extern volatile unsigned long * pcMemberEvalTransitive; extern volatile unsigned long * pcMemberEvalNonTransitive; extern volatile unsigned long * pcMemberEvalResource; extern volatile unsigned long * pcMemberEvalUniversal; extern volatile unsigned long * pcMemberEvalAccount; extern volatile unsigned long * pcMemberEvalAsGC; extern volatile unsigned long * pcDsClientBind; extern volatile unsigned long * pcDsServerBind; extern volatile unsigned long * pcDsClientNameTranslate; extern volatile unsigned long * pcDsServerNameTranslate; extern volatile unsigned long * pcSDPropRuntimeQueue; extern volatile unsigned long * pcSDPropWaitTime; extern volatile unsigned long * pcNspiANR; extern volatile unsigned long * pcNspiPropertyReads; extern volatile unsigned long * pcNspiObjectSearch; extern volatile unsigned long * pcNspiObjectMatches; extern volatile unsigned long * pcNspiProxyLookup; extern volatile unsigned long * pcAtqThreadsTotal; extern volatile unsigned long * pcAtqThreadsLDAP; extern volatile unsigned long * pcAtqThreadsOther; extern volatile unsigned long * pcAtqQueueDepth; extern volatile unsigned long * pcAtqRequestLatency; extern volatile unsigned long * pcAtqEstimatedQueueDelay; extern volatile unsigned long * pcLdapNewConnsPerSec; extern volatile unsigned long * pcLdapClosedConnsPerSec; extern volatile unsigned long * pcLdapSSLConnsPerSec; extern volatile unsigned long * pcSAMAcctGroupLatency; extern volatile unsigned long * pcSAMResGroupLatency; extern volatile unsigned long * pcGcObjsCleanedPerSec; extern volatile unsigned long * pcPhantomsCleanedPerSec; extern volatile unsigned long * pcLinkValsCleanedPerSec; extern volatile unsigned long * pcGcObjsVisitedPerSec; extern volatile unsigned long * pcPhantomsVisitedPerSec; extern volatile unsigned long * pcNtlmBinds; extern volatile unsigned long * pcNegoBinds; extern volatile unsigned long * pcDigestBinds; extern volatile unsigned long * pcSimpleBinds; extern volatile unsigned long * pcExternalBinds; extern volatile unsigned long * pcFastBinds; extern volatile unsigned long * pcSearchesBase; extern volatile unsigned long * pcSearchesSubtree; extern volatile unsigned long * pcSearchesOneLevel; extern volatile unsigned long * pcObjectAdds; extern volatile unsigned long * pcObjectMods; extern volatile unsigned long * pcObjectDeletes; extern volatile unsigned long * pcObjectRecycles; extern volatile unsigned long * pcApproxHighestDNT; extern volatile unsigned long * pcTransitiveOperations; extern volatile unsigned long * pcTransitiveSubOperations; extern volatile unsigned long * pcTransitiveMillisecondsRun; extern volatile unsigned long * pcNumDirSyncSessions; extern volatile unsigned long * pcDirSyncThrottlingRate; // Replication-specific counters. extern volatile unsigned long * pcRepl; extern volatile unsigned long * pcPendSync; extern volatile unsigned long * pcRemRepUpd; extern volatile unsigned long * pcDRAObjShipped; extern volatile unsigned long * pcDRAPropShipped; extern volatile unsigned long * pcDRASyncRequestMade; extern volatile unsigned long * pcDRASyncRequestSuccessful; extern volatile unsigned long * pcDRASyncRequestFailedSchemaMismatch; extern volatile unsigned long * pcDRASyncObjReceived; extern volatile unsigned long * pcDRASyncPropUpdated; extern volatile unsigned long * pcDRASyncPropSame; extern volatile unsigned long * pcDRASyncFullRemaining; extern volatile unsigned long * pcDRAInBytesTotal; extern volatile unsigned long * pcDRAInBytesTotalRate; extern volatile unsigned long * pcDRAInBytesNotComp; extern volatile unsigned long * pcDRAInBytesNotCompRate; extern volatile unsigned long * pcDRAInBytesCompPre; extern volatile unsigned long * pcDRAInBytesCompPreRate; extern volatile unsigned long * pcDRAInBytesCompPost; extern volatile unsigned long * pcDRAInBytesCompPostRate; extern volatile unsigned long * pcDRAOutBytesTotal; extern volatile unsigned long * pcDRAOutBytesTotalRate; extern volatile unsigned long * pcDRAOutBytesNotComp; extern volatile unsigned long * pcDRAOutBytesNotCompRate; extern volatile unsigned long * pcDRAOutBytesCompPre; extern volatile unsigned long * pcDRAOutBytesCompPreRate; extern volatile unsigned long * pcDRAOutBytesCompPost; extern volatile unsigned long * pcDRAOutBytesCompPostRate; extern volatile unsigned long * pcDRAInProps; extern volatile unsigned long * pcDRAInValues; extern volatile unsigned long * pcDRAInDNValues; extern volatile unsigned long * pcDRAInObjsFiltered; extern volatile unsigned long * pcDRAOutObjsFiltered; extern volatile unsigned long * pcDRAOutValues; extern volatile unsigned long * pcDRAOutDNValues; extern volatile unsigned long * pcDRAReplQueueOps; extern volatile unsigned long * pcDRATdsInGetChngs; extern volatile unsigned long * pcDRATdsInGetChngsWSem; extern volatile unsigned long * pcDRARemReplUpdLnk; extern volatile unsigned long * pcDRARemReplUpdTot; extern volatile unsigned long * pcDRASyncLnkDeleted; // Alignof perf counter data block #define cbPerfCounterDataAlign 256 // Sizeof perf counter data block extern size_t cbPerfCounterData; #define ADDR_X(pCounter, iProc) ((LPLONG)(((LPBYTE)(pCounter)) + cbPerfCounterData * iProc)) #define ADDR(pCounter) ADDR_X(pCounter, NtCurrentTeb()->IdealProcessor) #define INC(pCounter) InterlockedIncrement(ADDR(pCounter)) #define DEC(pCounter) InterlockedDecrement(ADDR(pCounter)) #define IADJUST(pCounter, delta) InterlockedExchangeAdd(ADDR(pCounter),delta) // We can't hash an absolute value so just set proc 0's counter and leave all others at zero #define ISET(pCounter, value) \ { \ size_t iProc; \ extern size_t gcProcessor; \ \ InterlockedExchange(ADDR_X(pCounter, 0), value); \ for ( iProc = 1; iProc < gcProcessor; iProc++ ) { \ InterlockedExchange(ADDR_X(pCounter, iProc), 0); \ } \ } // add all values #define IGET(pCounter, value) \ { \ size_t iProc; \ extern size_t gcProcessor; \ value = *ADDR_X(pCounter, 0); \ for ( iProc = 1; iProc < gcProcessor; iProc++ ) { \ value += *ADDR_X(pCounter, iProc); \ } \ } #define PERFHIDWORD(_qw) ((unsigned long)((_qw)>>32)) #define PERFLODWORD(_qw) ((unsigned long)(_qw)) // Some of our counters are in fact only updated in one thread, or we // may not care too much about accuracy. For those, we have a cheaper // increment macro. Note that these are NOT SAFE for counters that must // reliably return to zero (e.g., ThreadsInUse). #define PERFINC(x) ((*ADDR(x))++) #define PERFDEC(x) ((*ADDR(x))--) // Version history // 0 or none, pre April 1998, original set // 1, April 1998, wlees, added pcDRASyncFullRemaining // 2, Murlis May 1998 Changed Logon Perf Counters // 3, Fix help text for logon counters // 4, Nov 1998, jeffparh, Add DRA in/out byte counters // 5, 11/21/98, DaveStr, Add DsBind & DsCrackNames counters // 6, Jan 1999, jeffparh, Add/revise various DRA counters // 7, Feb 1999, mariosz, Add various Nspi counters // 8, May 1999, rrandall, Add Atq counters // 9, June 1999, rrandall, fix counter names and descriptions. // 10, July 1999, jeffparh, Add DRA cumulative byte ctrs (in addition to rates) // 11, Feb, 2000, xinhe, Delete XDS counters // 12, Oct, 2000, rrandall, add debug counters for tracking lping problems. // 13, Nov, 2000, gregjohn, add DRA queue length and IDL_DRSGetNCChanges thread counters // 14, Nov, 2000, gregjohn, add NTDSAPI Dir search/read/write counter // 15, Jan, 2001, rrandall, remove "LDAP Successful Binds" counter // 16, Aug, 2001, t-kchan, remove LDAP_THREADS_* counters // 17, Oct, 2002, colinbr, add group evaluation latency counters // 18, Oct, 2002, JSchwart, remove NTLM/Kerberos/KDC counters // 19, May, 2006, MattRim, add ATQ queue depth, request latency, and est. queue delay counters // 20, July, 2006, MattRim, add {GC Objects, Phantoms, Link Values} {visited,cleaned}/second counters // 21, Feb, 2007, JiHarper, add Bind, Search, Modify counters // 22, Sept, 2007, MattRim, fix NTDSAPI Dir search/read/write counters (added base counters) // 23, July, 2008, Timwi, add recycle counters // 24, June, 2010, Timwi, add approximate highest dnt // 25, March, 2012, Timwi, add counters for transitive operations // 26, July, 2012, SarathM, add counters for dirsync sessions // 27, July, 2016, pgolash, add counter for DRA Inbound Sync Link Deletions #define NTDS_PERFORMANCE_COUNTER_VERSION 27 //The size of the shared memory block for communication between //ntdsa.dll and ntdsperf.dll #define DSA_PERF_SHARED_PAGE_SIZE 65536 //The following macro returns the offset in DWORD of counter X #define COUNTER_OFFSET(X) ( (X) / 2 )