Annotation of mstools/info/evguidep.txt, revision 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.