// // README: PerfMon surport for DNS // dns\server\dnsperf: dnsperf.ini // (copied to 'systme32' dir) // counter NAMEs & HELPs dnsperf.h // (copied to 'systme32' dir) // counter offsets // public functions to change counter pointers // e.g. INC, DEC, ADD, SUB // public counter pointers as 'extern' // counter version defination: // DNS_PERFORMANCE_COUNTER_VERSION datadns.h // # of PerfMon obj: DNS_NUM_PERF_OBJECT_TYPES // counter data offset // define: DNS_DATA_DEFINITION perfconfig.h dnsperf.c // to generate dnsperf.dll // OpenDnsPerformanceData() // CollectDnsPerformanceData() // CloseDnsPerformanceData() // // define datastructure for PerfMon: DnsDataDefinition // set 'CounterNameTitleIndex' & 'CounterHelpTitleIndex' // for each counter dnsperf.def // for dnsperf.dll exports perfutil.h perfutil.c // GetQueryType() // IsNumberInUnicodeList() dns\server\server: startperf.h startperf.c // startPerf() -- called by startDnsServer() // define & set the public counter pointers // -- accessed by other files to change counter values perfconfig.c // GetConfigParam() other files // may change counter values whereever needed, through: // public functions & public counter pointers (see dnsperf.h) //==================================== NT setup: copy dnsperf.ini dnsperf.h dnsperf.dll to %windir%\system32\ //==================================== To add new counters for DNS: See datadns.h for help. Tip -- to view the places to be changed by following the example of the first counter, TotalQueryReceived : At dns\server\server : type 'qgrep -y TotalQueryReceived *' At dns\server\server : type 'qgrep -y TotalQueryReceived *'