Annotation of mstools/info/evguidep.txt, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: 
                      5: 
                      6: 
                      7: 
                      8: 
                      9: 
                     10: 
                     11: 
                     12: 
                     13: 
                     14: 
                     15: 
                     16: 
                     17: 
                     18: 
                     19: 
                     20: 
                     21: 
                     22: 
                     23: 
                     24: 
                     25: 
                     26: 
                     27: 
                     28: 
                     29: 
                     30: 
                     31: 
                     32:         Windows NT Event Reporting Guidelines
                     33:         Windows NT Event Reporting Guidelines
                     34:         Windows NT Event Reporting Guidelines
                     35: 
                     36:         Revision
                     37:         Revision
                     38:         Revision 0.2P, 27-Jun-92
                     39: 
                     40:         This document is expressly for external use
                     41: 
                     42: 
                     43: 
                     44: 
                     45: 
                     46: 
                     47: 
                     48: 
                     49: 
                     50: 
                     51: 
                     52: 
                     53: 
                     54: 
                     55: 
                     56: 
                     57: 
                     58: 
                     59: 
                     60: 
                     61: 
                     62: 
                     63: 
                     64: 
                     65: 
                     66:         Microsoft Corporation Company Confidential
                     67: 
                     68: 
                     69: 
                     70:                       Windows NT Event Reporting Guidelines - i
                     71: 
                     72: 
                     73: 
                     74: 
                     75:         Introduction............................................2
                     76: 
                     77: 
                     78:         Popups and Logs.........................................2
                     79: 
                     80: 
                     81:         Event Logging...........................................3
                     82: 
                     83: 
                     84:           Source................................................4
                     85: 
                     86: 
                     87:           Event ID..............................................4
                     88: 
                     89: 
                     90:           Event Type............................................4
                     91: 
                     92: 
                     93:           Category..............................................5
                     94: 
                     95: 
                     96:           Strings...............................................5
                     97: 
                     98: 
                     99:           Description...........................................6
                    100: 
                    101: 
                    102:           Data..................................................6
                    103: 
                    104: 
                    105: 
                    106: 
                    107: 
                    108: 
                    109: 
                    110: 
                    111: 
                    112: 
                    113: 
                    114: 
                    115: 
                    116: 
                    117: 
                    118: 
                    119: 
                    120: 
                    121: 
                    122: 
                    123: 
                    124: 
                    125: 
                    126: 
                    127: 
                    128:         Microsoft Corporation Company Confidential
                    129: 
                    130: 
                    131: 
                    132:                       Windows NT Event Reporting Guidelines   2
                    133: 
                    134: 
                    135: 
                    136:         Introduction
                    137:         Introduction
                    138:         Introduction
                    139: 
                    140:         Many applications (particularly services), and Windows itself, have
                    141:         the need to record important events which occur while they are
                    142:         running. Events may be anything from asserting the fact that SQL
                    143:         Server has started, to asserting that it has crashed. After crashes
                    144:         or other errors, users, administrators, and support personnel have
                    145:         the task of trying to piece together what caused the problem so that
                    146:         they may prevent it from recurring and so they may have a better
                    147:         chance to recover damaged or lost data.
                    148: 
                    149:         Today, LAN Manager and other service applications like SQL Server and
                    150:         Lotus Notes record errors and events in various proprietary Error
                    151:         logs. These proprietary Error logs have different formats, use
                    152:         different user interfaces for their display, and cannot be merged to
                    153:         provide a complete picture. Yet, all of these logs are storing
                    154:         similar information, similarly controlling the logging of
                    155:         information, and presenting the logged data in similar ways.
                    156: 
                    157:         The goal of Windows Event logging is to provide a standard
                    158:         centralized way for applications and the system to record important
                    159:         software and hardware events, to supply a standard user interface for
                    160:         viewing the logs, a standard programmatic interface for examining the
                    161:         logs, and to provide a means to merge events from various sources
                    162:         into a single informative "story" of what happened.  Therefore,
                    163:         Windows NT provides an Event Log service which may be called using
                    164:         Win32 API by any application to log important events.  Windows NT
                    165:         also includes an administrative tool called the Event Viewer which
                    166:         allows one to view events in the event logs as well as manage the
                    167:         growth of these logs.
                    168: 
                    169:         Events are defined as any significant occurrence in system or
                    170:         application software which requires notification of one or more
                    171:         users.  When an event occurs, there are two options for notifying the
                    172:         user: 1) interactive popup message and 2) logging to a log file.
                    173:         Either of these options may apply for a given event, depending upon
                    174:         its nature.  The purpose of this document is to specify a set of
                    175:         guidelines for event handling for Windows NT applications.  The goal
                    176:         is to provide critical information to the user while not
                    177:         unnecessarily disturbing their work flow and to do so in a consistent
                    178:         way across the system, and applications.
                    179: 
                    180:         Popups and Logs
                    181:         Popups and Logs
                    182:         Popups and Logs
                    183: 
                    184:         Whether to popup a local message, or log an event or some combination
                    185:         thereof must be determined on a case by case basis.  The purpose of
                    186:         this section is to provide some guidelines to make the decision
                    187:         process more straightforward.
                    188: 
                    189:         Generally, more things are logged than require a popup.  Thus,
                    190:         whenever a popup is appropriate, it is almost always appropriate to
                    191:         log an event to the event log as well.
                    192: 
                    193: 
                    194:         Microsoft Corporation Company Confidential
                    195: 
                    196: 
                    197: 
                    198:                       Windows NT Event Reporting Guidelines   3
                    199: 
                    200: 
                    201: 
                    202:         Popup Examples
                    203: 
                    204:              No diskette in drive, bad media, unformatted disk, etc.
                    205: 
                    206:              Disk hot fix error
                    207: 
                    208:              Messages delivered from Administrator (e.g. "I am going to
                    209:           shutdown the server \\KRUSTY")
                    210: 
                    211:         The last example shows that popups are not exclusively signs of dire
                    212:         emergency, but may be anything that the user will greatly benefit
                    213:         from being interrupted.  To popup messages use the usual Win32
                    214:         MessageBox API.
                    215: 
                    216:         Events should be logged whenever a something significant occurs such
                    217:         as an error or a change of security policy.  All events that are
                    218:         logged should be done so in a way that is aimed at solving the user's
                    219:         problem.  The purpose of logging errors is to inform the user that
                    220:         their system is having problems, and to guide them in how to rectify
                    221:         these problems.  Security events are logged to help an administrator
                    222:         track changes to the security system and to identify possible
                    223:         security breaches.  It is also appropriate to selectively log
                    224:         informational events, such as SQL Server started successfully.
                    225: 
                    226:         Remember, only messages which are of definite value to the end-user
                    227:         or technician should be logged -- ask yourself how the events you are
                    228:         planning to log will benefit someone in tracking down a problem.
                    229: 
                    230:         Event Logging
                    231:         Event Logging
                    232:         Event Logging
                    233: 
                    234:         Windows NT includes an event logging service which is always running.
                    235:         The event service exposes API for use by system software (subsystems,
                    236:         system security, device drivers, built-in services, etc.) and
                    237:         application software (e.g. third party services such as SQL Server,
                    238:         Comm Server, etc.).  When an event occurs which needs to be logged,
                    239:         the system or application software calls the event service API.
                    240: 
                    241:             See the Win32 API specification for information about using
                    242:             the Event Log API.
                    243: 
                    244:         There are three different built-in event logs: System, Security, and
                    245:         Application.  Only the Windows NT security system can log events to
                    246:         the Security log.  Only the Windows NT system and built-in or third-
                    247:         party device drivers should log to the System event log.  Services
                    248:         and other applications should log events to the Application log.
                    249: 
                    250:         Among the parameters that are supplied for logged events are:
                    251: 
                    252:           Source
                    253:           Source
                    254:           Source    Name of software which logs the event (this may be called
                    255:                     "Module" or "ModuleName" in some of the older
                    256:                     documentation).
                    257: 
                    258: 
                    259: 
                    260:         Microsoft Corporation Company Confidential
                    261: 
                    262: 
                    263: 
                    264:                       Windows NT Event Reporting Guidelines   4
                    265: 
                    266: 
                    267: 
                    268:           Event ID
                    269:           Event ID
                    270:           Event ID  Unique ID (per Source message file) which identifies the
                    271:                     event for lookup of description.
                    272: 
                    273:           Event
                    274:           Event
                    275:           Event     This is used for categorization of events (Viewer allows
                    276:           Type
                    277:           Type
                    278:           Type      filtering by Type):
                    279: 
                    280:                     Error, Warning, Information, Success Audit, Failure Audit
                    281: 
                    282:           Category
                    283:           Category
                    284:           Category  This is used for categorization of events.  Each Source
                    285:                     may define their own categories.  The Event Viewer UI
                    286:                     will allow filtering by Category within Source.
                    287: 
                    288:           Strings
                    289:           Strings
                    290:           Strings       insertion strings
                    291:                     The                   that are used to substitute
                    292:                     occurrence-specific values into fields within an event
                    293:                     description.  Example:  Str1$ = "C:\foo", Description =
                    294:                     "Could not open %1".  Str1$ is substituted for %1, to
                    295:                     create: "Could not open C:\foo" as the displayed
                    296:                     information in the Event Viewer.
                    297: 
                    298:                     Localized text description including place holders for
                    299:              Descri
                    300:              Descri
                    301:              Descri insertion strings (Text) for display in the Event Viewer.
                    302:           ption
                    303:           ption
                    304:           ption     Descriptions are contained within message files which are
                    305:                     per-source and looked up by Event Viewer at display time.
                    306: 
                    307:           Data
                    308:           Data
                    309:           Data      This is event-specific data which will be displayed as a
                    310:                     Hex/Text dump in the Event Viewer.
                    311: 
                    312:         Source
                    313:         Source
                    314:         Source
                    315: 
                    316:         Source is the name of the software which logs the event.  For many
                    317:         applications, Source may be simply the application name (e.g.
                    318:         Microsoft Excel 4.0) or may reflect a sub-component of a large
                    319:         application service such as SQL Server (e.g. SQL Kernel).  System
                    320:         software should reflect the subsystem component logging the event,
                    321:         such as "Windows NTFS", or the device driver name such as "3Com Elink
                    322:         II Driver", etc.  Events logged by Windows User, GDI, or Base should
                    323:         all simply be logged as "Windows".
                    324: 
                    325:         Event ID
                    326:         Event ID
                    327:         Event ID
                    328: 
                    329:         Event IDs are looked up within a message file to locate a description
                    330:         string for presentation to the end user.  In addition, they are
                    331:         useful for product support, as the user need only identify the Source
                    332:         and the Event ID for product support to know exactly which event has
                    333:         occurred.  Event IDs are therefore unique to a particular message
                    334:         file.
                    335: 
                    336:         Event Type
                    337:         Event Type
                    338:         Event Type
                    339: 
                    340:         There are five defined types for Events.  The representation of Type
                    341:         is as a bitmask for efficiency in filtering events in the Event
                    342:         Viewer.  Each event, however, should only have one type-bit set --
                    343: 
                    344: 
                    345:         Microsoft Corporation Company Confidential
                    346: 
                    347: 
                    348: 
                    349:                       Windows NT Event Reporting Guidelines   5
                    350: 
                    351: 
                    352: 
                    353:         that is, by convention, all events are of one type.  The five types
                    354:         are as follows:
                    355: 
                    356:                       informational events are used to note infrequent
                    357:              Informat
                    358:              Informat
                    359:              Informat significant events for successful operations.  For
                    360:           ional
                    361:           ional
                    362:           ional       example, when SQL Server successfully loads, it may be
                    363:                       appropriate to log a "SQL Server has started"
                    364:                       informational event.  Note that while this is
                    365:                       appropriate for major server services, it is generally
                    366:                       inappropriate for desktop applications (e.g. Excel) to
                    367:                       log an event each time it is started.  Informational
                    368:                       events should generally     be used as a trace
                    369:                                               not
                    370:                       facility.
                    371: 
                    372:           Warning
                    373:           Warning
                    374:           Warning     warning events are used to indicate problems that are
                    375:                       not significant, but which may foretell of future
                    376:                       errors or other problems.  Resource consumption
                    377:                       warnings are a good candidate event class for
                    378:                       warnings.  For example, a warning could be logged if
                    379:                       low on disk space.  "Errors" which are recovered
                    380:                       without loss of function or data can be classified as
                    381:                       Warnings.
                    382: 
                    383:           Error
                    384:           Error
                    385:           Error       error events are used to indicate significant problems
                    386:                       that have occurred and that the user should know
                    387:                       about.  Errors usually indicate a loss of function or
                    388:                       data.  For example, if a service cannot be loaded
                    389:                       during the boot process, an error event may be logged.
                    390: 
                    391:           Success
                    392:           Success
                    393:           Success     these are security events when an audited access was
                    394:           Audit
                    395:           Audit
                    396:           Audit       successful.  For example, a successful logon attempt
                    397:                       is a candidate for Success Audit events.
                    398: 
                    399:           Failure
                    400:           Failure
                    401:           Failure     these are security events when an audited access
                    402:           Audit
                    403:           Audit
                    404:           Audit       failed.  For example, a failed attempt to open a file
                    405:                       is a candidate for Failure Audit events.
                    406: 
                    407: 
                    408: 
                    409:         Category
                    410:         Category
                    411:         Category
                    412: 
                    413:         Categories are used to help organize the events for filtering in the
                    414:         Event Viewer.  Each Source may define its own numbered Categories and
                    415:         the text strings to which they are mapped.  In the Event Viewer, it
                    416:         is possible to filter based upon Source and within that, Category.
                    417:         By convention, when a Source does not define an event category for a
                    418:         given event, the Category field should be set to zero (0).
                    419: 
                    420:         Each Source must specify a category message file to be used to
                    421:         retrieve and display the Category names, based upon the Category
                    422:         value for a given event.  The category message file may be the same
                    423:         file as the event description message file.
                    424: 
                    425: 
                    426:         Microsoft Corporation Company Confidential
                    427: 
                    428: 
                    429: 
                    430:                       Windows NT Event Reporting Guidelines   6
                    431: 
                    432: 
                    433: 
                    434:         Strings
                    435:         Strings
                    436:         Strings
                    437: 
                    438:         Strings are optional language independent (i.e. non-localized)
                    439:         strings which are used to fill in values for place holders in
                    440:         description strings.  Since the Strings are not localized, it is
                    441:         critical that this field only be used to store language independent
                    442:         strings such as numeric values or string tokens (file names,
                    443:         usernames, etc.).  It is not acceptable to use several Strings to
                    444:         "paste" together a larger description or to use non-token strings.
                    445:         Think of the insertion string as being data, not text, and you should
                    446:         be fine.
                    447: 
                    448:         For example, one should not
                    449:                                 not
                    450:                                 not do the following: Str1$ = successfully,
                    451:         Description =  "User was %1 added to database." to form "User was
                    452:         successfully added to database" (the alternative being Str1$ =
                    453:         "not").  This is not acceptable for three reasons: 1) the strings
                    454:         "successfully" and "not" should be localized and 2) even if the
                    455:         insertion strings are obtained from language dependent message files,
                    456:         it would be done so at the time when the event is logged not viewed
                    457:         which may be the wrong language for the person using the Event
                    458:         Viewer, and 3) such substitutions of adverbs and adjectives will not
                    459:         work in many other languages.  The above example should use two
                    460:         separate events.
                    461: 
                    462:         An example of an appropriate use of an insertion string is:
                    463:         Description = "Access denied.  Attempted to open the file %1", Str1$
                    464:         = "c:\foobar.c".
                    465: 
                    466:         Description
                    467:         Description
                    468:         Description
                    469: 
                    470:         Each event has associated with it a description which is located in a
                    471:         message file registered by the Source.  The descriptions should be
                    472:         worded in a way that is meaningful to a user for them to understand
                    473:         what is wrong, and what actions to take.  The description should be
                    474:         geared toward a user solving their own problem and should not be
                    475:         written for a support person or a programmer.
                    476: 
                    477:         The description strings are indexed by Event ID, enabling the Event
                    478:         Viewer to display event-specific text for any event based upon the
                    479:         Event ID.  All descriptions should be localized and are language
                    480:         dependent.  Description strings may optionally contain place holders
                    481:         for insertion strings.  Each place holder is represented by a percent
                    482:         sign and an index number of the string to substitute.  For example,
                    483:         %1 specifies to replace the %1 with the first insertion string,
                    484:         whereas %5 substitutes the fifth insertion string, etc.  Descriptions
                    485:         should be understandable by the end user, and should be short and to
                    486:         the point, using very clear language and should avoid use of culture-
                    487:         specific phrases.
                    488: 
                    489:         If your event includes private data in the Data field, the end of the
                    490:         description should include some explanation as to what the Data field
                    491:         contains.  For example, the network software often notes: "(The SMB
                    492: 
                    493: 
                    494:         Microsoft Corporation Company Confidential
                    495: 
                    496: 
                    497: 
                    498:                       Windows NT Event Reporting Guidelines   7
                    499: 
                    500: 
                    501: 
                    502:         is the event data)."  As a convention, use parenthesis around these
                    503:         remarks as indicated in this example.
                    504: 
                    505:         Data
                    506:         Data
                    507:         Data
                    508: 
                    509:         Each event may have event-specific data associated with it.  The
                    510:         Event Viewer has no knowledge of any of the events, and will only
                    511:         display this extra data in a Hex/Text dump format.  Use event
                    512:         specific data sparingly, only include it if it is really useful to a
                    513:         support technician or a programmer.  Example uses of event-specific
                    514:         data is found in many network events where SMBs and NCBs are included
                    515:         as event-specific data.  In all cases, the last part of the
                    516:         description string should include a note about what information is
                    517:         available as event-specific data.  See example in the Description
                    518:         section (above).
                    519: 
                    520:         Third party applications may use the Data field to store information
                    521:         which the application may wish to process independently of the Event
                    522:         Viewer.  For example, a third party may write their own viewer
                    523:         specific to their events, or may write a program which scans the log
                    524:         files and makes reports including information from their event-
                    525:         specific data.
                    526: 
                    527: 
                    528: 
                    529: 
                    530: 
                    531: 
                    532: 
                    533: 
                    534: 
                    535: 
                    536: 
                    537: 
                    538: 
                    539: 
                    540: 
                    541: 
                    542: 
                    543: 
                    544: 
                    545: 
                    546: 
                    547: 
                    548: 
                    549: 
                    550: 
                    551: 
                    552: 
                    553: 
                    554: 
                    555: 
                    556: 
                    557: 
                    558:         Microsoft Corporation Company Confidential
                    559: 

unix.superglobalmegacorp.com

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