📄 jwalmaudit.pas
字号:
{******************************************************************************}
{ }
{ 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@chello.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 home }
{ page, located at http://delphi-jedi.org or my personal homepage located at }
{ http://members.chello.nl/m.vanbrakel2 }
{ }
{ 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 }
{ }
{******************************************************************************}
unit JwaLmAudit;
{$WEAKPACKAGEUNIT}
{$HPPEMIT ''}
{$HPPEMIT '#include "lmaudit.h"'}
{$HPPEMIT ''}
{$I WINDEFINES.INC}
interface
uses
JwaLmCons, JwaWinType;
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}
//
// 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -