// // DNSCTR.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 DNSOBJ 0 #define TOTALQUERYRECEIVED 2 #define TOTALQUERYRECEIVED_S 4 #define UDPQUERYRECEIVED 6 #define UDPQUERYRECEIVED_S 8 #define TCPQUERYRECEIVED 10 #define TCPQUERYRECEIVED_S 12 #define TOTALRESPONSESENT 14 #define TOTALRESPONSESENT_S 16 #define UDPRESPONSESENT 18 #define UDPRESPONSESENT_S 20 #define TCPRESPONSESENT 22 #define TCPRESPONSESENT_S 24 #define RECURSIVEQUERIES 26 #define RECURSIVEQUERIES_S 28 #define RECURSIVETIMEOUT 30 #define RECURSIVETIMEOUT_S 32 #define RECURSIVEQUERYFAILURE 34 #define RECURSIVEQUERYFAILURE_S 36 #define NOTIFYSENT 38 #define ZONETRANSFERREQUESTRECEIVED 40 #define ZONETRANSFERSUCCESS 42 #define ZONETRANSFERFAILURE 44 #define AXFRREQUESTRECEIVED 46 #define AXFRSUCCESSSENT 48 #define IXFRREQUESTRECEIVED 50 #define IXFRSUCCESSSENT 52 #define NOTIFYRECEIVED 54 #define ZONETRANSFERSOAREQUESTSENT 56 #define AXFRREQUESTSENT 58 #define AXFRRESPONSERECEIVED 60 #define AXFRSUCCESSRECEIVED 62 #define IXFRREQUESTSENT 64 #define IXFRRESPONSERECEIVED 66 #define IXFRSUCCESSRECEIVED 68 #define IXFRUDPSUCCESSRECEIVED 70 #define IXFRTCPSUCCESSRECEIVED 72 #define WINSLOOKUPRECEIVED 74 #define WINSLOOKUPRECEIVED_S 76 #define WINSRESPONSESENT 78 #define WINSRESPONSESENT_S 80 #define WINSREVERSELOOKUPRECEIVED 82 #define WINSREVERSELOOKUPRECEIVED_S 84 #define WINSREVERSERESPONSESENT 86 #define WINSREVERSERESPONSESENT_S 88 #define DYNAMICUPDATERECEIVED 90 #define DYNAMICUPDATERECEIVED_S 92 #define DYNAMICUPDATENOOP 94 #define DYNAMICUPDATENOOP_S 96 #define DYNAMICUPDATEWRITETODB 98 #define DYNAMICUPDATEWRITETODB_S 100 #define DYNAMICUPDATEREJECTED 102 #define DYNAMICUPDATETIMEOUT 104 #define DYNAMICUPDATEQUEUED 106 #define SECUREUPDATERECEIVED 108 #define SECUREUPDATERECEIVED_S 110 #define SECUREUPDATEFAILURE 112 #define DATABASENODEMEMORY 114 #define RECORDFLOWMEMORY 116 #define CACHINGMEMORY 118 #define UDPMESSAGEMEMORY 120 #define TCPMESSAGEMEMORY 122 #define NBSTATMEMORY 124 #define DNS_PERF_COUNTER_BLOCK TEXT("Global\\Microsoft.Windows.DNS.Perf") extern volatile unsigned long * pcTotalQueryReceived; extern volatile unsigned long * pcUdpQueryReceived; extern volatile unsigned long * pcTcpQueryReceived; extern volatile unsigned long * pcTotalResponseSent; extern volatile unsigned long * pcUdpResponseSent; extern volatile unsigned long * pcTcpResponseSent; extern volatile unsigned long * pcRecursiveQueries; extern volatile unsigned long * pcRecursiveTimeOut; extern volatile unsigned long * pcRecursiveQueryFailure; extern volatile unsigned long * pcNotifySent; extern volatile unsigned long * pcZoneTransferRequestReceived; extern volatile unsigned long * pcZoneTransferSuccess; extern volatile unsigned long * pcZoneTransferFailure; extern volatile unsigned long * pcAxfrRequestReceived; extern volatile unsigned long * pcAxfrSuccessSent; extern volatile unsigned long * pcIxfrRequestReceived; extern volatile unsigned long * pcIxfrSuccessSent; extern volatile unsigned long * pcNotifyReceived; extern volatile unsigned long * pcZoneTransferSoaRequestSent; extern volatile unsigned long * pcAxfrRequestSent; extern volatile unsigned long * pcAxfrResponseReceived; extern volatile unsigned long * pcAxfrSuccessReceived; extern volatile unsigned long * pcIxfrRequestSent; extern volatile unsigned long * pcIxfrResponseReceived; extern volatile unsigned long * pcIxfrSuccessReceived; extern volatile unsigned long * pcIxfrUdpSuccessReceived; extern volatile unsigned long * pcIxfrTcpSuccessReceived; extern volatile unsigned long * pcWinsLookupReceived; extern volatile unsigned long * pcWinsResponseSent; extern volatile unsigned long * pcWinsReverseLookupReceived; extern volatile unsigned long * pcWinsReverseResponseSent; extern volatile unsigned long * pcDynamicUpdateReceived; extern volatile unsigned long * pcDynamicUpdateNoOp; extern volatile unsigned long * pcDynamicUpdateWriteToDB; extern volatile unsigned long * pcDynamicUpdateRejected; extern volatile unsigned long * pcDynamicUpdateTimeOut; extern volatile unsigned long * pcDynamicUpdateQueued; extern volatile unsigned long * pcSecureUpdateReceived; extern volatile unsigned long * pcSecureUpdateFailure; extern volatile unsigned long * pcDatabaseNodeMemory; extern volatile unsigned long * pcRecordFlowMemory; extern volatile unsigned long * pcCachingMemory; extern volatile unsigned long * pcUdpMessageMemory; extern volatile unsigned long * pcTcpMessageMemory; extern volatile unsigned long * pcNbstatMemory; #define PERF_INC(p) ( ++(*(p)) ) #define PERF_DEC(p) ( --(*(p)) ) #define PERF_ADD(p, c) ( (*(p)) += (c) ) #define PERF_SUB(p, c) ( (*(p)) -= (c) ) #define PERF_SET(p, c) ( (*(p)) = (c) ) #define DNS_PERFORMANCE_COUNTER_VERSION 1