Annotation of mstools/h/lmaudit.h, revision 1.1

1.1     ! root        1: /*++ BUILD Version: 0003    // Increment this if a change has global effects
        !             2: 
        !             3: Copyright (c) 1991-1993  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     lmaudit.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This module defines the API function prototypes and data structures
        !            12:     for the following groups of NT API functions:
        !            13:         NetAudit
        !            14: 
        !            15: Author:
        !            16: 
        !            17:     Dan Lafferty (danl)  29-Mar-1991
        !            18: 
        !            19: Environment:
        !            20: 
        !            21:     User Mode - Win32
        !            22: 
        !            23: Notes:
        !            24: 
        !            25:     You must include NETCONS.H before this file, since this file depends
        !            26:     on values defined in NETCONS.H.
        !            27: 
        !            28: Revision History:
        !            29: 
        !            30:     28-Mar-1991  Danl
        !            31:         Ported from LM2.0 and the LMNETAPI spec.
        !            32:     25-Apr-1991  DanHi
        !            33:        Added define for HLOG used by both audit and error logs, surrounded
        !            34:        by a protective ifdef.  Changed ae_ss_status to ae_sv_status to match
        !            35:        LanMan
        !            36:     12-Nov-1991 JohnRo
        !            37:         AUDIT_ENTRY structure needs changes to prevent alignment/padding bugs.
        !            38:         Added OPTIONAL keyword as applicable.   Work toward UNICODE.
        !            39:     26-Oct-1992 JohnRo
        !            40:         Correct typedef name for pointer to AE_SRVSTATUS.
        !            41:         Added AE_LOCKOUT structure and typedef.
        !            42: 
        !            43: --*/
        !            44: 
        !            45: #ifndef _LMAUDIT_
        !            46: #define _LMAUDIT_
        !            47: 
        !            48: #ifdef __cplusplus
        !            49: extern "C" {
        !            50: #endif
        !            51: 
        !            52: #ifndef _LMHLOGDEFINED_
        !            53: #define _LMHLOGDEFINED_
        !            54: 
        !            55: typedef struct _HLOG {
        !            56:      DWORD          time;
        !            57:      DWORD          last_flags;
        !            58:      DWORD          offset;
        !            59:      DWORD          rec_offset;
        !            60: } HLOG, *PHLOG, *LPHLOG;
        !            61: 
        !            62: #define LOGFLAGS_FORWARD       0
        !            63: #define LOGFLAGS_BACKWARD      0x1
        !            64: #define LOGFLAGS_SEEK          0x2
        !            65: 
        !            66: #endif
        !            67: 
        !            68: //
        !            69: // Function Prototypes - Audit
        !            70: //
        !            71: 
        !            72: NET_API_STATUS NET_API_FUNCTION
        !            73: NetAuditClear (
        !            74:     IN  LPTSTR  server OPTIONAL,
        !            75:     IN  LPTSTR  backupfile OPTIONAL,
        !            76:     IN  LPTSTR  service OPTIONAL  // WARNING: buggy support before LM 2.0C!!
        !            77:     );
        !            78: 
        !            79: NET_API_STATUS NET_API_FUNCTION
        !            80: NetAuditRead (
        !            81:     IN  LPTSTR  server OPTIONAL,
        !            82:     IN  LPTSTR  service OPTIONAL,  // WARNING: buggy support before LM 2.0C!!
        !            83:     IN  LPHLOG  auditloghandle,
        !            84:     IN  DWORD   offset,
        !            85:     IN  LPDWORD reserved1 OPTIONAL,
        !            86:     IN  DWORD   reserved2,
        !            87:     IN  DWORD   offsetflag,
        !            88:     OUT LPBYTE  *bufptr,
        !            89:     IN  DWORD   prefmaxlen,
        !            90:     OUT LPDWORD bytesread,
        !            91:     OUT LPDWORD totalavailable
        !            92:     );
        !            93: 
        !            94: NET_API_STATUS NET_API_FUNCTION
        !            95: NetAuditWrite (
        !            96:     IN  DWORD   type,
        !            97:     IN  LPBYTE  buf,
        !            98:     IN  DWORD   numbytes,
        !            99:     IN  LPTSTR  service OPTIONAL,
        !           100:     IN  LPBYTE  reserved OPTIONAL
        !           101:     );
        !           102: 
        !           103: 
        !           104: //
        !           105: // Data Structures - Audit
        !           106: //
        !           107: 
        !           108: typedef struct _AUDIT_ENTRY {
        !           109:      DWORD          ae_len;
        !           110:      DWORD          ae_reserved;
        !           111:      DWORD          ae_time;
        !           112:      DWORD          ae_type;
        !           113:      DWORD          ae_data_offset;  /* Offset from beginning
        !           114:                               address of audit_entry */
        !           115:      DWORD          ae_data_size;  // byte count of ae_data area (not incl pad).
        !           116: } AUDIT_ENTRY, *PAUDIT_ENTRY, *LPAUDIT_ENTRY;
        !           117: 
        !           118: // BUGBUG: Temporary to let users ifdef on this struct layout.
        !           119: #define REVISED_AUDIT_ENTRY_STRUCT
        !           120: 
        !           121: 
        !           122: typedef struct _AE_SRVSTATUS {
        !           123:      DWORD         ae_sv_status;
        !           124: } AE_SRVSTATUS, *PAE_SRVSTATUS, *LPAE_SRVSTATUS;
        !           125: 
        !           126: typedef struct _AE_SESSLOGON {
        !           127:      DWORD          ae_so_compname;
        !           128:      DWORD          ae_so_username;
        !           129:      DWORD          ae_so_privilege;
        !           130: } AE_SESSLOGON, *PAE_SESSLOGON, *LPAE_SESSLOGON;
        !           131: 
        !           132: typedef struct _AE_SESSLOGOFF {
        !           133:      DWORD          ae_sf_compname;
        !           134:      DWORD          ae_sf_username;
        !           135:      DWORD          ae_sf_reason;
        !           136: } AE_SESSLOGOFF, *PAE_SESSLOGOFF, *LPAE_SESSLOGOFF;
        !           137: 
        !           138: typedef struct _AE_SESSPWERR {
        !           139:      DWORD          ae_sp_compname;
        !           140:      DWORD          ae_sp_username;
        !           141: } AE_SESSPWERR, *PAE_SESSPWERR, *LPAE_SESSPWERR;
        !           142: 
        !           143: typedef struct _AE_CONNSTART {
        !           144:      DWORD          ae_ct_compname;
        !           145:      DWORD          ae_ct_username;
        !           146:      DWORD          ae_ct_netname;
        !           147:      DWORD          ae_ct_connid;
        !           148: } AE_CONNSTART, *PAE_CONNSTART, *LPAE_CONNSTART;
        !           149: 
        !           150: typedef struct _AE_CONNSTOP {
        !           151:      DWORD          ae_cp_compname;
        !           152:      DWORD          ae_cp_username;
        !           153:      DWORD          ae_cp_netname;
        !           154:      DWORD          ae_cp_connid;
        !           155:      DWORD          ae_cp_reason;
        !           156: } AE_CONNSTOP, *PAE_CONNSTOP, *LPAE_CONNSTOP;
        !           157: 
        !           158: typedef struct _AE_CONNREJ {
        !           159:      DWORD          ae_cr_compname;
        !           160:      DWORD          ae_cr_username;
        !           161:      DWORD          ae_cr_netname;
        !           162:      DWORD          ae_cr_reason;
        !           163: } AE_CONNREJ, *PAE_CONNREJ, *LPAE_CONNREJ;
        !           164: 
        !           165: typedef struct _AE_RESACCESS {
        !           166:      DWORD          ae_ra_compname;
        !           167:      DWORD          ae_ra_username;
        !           168:      DWORD          ae_ra_resname;
        !           169:      DWORD          ae_ra_operation;
        !           170:      DWORD          ae_ra_returncode;
        !           171:      DWORD          ae_ra_restype;
        !           172:      DWORD          ae_ra_fileid;
        !           173: } AE_RESACCESS, *PAE_RESACCESS, *LPAE_RESACCESS;
        !           174: 
        !           175: typedef struct _AE_RESACCESSREJ {
        !           176:      DWORD          ae_rr_compname;
        !           177:      DWORD          ae_rr_username;
        !           178:      DWORD          ae_rr_resname;
        !           179:      DWORD          ae_rr_operation;
        !           180: } AE_RESACCESSREJ, *PAE_RESACCESSREJ, *LPAE_RESACCESSREJ;
        !           181: 
        !           182: typedef struct _AE_CLOSEFILE {
        !           183:      DWORD          ae_cf_compname;
        !           184:      DWORD          ae_cf_username;
        !           185:      DWORD          ae_cf_resname;
        !           186:      DWORD          ae_cf_fileid;
        !           187:      DWORD          ae_cf_duration;
        !           188:      DWORD          ae_cf_reason;
        !           189: } AE_CLOSEFILE, *PAE_CLOSEFILE, *LPAE_CLOSEFILE;
        !           190: 
        !           191: typedef struct _AE_SERVICESTAT {
        !           192:      DWORD          ae_ss_compname;
        !           193:      DWORD          ae_ss_username;
        !           194:      DWORD          ae_ss_svcname;
        !           195:      DWORD          ae_ss_status;
        !           196:      DWORD          ae_ss_code;
        !           197:      DWORD          ae_ss_text;
        !           198:      DWORD          ae_ss_returnval;
        !           199: } AE_SERVICESTAT, *PAE_SERVICESTAT, *LPAE_SERVICESTAT;
        !           200: 
        !           201: typedef struct _AE_ACLMOD {
        !           202:      DWORD          ae_am_compname;
        !           203:      DWORD          ae_am_username;
        !           204:      DWORD          ae_am_resname;
        !           205:      DWORD          ae_am_action;
        !           206:      DWORD          ae_am_datalen;
        !           207: } AE_ACLMOD, *PAE_ACLMOD, *LPAE_ACLMOD;
        !           208: 
        !           209: typedef struct _AE_UASMOD {
        !           210:      DWORD          ae_um_compname;
        !           211:      DWORD          ae_um_username;
        !           212:      DWORD          ae_um_resname;
        !           213:      DWORD          ae_um_rectype;
        !           214:      DWORD          ae_um_action;
        !           215:      DWORD          ae_um_datalen;
        !           216: } AE_UASMOD, *PAE_UASMOD, *LPAE_UASMOD;
        !           217: 
        !           218: typedef struct _AE_NETLOGON {
        !           219:      DWORD          ae_no_compname;
        !           220:      DWORD          ae_no_username;
        !           221:      DWORD          ae_no_privilege;
        !           222:      DWORD          ae_no_authflags;
        !           223: } AE_NETLOGON, *PAE_NETLOGON, *LPAE_NETLOGON;
        !           224: 
        !           225: typedef struct _AE_NETLOGOFF {
        !           226:      DWORD          ae_nf_compname;
        !           227:      DWORD          ae_nf_username;
        !           228:      DWORD          ae_nf_reserved1;
        !           229:      DWORD          ae_nf_reserved2;
        !           230: } AE_NETLOGOFF, *PAE_NETLOGOFF, *LPAE_NETLOGOFF;
        !           231: 
        !           232: typedef struct _AE_ACCLIM {
        !           233:      DWORD          ae_al_compname;
        !           234:      DWORD          ae_al_username;
        !           235:      DWORD          ae_al_resname;
        !           236:      DWORD          ae_al_limit;
        !           237: } AE_ACCLIM, *PAE_ACCLIM, *LPAE_ACCLIM;
        !           238: 
        !           239: #define ACTION_LOCKOUT          00
        !           240: #define ACTION_ADMINUNLOCK      01
        !           241: 
        !           242: typedef struct _AE_LOCKOUT {
        !           243:     DWORD           ae_lk_compname;     // Ptr to computername of client.
        !           244:     DWORD           ae_lk_username;     // Ptr to username of client (NULL
        !           245:                                         //  if same as computername).
        !           246:     DWORD           ae_lk_action;       // Action taken on account:
        !           247:                                         // 0 means locked out, 1 means not.
        !           248:     DWORD           ae_lk_bad_pw_count; // Bad password count at the time
        !           249:                                         // of lockout.
        !           250: } AE_LOCKOUT, *PAE_LOCKOUT, *LPAE_LOCKOUT;
        !           251: 
        !           252: typedef struct _AE_GENERIC {
        !           253:      DWORD          ae_ge_msgfile;
        !           254:      DWORD          ae_ge_msgnum;
        !           255:      DWORD          ae_ge_params;
        !           256:      DWORD          ae_ge_param1;
        !           257:      DWORD          ae_ge_param2;
        !           258:      DWORD          ae_ge_param3;
        !           259:      DWORD          ae_ge_param4;
        !           260:      DWORD          ae_ge_param5;
        !           261:      DWORD          ae_ge_param6;
        !           262:      DWORD          ae_ge_param7;
        !           263:      DWORD          ae_ge_param8;
        !           264:      DWORD          ae_ge_param9;
        !           265: } AE_GENERIC, *PAE_GENERIC, *LPAE_GENERIC;
        !           266: 
        !           267: //
        !           268: // Special Values and Constants - Audit
        !           269: //
        !           270: 
        !           271: //
        !           272: //     Audit entry types (field ae_type in audit_entry).
        !           273: //
        !           274: 
        !           275: #define AE_SRVSTATUS   0
        !           276: #define AE_SESSLOGON   1
        !           277: #define AE_SESSLOGOFF  2
        !           278: #define AE_SESSPWERR   3
        !           279: #define AE_CONNSTART   4
        !           280: #define AE_CONNSTOP    5
        !           281: #define AE_CONNREJ     6
        !           282: #define AE_RESACCESS   7
        !           283: #define AE_RESACCESSREJ        8
        !           284: #define AE_CLOSEFILE   9
        !           285: #define AE_SERVICESTAT 11
        !           286: #define AE_ACLMOD      12
        !           287: #define AE_UASMOD      13
        !           288: #define AE_NETLOGON    14
        !           289: #define AE_NETLOGOFF   15
        !           290: #define AE_NETLOGDENIED 16
        !           291: #define AE_ACCLIMITEXCD 17
        !           292: #define AE_RESACCESS2  18
        !           293: #define AE_ACLMODFAIL  19
        !           294: #define AE_LOCKOUT      20
        !           295: #define AE_GENERIC_TYPE 21
        !           296: //
        !           297: //     Values for ae_ss_status field of ae_srvstatus.
        !           298: //
        !           299: 
        !           300: #define AE_SRVSTART    0
        !           301: #define AE_SRVPAUSED   1
        !           302: #define AE_SRVCONT     2
        !           303: #define AE_SRVSTOP     3
        !           304: 
        !           305: //
        !           306: //     Values for ae_so_privilege field of ae_sesslogon.
        !           307: //
        !           308: 
        !           309: #define AE_GUEST       0               
        !           310: #define AE_USER                1
        !           311: #define AE_ADMIN       2
        !           312: 
        !           313: //
        !           314: //     Values for various ae_XX_reason fields.
        !           315: //
        !           316: 
        !           317: #define AE_NORMAL      0               
        !           318: #define AE_USERLIMIT   0
        !           319: #define AE_GENERAL     0
        !           320: #define AE_ERROR       1
        !           321: #define AE_SESSDIS     1
        !           322: #define AE_BADPW       1
        !           323: #define AE_AUTODIS     2
        !           324: #define AE_UNSHARE     2
        !           325: #define AE_ADMINPRIVREQD 2
        !           326: #define AE_ADMINDIS    3
        !           327: #define AE_NOACCESSPERM 3
        !           328: #define AE_ACCRESTRICT 4
        !           329: 
        !           330: #define        AE_NORMAL_CLOSE 0
        !           331: #define        AE_SES_CLOSE    1
        !           332: #define        AE_ADMIN_CLOSE  2
        !           333: 
        !           334: //
        !           335: // Values for xx_subreason fields.
        !           336: //
        !           337: 
        !           338: #define AE_LIM_UNKNOWN     0
        !           339: #define AE_LIM_LOGONHOURS   1
        !           340: #define AE_LIM_EXPIRED     2
        !           341: #define AE_LIM_INVAL_WKSTA  3
        !           342: #define AE_LIM_DISABLED     4
        !           343: #define AE_LIM_DELETED     5
        !           344: 
        !           345: //
        !           346: // Values for xx_action fields
        !           347: //
        !           348: 
        !           349: #define AE_MOD         0
        !           350: #define AE_DELETE      1
        !           351: #define AE_ADD         2
        !           352: 
        !           353: //
        !           354: // Types of UAS record for um_rectype field
        !           355: //
        !           356: 
        !           357: #define AE_UAS_USER        0
        !           358: #define AE_UAS_GROUP       1
        !           359: #define AE_UAS_MODALS      2
        !           360: 
        !           361: //
        !           362: // Bitmasks for auditing events
        !           363: //
        !           364: // The parentheses around the hex constants broke h_to_inc
        !           365: // and have been purged from the face of the earth.
        !           366: //
        !           367: 
        !           368: #define SVAUD_SERVICE           0x1
        !           369: #define SVAUD_GOODSESSLOGON     0x6
        !           370: #define SVAUD_BADSESSLOGON      0x18
        !           371: #define SVAUD_SESSLOGON         (SVAUD_GOODSESSLOGON | SVAUD_BADSESSLOGON)
        !           372: #define SVAUD_GOODNETLOGON      0x60
        !           373: #define SVAUD_BADNETLOGON       0x180
        !           374: #define SVAUD_NETLOGON          (SVAUD_GOODNETLOGON | SVAUD_BADNETLOGON)
        !           375: #define SVAUD_LOGON             (SVAUD_NETLOGON | SVAUD_SESSLOGON)
        !           376: #define SVAUD_GOODUSE           0x600
        !           377: #define SVAUD_BADUSE            0x1800
        !           378: #define SVAUD_USE               (SVAUD_GOODUSE | SVAUD_BADUSE)
        !           379: #define SVAUD_USERLIST          0x2000
        !           380: #define SVAUD_PERMISSIONS       0x4000
        !           381: #define SVAUD_RESOURCE          0x8000
        !           382: #define SVAUD_LOGONLIM         0x00010000
        !           383: 
        !           384: //
        !           385: // Resource access audit bitmasks.
        !           386: //
        !           387: 
        !           388: #define AA_AUDIT_ALL       0x0001
        !           389: #define AA_A_OWNER         0x0004
        !           390: #define AA_CLOSE           0x0008
        !           391: #define AA_S_OPEN          0x0010
        !           392: #define AA_S_WRITE         0x0020
        !           393: #define AA_S_CREATE        0x0020
        !           394: #define AA_S_DELETE        0x0040
        !           395: #define AA_S_ACL           0x0080
        !           396: #define AA_S_ALL           ( AA_S_OPEN | AA_S_WRITE | AA_S_DELETE | AA_S_ACL)
        !           397: #define AA_F_OPEN          0x0100
        !           398: #define AA_F_WRITE         0x0200
        !           399: #define AA_F_CREATE        0x0200
        !           400: #define AA_F_DELETE        0x0400
        !           401: #define AA_F_ACL           0x0800
        !           402: #define AA_F_ALL           ( AA_F_OPEN | AA_F_WRITE | AA_F_DELETE | AA_F_ACL)
        !           403: 
        !           404: // Pinball-specific
        !           405: #define AA_A_OPEN          0x1000
        !           406: #define AA_A_WRITE         0x2000
        !           407: #define AA_A_CREATE        0x2000
        !           408: #define AA_A_DELETE        0x4000
        !           409: #define AA_A_ACL           0x8000
        !           410: #define AA_A_ALL           ( AA_F_OPEN | AA_F_WRITE | AA_F_DELETE | AA_F_ACL)
        !           411: 
        !           412: 
        !           413: #ifdef __cplusplus
        !           414: }
        !           415: #endif
        !           416: 
        !           417: #endif  // _LMAUDIT_

unix.superglobalmegacorp.com

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