Annotation of ntddk/src/perf/readme.txt, revision 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.