Repository URL to install this package:
Version:
3.0.0 ▾
|
{******************************************************************************}
{ }
{ Lan Manager Audit API interface Unit for Object Pascal }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ The original file is: lmaudit.h, released November 2001. The original Pascal }
{ code is: LmAudit.pas, released Februari 2002. The initial developer of the }
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
{ }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
{ Marcel van Brakel. All Rights Reserved. }
{ }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project JEDI }
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
// $Id: JwaLmAudit.pas,v 1.13 2007/09/14 06:48:46 marquardt Exp $
{$IFNDEF JWA_OMIT_SECTIONS_LM}
unit JwaLmAudit;
{$WEAKPACKAGEUNIT}
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$HPPEMIT ''}
{$HPPEMIT '#include "lmaudit.h"'}
{$HPPEMIT ''}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
{$I jediapilib.inc}
interface
uses
JwaLmCons, JwaWinType;
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$IFNDEF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_INCLUDEMODE}
type
_HLOG = record
time: DWORD;
last_flags: DWORD;
offset: DWORD;
rec_offset: DWORD;
end;
{$EXTERNALSYM _HLOG}
HLOG = _HLOG;
{$EXTERNALSYM HLOG}
LPHLOG = ^HLOG;
{$EXTERNALSYM LPHLOG}
PHLOG = ^HLOG;
{$EXTERNALSYM PHLOG}
const
LOGFLAGS_FORWARD = 0;
{$EXTERNALSYM LOGFLAGS_FORWARD}
LOGFLAGS_BACKWARD = $1;
{$EXTERNALSYM LOGFLAGS_BACKWARD}
LOGFLAGS_SEEK = $2;
{$EXTERNALSYM LOGFLAGS_SEEK}
{$ENDIF JWA_INCLUDEMODE}
//
// Function Prototypes - Audit
//
function NetAuditClear(server, backupfile, service: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAuditClear}
function NetAuditRead(server, service: LPCWSTR; auditloghandle: LPHLOG; offset: DWORD; reserved1: LPDWORD; reserved2, offsetflag: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; bytesread, totalavailable: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAuditRead}
function NetAuditWrite(type_: DWORD; buf: LPBYTE; numbytes: DWORD; service: LPCWSTR; reserved: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAuditWrite}
//
// Data Structures - Audit
//
type
_AUDIT_ENTRY = record
ae_len: DWORD;
ae_reserved: DWORD;
ae_time: DWORD;
ae_type: DWORD;
ae_data_offset: DWORD; // Offset from beginning address of audit_entry
ae_data_size: DWORD; // byte count of ae_data area (not incl pad).
end;
{$EXTERNALSYM _AUDIT_ENTRY}
AUDIT_ENTRY = _AUDIT_ENTRY;
{$EXTERNALSYM AUDIT_ENTRY}
LPAUDIT_ENTRY = ^AUDIT_ENTRY;
{$EXTERNALSYM LPAUDIT_ENTRY}
PAUDIT_ENTRY = ^AUDIT_ENTRY;
{$EXTERNALSYM PAUDIT_ENTRY}
TAuditEntry = AUDIT_ENTRY;
PAuditEntry = PAUDIT_ENTRY;
{$DEFINE REVISED_AUDIT_ENTRY_STRUCT}
_AE_SRVSTATUS = record
ae_sv_status: DWORD;
end;
{$EXTERNALSYM _AE_SRVSTATUS}
//AE_SRVSTATUS = _AE_SRVSTATUS;
//{$EXTERNALSYM AE_SRVSTATUS}
LPAE_SRVSTATUS = ^_AE_SRVSTATUS;
{$EXTERNALSYM LPAE_SRVSTATUS}
PAE_SRVSTATUS = ^_AE_SRVSTATUS;
{$EXTERNALSYM PAE_SRVSTATUS}
TAeSrvStatus = _AE_SRVSTATUS;
PAeSrvStatus = PAE_SRVSTATUS;
_AE_SESSLOGON = record
ae_so_compname: DWORD;
ae_so_username: DWORD;
ae_so_privilege: DWORD;
end;
{$EXTERNALSYM _AE_SESSLOGON}
//AE_SESSLOGON = _AE_SESSLOGON;
//{$EXTERNALSYM AE_SESSLOGON}
LPAE_SESSLOGON = ^_AE_SESSLOGON;
{$EXTERNALSYM LPAE_SESSLOGON}
PAE_SESSLOGON = ^_AE_SESSLOGON;
{$EXTERNALSYM PAE_SESSLOGON}
TAeSessLogon = _AE_SESSLOGON;
PAeSessLogon = PAE_SESSLOGON;
_AE_SESSLOGOFF = record
ae_sf_compname: DWORD;
ae_sf_username: DWORD;
ae_sf_reason: DWORD;
end;
{$EXTERNALSYM _AE_SESSLOGOFF}
//AE_SESSLOGOFF = _AE_SESSLOGOFF;
//{$EXTERNALSYM AE_SESSLOGOFF}
LPAE_SESSLOGOFF = ^_AE_SESSLOGOFF;
{$EXTERNALSYM LPAE_SESSLOGOFF}
PAE_SESSLOGOFF = ^_AE_SESSLOGOFF;
{$EXTERNALSYM PAE_SESSLOGOFF}
TAeSessLogoff = _AE_SESSLOGOFF;
PAeSessLogoff = PAE_SESSLOGOFF;
_AE_SESSPWERR = record
ae_sp_compname: DWORD;
ae_sp_username: DWORD;
end;
{$EXTERNALSYM _AE_SESSPWERR}
//AE_SESSPWERR = _AE_SESSPWERR;
//{$EXTERNALSYM AE_SESSPWERR}
LPAE_SESSPWERR = ^_AE_SESSPWERR;
{$EXTERNALSYM LPAE_SESSPWERR}
PAE_SESSPWERR = ^_AE_SESSPWERR;
{$EXTERNALSYM PAE_SESSPWERR}
TAeSessPwerr = _AE_SESSPWERR;
PAeSessPwerr = PAE_SESSPWERR;
_AE_CONNSTART = record
ae_ct_compname: DWORD;
ae_ct_username: DWORD;
ae_ct_netname: DWORD;
ae_ct_connid: DWORD;
end;
{$EXTERNALSYM _AE_CONNSTART}
//AE_CONNSTART = _AE_CONNSTART;
//{$EXTERNALSYM AE_CONNSTART}
LPAE_CONNSTART = ^_AE_CONNSTART;
{$EXTERNALSYM LPAE_CONNSTART}
PAE_CONNSTART = ^_AE_CONNSTART;
{$EXTERNALSYM PAE_CONNSTART}
TAeConnStart = _AE_CONNSTART;
PAeConnStart = PAE_CONNSTART;
_AE_CONNSTOP = record
ae_cp_compname: DWORD;
ae_cp_username: DWORD;
ae_cp_netname: DWORD;
ae_cp_connid: DWORD;
ae_cp_reason: DWORD;
end;
{$EXTERNALSYM _AE_CONNSTOP}
//AE_CONNSTOP = _AE_CONNSTOP;
//{$EXTERNALSYM AE_CONNSTOP}
LPAE_CONNSTOP = ^_AE_CONNSTOP;
{$EXTERNALSYM LPAE_CONNSTOP}
PAE_CONNSTOP = ^_AE_CONNSTOP;
{$EXTERNALSYM PAE_CONNSTOP}
TAeConnStop = _AE_CONNSTOP;
PAeConnStop = PAE_CONNSTOP;
_AE_CONNREJ = record
ae_cr_compname: DWORD;
ae_cr_username: DWORD;
ae_cr_netname: DWORD;
ae_cr_reason: DWORD;
end;
{$EXTERNALSYM _AE_CONNREJ}
//AE_CONNREJ = _AE_CONNREJ;
//{$EXTERNALSYM AE_CONNREJ}
LPAE_CONNREJ = ^_AE_CONNREJ;
{$EXTERNALSYM LPAE_CONNREJ}
PAE_CONNREJ = ^_AE_CONNREJ;
{$EXTERNALSYM PAE_CONNREJ}
TAeConnRej = _AE_CONNREJ;
PAeConnRej = PAE_CONNREJ;
_AE_RESACCESS = record
ae_ra_compname: DWORD;
ae_ra_username: DWORD;
ae_ra_resname: DWORD;
ae_ra_operation: DWORD;
ae_ra_returncode: DWORD;
ae_ra_restype: DWORD;
ae_ra_fileid: DWORD;
end;
{$EXTERNALSYM _AE_RESACCESS}
//AE_RESACCESS = _AE_RESACCESS;
//{$EXTERNALSYM AE_RESACCESS}
LPAE_RESACCESS = ^_AE_RESACCESS;
{$EXTERNALSYM LPAE_RESACCESS}
PAE_RESACCESS = ^_AE_RESACCESS;
{$EXTERNALSYM PAE_RESACCESS}
TAeResAccess = _AE_RESACCESS;
PAeResAccess = PAE_RESACCESS;
_AE_RESACCESSREJ = record
ae_rr_compname: DWORD;
ae_rr_username: DWORD;
ae_rr_resname: DWORD;
ae_rr_operation: DWORD;
end;
{$EXTERNALSYM _AE_RESACCESSREJ}
//AE_RESACCESSREJ = _AE_RESACCESSREJ;
//{$EXTERNALSYM AE_RESACCESSREJ}
LPAE_RESACCESSREJ = ^_AE_RESACCESSREJ;
{$EXTERNALSYM LPAE_RESACCESSREJ}
PAE_RESACCESSREJ = ^_AE_RESACCESSREJ;
{$EXTERNALSYM PAE_RESACCESSREJ}
TAeResAccessRej = _AE_RESACCESSREJ;
PAeResAccessRej = PAE_RESACCESSREJ;
_AE_CLOSEFILE = record
ae_cf_compname: DWORD;
ae_cf_username: DWORD;
ae_cf_resname: DWORD;
ae_cf_fileid: DWORD;
ae_cf_duration: DWORD;
ae_cf_reason: DWORD;
end;
{$EXTERNALSYM _AE_CLOSEFILE}
//AE_CLOSEFILE = _AE_CLOSEFILE;
//{$EXTERNALSYM AE_CLOSEFILE}
LPAE_CLOSEFILE = ^_AE_CLOSEFILE;
{$EXTERNALSYM LPAE_CLOSEFILE}
PAE_CLOSEFILE = ^_AE_CLOSEFILE;
{$EXTERNALSYM PAE_CLOSEFILE}
TAeCloseFile = _AE_CLOSEFILE;
PAeCloseFile = PAE_CLOSEFILE;
_AE_SERVICESTAT = record
ae_ss_compname: DWORD;
ae_ss_username: DWORD;
ae_ss_svcname: DWORD;
ae_ss_status: DWORD;
ae_ss_code: DWORD;
ae_ss_text: DWORD;
ae_ss_returnval: DWORD;
end;
{$EXTERNALSYM _AE_SERVICESTAT}
//AE_SERVICESTAT = _AE_SERVICESTAT;
//{$EXTERNALSYM AE_SERVICESTAT}
LPAE_SERVICESTAT = ^_AE_SERVICESTAT;
{$EXTERNALSYM LPAE_SERVICESTAT}
PAE_SERVICESTAT = ^_AE_SERVICESTAT;
{$EXTERNALSYM PAE_SERVICESTAT}
TAeServiceStat = _AE_SERVICESTAT;
PAeServiceStat = PAE_SERVICESTAT;
_AE_ACLMOD = record
ae_am_compname: DWORD;
ae_am_username: DWORD;
ae_am_resname: DWORD;
ae_am_action: DWORD;
ae_am_datalen: DWORD;
end;
{$EXTERNALSYM _AE_ACLMOD}
//AE_ACLMOD = _AE_ACLMOD;
//{$EXTERNALSYM AE_ACLMOD}
LPAE_ACLMOD = ^_AE_ACLMOD;
{$EXTERNALSYM LPAE_ACLMOD}
PAE_ACLMOD = ^_AE_ACLMOD;
{$EXTERNALSYM PAE_ACLMOD}
TAeAclMod = _AE_ACLMOD;
PAeAclMod = PAE_ACLMOD;
_AE_UASMOD = record
ae_um_compname: DWORD;
ae_um_username: DWORD;
ae_um_resname: DWORD;
ae_um_rectype: DWORD;
ae_um_action: DWORD;
ae_um_datalen: DWORD;
end;
{$EXTERNALSYM _AE_UASMOD}
//AE_UASMOD = _AE_UASMOD;
//{$EXTERNALSYM AE_UASMOD}
LPAE_UASMOD = ^_AE_UASMOD;
{$EXTERNALSYM LPAE_UASMOD}
PAE_UASMOD = ^_AE_UASMOD;
{$EXTERNALSYM PAE_UASMOD}
TAeUasMod = _AE_UASMOD;
PAeUasMod = PAE_UASMOD;
_AE_NETLOGON = record
ae_no_compname: DWORD;
ae_no_username: DWORD;
ae_no_privilege: DWORD;
ae_no_authflags: DWORD;
end;
{$EXTERNALSYM _AE_NETLOGON}
//AE_NETLOGON = _AE_NETLOGON;
//{$EXTERNALSYM AE_NETLOGON}
LPAE_NETLOGON = ^_AE_NETLOGON;
{$EXTERNALSYM LPAE_NETLOGON}
PAE_NETLOGON = ^_AE_NETLOGON;
{$EXTERNALSYM PAE_NETLOGON}
TAeNetLogon = _AE_NETLOGON;
PAeNetLogon = PAE_NETLOGON;
_AE_NETLOGOFF = record
ae_nf_compname: DWORD;
ae_nf_username: DWORD;
ae_nf_reserved1: DWORD;
ae_nf_reserved2: DWORD;
end;
{$EXTERNALSYM _AE_NETLOGOFF}
//AE_NETLOGOFF = _AE_NETLOGOFF;
//{$EXTERNALSYM AE_NETLOGOFF}
LPAE_NETLOGOFF = ^_AE_NETLOGOFF;
{$EXTERNALSYM LPAE_NETLOGOFF}
PAE_NETLOGOFF = ^_AE_NETLOGOFF;
{$EXTERNALSYM PAE_NETLOGOFF}
TAeNetLogoff = _AE_NETLOGOFF;
PAeNetLogoff = PAE_NETLOGOFF;
_AE_ACCLIM = record
ae_al_compname: DWORD;
ae_al_username: DWORD;
ae_al_resname: DWORD;
ae_al_limit: DWORD;
end;
{$EXTERNALSYM _AE_ACCLIM}
//AE_ACCLIM = _AE_ACCLIM;
//{$EXTERNALSYM AE_ACCLIM}
LPAE_ACCLIM = ^_AE_ACCLIM;
{$EXTERNALSYM LPAE_ACCLIM}
PAE_ACCLIM = ^_AE_ACCLIM;
{$EXTERNALSYM PAE_ACCLIM}
TAeAccLim = _AE_ACCLIM;
PAeAccLim = PAE_ACCLIM;
const
ACTION_LOCKOUT = 0;
{$EXTERNALSYM ACTION_LOCKOUT}
ACTION_ADMINUNLOCK = 1;
{$EXTERNALSYM ACTION_ADMINUNLOCK}
type
_AE_LOCKOUT = record
ae_lk_compname: DWORD; // Ptr to computername of client.
ae_lk_username: DWORD; // Ptr to username of client (NULL
// if same as computername).
ae_lk_action: DWORD; // Action taken on account:
// 0 means locked out, 1 means not.
ae_lk_bad_pw_count: DWORD; // Bad password count at the time
// of lockout.
end;
{$EXTERNALSYM _AE_LOCKOUT}
//AE_LOCKOUT = _AE_LOCKOUT;
//{$EXTERNALSYM AE_LOCKOUT}
LPAE_LOCKOUT = ^_AE_LOCKOUT;
{$EXTERNALSYM LPAE_LOCKOUT}
PAE_LOCKOUT = ^_AE_LOCKOUT;
{$EXTERNALSYM PAE_LOCKOUT}
TAeLockout = _AE_LOCKOUT;
PAeLockout = PAE_LOCKOUT;
_AE_GENERIC = record
ae_ge_msgfile: DWORD;
ae_ge_msgnum: DWORD;
ae_ge_params: DWORD;
ae_ge_param1: DWORD;
ae_ge_param2: DWORD;
ae_ge_param3: DWORD;
ae_ge_param4: DWORD;
ae_ge_param5: DWORD;
ae_ge_param6: DWORD;
ae_ge_param7: DWORD;
ae_ge_param8: DWORD;
ae_ge_param9: DWORD;
end;
{$EXTERNALSYM _AE_GENERIC}
//AE_GENERIC = _AE_GENERIC;
//{$EXTERNALSYM AE_GENERIC}
LPAE_GENERIC = ^_AE_GENERIC;
{$EXTERNALSYM LPAE_GENERIC}
PAE_GENERIC = ^_AE_GENERIC;
{$EXTERNALSYM PAE_GENERIC}
TAeGeneric = _AE_GENERIC;
PAeGeneric = PAE_GENERIC;
//
// Special Values and Constants - Audit
//
//
// Audit entry types (field ae_type in audit_entry).
//
const
AE_SRVSTATUS = 0;
{$EXTERNALSYM AE_SRVSTATUS}
AE_SESSLOGON = 1;
{$EXTERNALSYM AE_SESSLOGON}
AE_SESSLOGOFF = 2;
{$EXTERNALSYM AE_SESSLOGOFF}
AE_SESSPWERR = 3;
{$EXTERNALSYM AE_SESSPWERR}
AE_CONNSTART = 4;
{$EXTERNALSYM AE_CONNSTART}
AE_CONNSTOP = 5;
{$EXTERNALSYM AE_CONNSTOP}
AE_CONNREJ = 6;
{$EXTERNALSYM AE_CONNREJ}
AE_RESACCESS = 7;
{$EXTERNALSYM AE_RESACCESS}
AE_RESACCESSREJ = 8;
{$EXTERNALSYM AE_RESACCESSREJ}
AE_CLOSEFILE = 9;
{$EXTERNALSYM AE_CLOSEFILE}
AE_SERVICESTAT = 11;
{$EXTERNALSYM AE_SERVICESTAT}
AE_ACLMOD = 12;
{$EXTERNALSYM AE_ACLMOD}
AE_UASMOD = 13;
{$EXTERNALSYM AE_UASMOD}
AE_NETLOGON = 14;
{$EXTERNALSYM AE_NETLOGON}
AE_NETLOGOFF = 15;
{$EXTERNALSYM AE_NETLOGOFF}
AE_NETLOGDENIED = 16;
{$EXTERNALSYM AE_NETLOGDENIED}
AE_ACCLIMITEXCD = 17;
{$EXTERNALSYM AE_ACCLIMITEXCD}
AE_RESACCESS2 = 18;
{$EXTERNALSYM AE_RESACCESS2}
AE_ACLMODFAIL = 19;
{$EXTERNALSYM AE_ACLMODFAIL}
AE_LOCKOUT = 20;
{$EXTERNALSYM AE_LOCKOUT}
AE_GENERIC_TYPE = 21;
{$EXTERNALSYM AE_GENERIC_TYPE}
//
// Values for ae_ss_status field of ae_srvstatus.
//
AE_SRVSTART = 0;
{$EXTERNALSYM AE_SRVSTART}
AE_SRVPAUSED = 1;
{$EXTERNALSYM AE_SRVPAUSED}
AE_SRVCONT = 2;
{$EXTERNALSYM AE_SRVCONT}
AE_SRVSTOP = 3;
{$EXTERNALSYM AE_SRVSTOP}
//
// Values for ae_so_privilege field of ae_sesslogon.
//
AE_GUEST = 0;
{$EXTERNALSYM AE_GUEST}
AE_USER = 1;
{$EXTERNALSYM AE_USER}
AE_ADMIN = 2;
{$EXTERNALSYM AE_ADMIN}
//
// Values for various ae_XX_reason fields.
//
AE_NORMAL = 0;
{$EXTERNALSYM AE_NORMAL}
AE_USERLIMIT = 0;
{$EXTERNALSYM AE_USERLIMIT}
AE_GENERAL = 0;
{$EXTERNALSYM AE_GENERAL}
AE_ERROR = 1;
{$EXTERNALSYM AE_ERROR}
AE_SESSDIS = 1;
{$EXTERNALSYM AE_SESSDIS}
AE_BADPW = 1;
{$EXTERNALSYM AE_BADPW}
AE_AUTODIS = 2;
{$EXTERNALSYM AE_AUTODIS}
AE_UNSHARE = 2;
{$EXTERNALSYM AE_UNSHARE}
AE_ADMINPRIVREQD = 2;
{$EXTERNALSYM AE_ADMINPRIVREQD}
AE_ADMINDIS = 3;
{$EXTERNALSYM AE_ADMINDIS}
AE_NOACCESSPERM = 3;
{$EXTERNALSYM AE_NOACCESSPERM}
AE_ACCRESTRICT = 4;
{$EXTERNALSYM AE_ACCRESTRICT}
AE_NORMAL_CLOSE = 0;
{$EXTERNALSYM AE_NORMAL_CLOSE}
AE_SES_CLOSE = 1;
{$EXTERNALSYM AE_SES_CLOSE}
AE_ADMIN_CLOSE = 2;
{$EXTERNALSYM AE_ADMIN_CLOSE}
//
// Values for xx_subreason fields.
//
AE_LIM_UNKNOWN = 0;
{$EXTERNALSYM AE_LIM_UNKNOWN}
AE_LIM_LOGONHOURS = 1;
{$EXTERNALSYM AE_LIM_LOGONHOURS}
AE_LIM_EXPIRED = 2;
{$EXTERNALSYM AE_LIM_EXPIRED}
AE_LIM_INVAL_WKSTA = 3;
{$EXTERNALSYM AE_LIM_INVAL_WKSTA}
AE_LIM_DISABLED = 4;
{$EXTERNALSYM AE_LIM_DISABLED}
AE_LIM_DELETED = 5;
{$EXTERNALSYM AE_LIM_DELETED}
//
// Values for xx_action fields
//
AE_MOD = 0;
{$EXTERNALSYM AE_MOD}
AE_DELETE = 1;
{$EXTERNALSYM AE_DELETE}
AE_ADD = 2;
{$EXTERNALSYM AE_ADD}
//
// Types of UAS record for um_rectype field
//
AE_UAS_USER = 0;
{$EXTERNALSYM AE_UAS_USER}
AE_UAS_GROUP = 1;
{$EXTERNALSYM AE_UAS_GROUP}
AE_UAS_MODALS = 2;
{$EXTERNALSYM AE_UAS_MODALS}
//
// Bitmasks for auditing events
//
// The parentheses around the hex constants broke h_to_inc
// and have been purged from the face of the earth.
//
SVAUD_SERVICE = $1;
{$EXTERNALSYM SVAUD_SERVICE}
SVAUD_GOODSESSLOGON = $6;
{$EXTERNALSYM SVAUD_GOODSESSLOGON}
SVAUD_BADSESSLOGON = $18;
{$EXTERNALSYM SVAUD_BADSESSLOGON}
SVAUD_SESSLOGON = SVAUD_GOODSESSLOGON or SVAUD_BADSESSLOGON;
{$EXTERNALSYM SVAUD_SESSLOGON}
SVAUD_GOODNETLOGON = $60;
{$EXTERNALSYM SVAUD_GOODNETLOGON}
SVAUD_BADNETLOGON = $180;
{$EXTERNALSYM SVAUD_BADNETLOGON}
SVAUD_NETLOGON = SVAUD_GOODNETLOGON or SVAUD_BADNETLOGON;
{$EXTERNALSYM SVAUD_NETLOGON}
SVAUD_LOGON = SVAUD_NETLOGON or SVAUD_SESSLOGON;
{$EXTERNALSYM SVAUD_LOGON}
SVAUD_GOODUSE = $600;
{$EXTERNALSYM SVAUD_GOODUSE}
SVAUD_BADUSE = $1800;
{$EXTERNALSYM SVAUD_BADUSE}
SVAUD_USE = SVAUD_GOODUSE or SVAUD_BADUSE;
{$EXTERNALSYM SVAUD_USE}
SVAUD_USERLIST = $2000;
{$EXTERNALSYM SVAUD_USERLIST}
SVAUD_PERMISSIONS = $4000;
{$EXTERNALSYM SVAUD_PERMISSIONS}
SVAUD_RESOURCE = $8000;
{$EXTERNALSYM SVAUD_RESOURCE}
SVAUD_LOGONLIM = $00010000;
{$EXTERNALSYM SVAUD_LOGONLIM}
//
// Resource access audit bitmasks.
//
AA_AUDIT_ALL = $0001;
{$EXTERNALSYM AA_AUDIT_ALL}
AA_A_OWNER = $0004;
{$EXTERNALSYM AA_A_OWNER}
AA_CLOSE = $0008;
{$EXTERNALSYM AA_CLOSE}
AA_S_OPEN = $0010;
{$EXTERNALSYM AA_S_OPEN}
AA_S_WRITE = $0020;
{$EXTERNALSYM AA_S_WRITE}
AA_S_CREATE = $0020;
{$EXTERNALSYM AA_S_CREATE}
AA_S_DELETE = $0040;
{$EXTERNALSYM AA_S_DELETE}
AA_S_ACL = $0080;
{$EXTERNALSYM AA_S_ACL}
AA_S_ALL = AA_S_OPEN or AA_S_WRITE or AA_S_DELETE or AA_S_ACL;
{$EXTERNALSYM AA_S_ALL}
AA_F_OPEN = $0100;
{$EXTERNALSYM AA_F_OPEN}
AA_F_WRITE = $0200;
{$EXTERNALSYM AA_F_WRITE}
AA_F_CREATE = $0200;
{$EXTERNALSYM AA_F_CREATE}
AA_F_DELETE = $0400;
{$EXTERNALSYM AA_F_DELETE}
AA_F_ACL = $0800;
{$EXTERNALSYM AA_F_ACL}
AA_F_ALL = AA_F_OPEN or AA_F_WRITE or AA_F_DELETE or AA_F_ACL;
{$EXTERNALSYM AA_F_ALL}
// Pinball-specific
AA_A_OPEN = $1000;
{$EXTERNALSYM AA_A_OPEN}
AA_A_WRITE = $2000;
{$EXTERNALSYM AA_A_WRITE}
AA_A_CREATE = $2000;
{$EXTERNALSYM AA_A_CREATE}
AA_A_DELETE = $4000;
{$EXTERNALSYM AA_A_DELETE}
AA_A_ACL = $8000;
{$EXTERNALSYM AA_A_ACL}
AA_A_ALL = AA_F_OPEN or AA_F_WRITE or AA_F_DELETE or AA_F_ACL;
{$EXTERNALSYM AA_A_ALL}
{$ENDIF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
implementation
//uses ...
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$IFNDEF JWA_INTERFACESECTION}
{$IFDEF DYNAMIC_LINK}
var
_NetAuditClear: Pointer;
function NetAuditClear;
begin
GetProcedureAddress(_NetAuditClear, netapi32, 'NetAuditClear');
asm
MOV ESP, EBP
POP EBP
JMP [_NetAuditClear]
end;
end;
var
_NetAuditRead: Pointer;
function NetAuditRead;
begin
GetProcedureAddress(_NetAuditRead, netapi32, 'NetAuditRead');
asm
MOV ESP, EBP
POP EBP
JMP [_NetAuditRead]
end;
end;
var
_NetAuditWrite: Pointer;
function NetAuditWrite;
begin
GetProcedureAddress(_NetAuditWrite, netapi32, 'NetAuditWrite');
asm
MOV ESP, EBP
POP EBP
JMP [_NetAuditWrite]
end;
end;
{$ELSE}
function NetAuditClear; external netapi32 name 'NetAuditClear';
function NetAuditRead; external netapi32 name 'NetAuditRead';
function NetAuditWrite; external netapi32 name 'NetAuditWrite';
{$ENDIF DYNAMIC_LINK}
{$ENDIF JWA_INTERFACESECTION}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
end.
{$ENDIF JWA_OMIT_SECTIONS_LM}