Annotation of ntddk/src/perf/readme.txt, revision 1.1.1.1

1.1       root        1: Using the VGA performance counters example
                      2: 
                      3: Overview:
                      4: 
                      5: This example is provided as a supplement to the VGA driver provided in
                      6: the DDK to demonstrate the addition of performance counters to a device
                      7: driver. The counter example will count the VGA driver's TextOut and 
                      8: BitBlt operations and provide this data to the performance section of the
                      9: registry by way of the VGACTRS.DLL. The easiest way to see these counters
                     10: is by running Perfmon after they have been installed. 
                     11: 
                     12: Building and Installing:
                     13: 
                     14: Before working with this sample, please refer to the DDK Programmer's Guide
                     15: for more details on performance counters.
                     16: 
                     17:     1.  Design the counter objects and counter names for the driver.
                     18:         One driver may have multiple counter objects, counters and 
                     19:         instances of counter objects as is appropriate. See Perfmon's
                     20:         counters for examples of each of these cases. 
                     21: 
                     22:         (This step has already been accomplished)
                     23: 
                     24: 
                     25:     2.  Create the driver name installation file and include file.
                     26: 
                     27:         These are the example files: 
                     28: 
                     29:             vgactrs\vgactrnm.h      ; include file for counter offsets
                     30:             vgactrs\vgactrs.ini     ; name and explain texd definitions
                     31: 
                     32:     3.  Add data collection functions, variables and interfaces to the
                     33:         device driver (see "tips" below).
                     34: 
                     35:         Replace the following files in the VGA driver example with
                     36:         these files and re-build the VGA.DLL file. Replace the current
                     37:         VGA.DLL in the system32 directory with this one.
                     38: 
                     39:             vgacode\driver\enable.c    ; interface initialization code
                     40:             vgacode\driver\bitblt.c    ; bitblt counter increment
                     41:             vgacode\driver\textout.c   ; textout counter increment
                     42: 
                     43:     4.  Create the Counter DLL routines (Open, Collect and Close) and
                     44:         any requisite data structures (see "tips" below).
                     45: 
                     46:         Build the vgactrs directory which will produce the vgactrs.dll
                     47:         and copy the .dll into the system32 directory.
                     48: 
                     49:     5.  Update the registry entries. For testing this can be done 
                     50:         manually, however, for "production", these modifications should
                     51:         be done by Setup when the driver and the counter DLL's are 
                     52:         installed. The registry  entries include AT LEAST:
                     53: 
                     54:                 For loading of your driver's performance counter 
                     55:                 DLL and routines, make the following modifications 
                     56:                 to the registry using regedt32:
                     57:             
                     58:         MACHINE
                     59:             SYSTEM
                     60:                 CurrentControlSet
                     61:                     Services
                     62:                         VGA
                     63:                             Performance
                     64:                                 :Library=vgactrs.dll
                     65:                                 :Open=OpenVgaPerformanceData
                     66:                                 :Collect=CollectVgaPerformanceData
                     67:                                 :Close=CloseVgaPerformanceData
                     68: 
                     69:                 For the event logger to recognize your driver's
                     70:                 error messages and display the corresponding text,
                     71:                 make the following modifications to the registry using
                     72:                 regedt32:
                     73: 
                     74:         MACHINE
                     75:             SYSTEM
                     76:                 CurrentControlSet
                     77:                     Services
                     78:                         EventLog
                     79:                             Application
                     80:                                 VgaCtrs
                     81:                                     :EventMessageFile=
                     82:                                         %systemroot%\system32\vgactrs.dll
                     83:                                     :TypesSupported=0x07
                     84:                 
                     85: 
                     86:     6.  Load the counter names and explain text into the registry
                     87:         using the LODCTR utility and the corresponding .INI file.
                     88: 
                     89:             > lodctr vgactrs.ini
                     90: 
                     91: At this point all the software is installed and the system will need to be
                     92: rebooted for the changes to take effect (more specifically for the new
                     93: VGA driver and counter .DLL to be loaded).
                     94: 
                     95: Be sure to reboot between VGACTRS.DLL changes if it is necessary to 
                     96: recompile the Counter DLL since SCREG.EXE will keep the old version 
                     97: opened until the system is rebooted. 
                     98: 
                     99: 
                    100: List of files supplied in this example:
                    101: 
                    102: README.TXT
                    103:     this file.
                    104: 
                    105: VGACODE
                    106:     directory of modified VGA driver files. These files should replace
                    107:     the corresponding files in the VGA driver example in order to build
                    108:     a VGA driver that provides performance statistics.
                    109: 
                    110:     \enable.c
                    111:         modified VGA file that contains the initialization of a mapped
                    112:         memory section for use by the VGACTRS.DLL to read the values of
                    113:         the performance counters collected  by the VGA driver.
                    114: 
                    115:     \bitblt.c
                    116:         modified VGA file that increments the bitblt counter every time
                    117:         the bitblt routine is called
                    118: 
                    119:     \textout.c
                    120:         modified VGA file that increments the textout counter every time
                    121:         the textout routine is called.
                    122: 
                    123: VGACTRS
                    124:     the directory containing the extensible performance counter routines 
                    125:     and initialization files for the VGA driver counters.
                    126: 
                    127:     \datavga.h
                    128:         data structure and offset constant definitions for the data 
                    129:         block returned to the registry by the VGA extensible counter 
                    130:         routines.
                    131: 
                    132:     \datavga.c
                    133:         the declaration and initialization of the static data template
                    134:         used to format the counter data for return to the registry
                    135: 
                    136:     \makefile
                    137:         the generic makefile used to build the example code.
                    138: 
                    139:     \makefile.inc
                    140:         the addition to the standard makefile that compiles the 
                    141:         message file when necessary
                    142: 
                    143:     \perfmsg.h
                    144:         macros and constants used for formatting and passing messages
                    145:         to the event logging facility
                    146: 
                    147:     \perfutil.c
                    148:         utility routines used by the counter functions
                    149: 
                    150:     \perfutil.h
                    151:         utility routine prototypes and constant defintions used by the
                    152:         counter routines.
                    153: 
                    154:     \perfvga.c
                    155:         Counter routines used by the registry to open and collect data
                    156:         from the VGA driver.
                    157: 
                    158:     \sources
                    159:         list of files and environment variables to use when compiling
                    160:         source code
                    161: 
                    162:     \vgactrnm.h
                    163:         symbolic constants used by extensible counter routines and 
                    164:         registry initialization files that indicate the relative value
                    165:         of the counter and object names and explain text.
                    166: 
                    167:     \vgactrs.mc
                    168:         message definition file for logging error events to the event
                    169:         logger
                    170: 
                    171:     \vgactrs.ini
                    172:         explain text and counter name definition file used by lodctr 
                    173:         utility to add these entries to the registry.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.