JwaLmAudit.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:20k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Lan Manager Audit API interface Unit for Object Pascal                       }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: lmaudit.h, released November 2001. The original Pascal }
  9. { code is: LmAudit.pas, released Februari 2002. The initial developer of the   }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaLmAudit;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "lmaudit.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaLmCons, JwaWinType;
  52. type
  53.   _HLOG = record
  54.     time: DWORD;
  55.     last_flags: DWORD;
  56.     offset: DWORD;
  57.     rec_offset: DWORD;
  58.   end;
  59.   {$EXTERNALSYM _HLOG}
  60.   HLOG = _HLOG;
  61.   {$EXTERNALSYM HLOG}
  62.   LPHLOG = ^HLOG;
  63.   {$EXTERNALSYM LPHLOG}
  64.   PHLOG = ^HLOG;
  65.   {$EXTERNALSYM PHLOG}
  66. const
  67.   LOGFLAGS_FORWARD  = 0;
  68.   {$EXTERNALSYM LOGFLAGS_FORWARD}
  69.   LOGFLAGS_BACKWARD = $1;
  70.   {$EXTERNALSYM LOGFLAGS_BACKWARD}
  71.   LOGFLAGS_SEEK     = $2;
  72.   {$EXTERNALSYM LOGFLAGS_SEEK}
  73. //
  74. // Function Prototypes - Audit
  75. //
  76. function NetAuditClear(server, backupfile, service: LPCWSTR): NET_API_STATUS; stdcall;
  77. {$EXTERNALSYM NetAuditClear}
  78. 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;
  79. {$EXTERNALSYM NetAuditRead}
  80. function NetAuditWrite(type_: DWORD; buf: LPBYTE; numbytes: DWORD; service: LPCWSTR; reserved: LPBYTE): NET_API_STATUS; stdcall;
  81. {$EXTERNALSYM NetAuditWrite}
  82. //
  83. // Data Structures - Audit
  84. //
  85. type
  86.   _AUDIT_ENTRY = record
  87.     ae_len: DWORD;
  88.     ae_reserved: DWORD;
  89.     ae_time: DWORD;
  90.     ae_type: DWORD;
  91.     ae_data_offset: DWORD; // Offset from beginning address of audit_entry
  92.     ae_data_size: DWORD; // byte count of ae_data area (not incl pad).
  93.   end;
  94.   {$EXTERNALSYM _AUDIT_ENTRY}
  95.   AUDIT_ENTRY = _AUDIT_ENTRY;
  96.   {$EXTERNALSYM AUDIT_ENTRY}
  97.   LPAUDIT_ENTRY = ^AUDIT_ENTRY;
  98.   {$EXTERNALSYM LPAUDIT_ENTRY}
  99.   PAUDIT_ENTRY = ^AUDIT_ENTRY;
  100.   {$EXTERNALSYM PAUDIT_ENTRY}
  101.   TAuditEntry = AUDIT_ENTRY;
  102.   PAuditEntry = PAUDIT_ENTRY;
  103. {$DEFINE REVISED_AUDIT_ENTRY_STRUCT}
  104.   _AE_SRVSTATUS = record
  105.     ae_sv_status: DWORD ;
  106.   end;
  107.   {$EXTERNALSYM _AE_SRVSTATUS}
  108.   //AE_SRVSTATUS = _AE_SRVSTATUS;
  109.   //{$EXTERNALSYM AE_SRVSTATUS}
  110.   LPAE_SRVSTATUS = ^_AE_SRVSTATUS;
  111.   {$EXTERNALSYM LPAE_SRVSTATUS}
  112.   PAE_SRVSTATUS = ^_AE_SRVSTATUS;
  113.   {$EXTERNALSYM PAE_SRVSTATUS}
  114.   TAeSrvStatus = _AE_SRVSTATUS;
  115.   PAeSrvStatus = PAE_SRVSTATUS;
  116.   _AE_SESSLOGON = record
  117.     ae_so_compname: DWORD;
  118.     ae_so_username: DWORD;
  119.     ae_so_privilege: DWORD;
  120.   end;
  121.   {$EXTERNALSYM _AE_SESSLOGON}
  122.   //AE_SESSLOGON = _AE_SESSLOGON;
  123.   //{$EXTERNALSYM AE_SESSLOGON}
  124.   LPAE_SESSLOGON = ^_AE_SESSLOGON;
  125.   {$EXTERNALSYM LPAE_SESSLOGON}
  126.   PAE_SESSLOGON = ^_AE_SESSLOGON;
  127.   {$EXTERNALSYM PAE_SESSLOGON}
  128.   TAeSessLogon = _AE_SESSLOGON;
  129.   PAeSessLogon = PAE_SESSLOGON;
  130.   _AE_SESSLOGOFF = record
  131.     ae_sf_compname: DWORD;
  132.     ae_sf_username: DWORD;
  133.     ae_sf_reason: DWORD;
  134.   end;
  135.   {$EXTERNALSYM _AE_SESSLOGOFF}
  136.   //AE_SESSLOGOFF = _AE_SESSLOGOFF;
  137.   //{$EXTERNALSYM AE_SESSLOGOFF}
  138.   LPAE_SESSLOGOFF = ^_AE_SESSLOGOFF;
  139.   {$EXTERNALSYM LPAE_SESSLOGOFF}
  140.   PAE_SESSLOGOFF = ^_AE_SESSLOGOFF;
  141.   {$EXTERNALSYM PAE_SESSLOGOFF}
  142.   TAeSessLogoff = _AE_SESSLOGOFF;
  143.   PAeSessLogoff = PAE_SESSLOGOFF;
  144.   _AE_SESSPWERR = record
  145.     ae_sp_compname: DWORD;
  146.     ae_sp_username: DWORD;
  147.   end;
  148.   {$EXTERNALSYM _AE_SESSPWERR}
  149.   //AE_SESSPWERR = _AE_SESSPWERR;
  150.   //{$EXTERNALSYM AE_SESSPWERR}
  151.   LPAE_SESSPWERR = ^_AE_SESSPWERR;
  152.   {$EXTERNALSYM LPAE_SESSPWERR}
  153.   PAE_SESSPWERR = ^_AE_SESSPWERR;
  154.   {$EXTERNALSYM PAE_SESSPWERR}
  155.   TAeSessPwerr = _AE_SESSPWERR;
  156.   PAeSessPwerr = PAE_SESSPWERR;
  157.   _AE_CONNSTART = record
  158.     ae_ct_compname: DWORD;
  159.     ae_ct_username: DWORD;
  160.     ae_ct_netname: DWORD;
  161.     ae_ct_connid: DWORD;
  162.   end;
  163.   {$EXTERNALSYM _AE_CONNSTART}
  164.   //AE_CONNSTART = _AE_CONNSTART;
  165.   //{$EXTERNALSYM AE_CONNSTART}
  166.   LPAE_CONNSTART = ^_AE_CONNSTART;
  167.   {$EXTERNALSYM LPAE_CONNSTART}
  168.   PAE_CONNSTART = ^_AE_CONNSTART;
  169.   {$EXTERNALSYM PAE_CONNSTART}
  170.   TAeConnStart = _AE_CONNSTART;
  171.   PAeConnStart = PAE_CONNSTART;
  172.   _AE_CONNSTOP = record
  173.     ae_cp_compname: DWORD;
  174.     ae_cp_username: DWORD;
  175.     ae_cp_netname: DWORD;
  176.     ae_cp_connid: DWORD;
  177.     ae_cp_reason: DWORD;
  178.   end;
  179.   {$EXTERNALSYM _AE_CONNSTOP}
  180.   //AE_CONNSTOP = _AE_CONNSTOP;
  181.   //{$EXTERNALSYM AE_CONNSTOP}
  182.   LPAE_CONNSTOP = ^_AE_CONNSTOP;
  183.   {$EXTERNALSYM LPAE_CONNSTOP}
  184.   PAE_CONNSTOP = ^_AE_CONNSTOP;
  185.   {$EXTERNALSYM PAE_CONNSTOP}
  186.   TAeConnStop = _AE_CONNSTOP;
  187.   PAeConnStop = PAE_CONNSTOP;
  188.   _AE_CONNREJ = record
  189.     ae_cr_compname: DWORD;
  190.     ae_cr_username: DWORD;
  191.     ae_cr_netname: DWORD;
  192.     ae_cr_reason: DWORD;
  193.   end;
  194.   {$EXTERNALSYM _AE_CONNREJ}
  195.   //AE_CONNREJ = _AE_CONNREJ;
  196.   //{$EXTERNALSYM AE_CONNREJ}
  197.   LPAE_CONNREJ = ^_AE_CONNREJ;
  198.   {$EXTERNALSYM LPAE_CONNREJ}
  199.   PAE_CONNREJ = ^_AE_CONNREJ;
  200.   {$EXTERNALSYM PAE_CONNREJ}
  201.   TAeConnRej = _AE_CONNREJ;
  202.   PAeConnRej = PAE_CONNREJ;
  203.   _AE_RESACCESS = record
  204.     ae_ra_compname: DWORD;
  205.     ae_ra_username: DWORD;
  206.     ae_ra_resname: DWORD;
  207.     ae_ra_operation: DWORD;
  208.     ae_ra_returncode: DWORD;
  209.     ae_ra_restype: DWORD;
  210.     ae_ra_fileid: DWORD;
  211.   end;
  212.   {$EXTERNALSYM _AE_RESACCESS}
  213.   //AE_RESACCESS = _AE_RESACCESS;
  214.   //{$EXTERNALSYM AE_RESACCESS}
  215.   LPAE_RESACCESS = ^_AE_RESACCESS;
  216.   {$EXTERNALSYM LPAE_RESACCESS}
  217.   PAE_RESACCESS = ^_AE_RESACCESS;
  218.   {$EXTERNALSYM PAE_RESACCESS}
  219.   TAeResAccess = _AE_RESACCESS;
  220.   PAeResAccess = PAE_RESACCESS;
  221.   _AE_RESACCESSREJ = record
  222.     ae_rr_compname: DWORD;
  223.     ae_rr_username: DWORD;
  224.     ae_rr_resname: DWORD;
  225.     ae_rr_operation: DWORD;
  226.   end;
  227.   {$EXTERNALSYM _AE_RESACCESSREJ}
  228.   //AE_RESACCESSREJ = _AE_RESACCESSREJ;
  229.   //{$EXTERNALSYM AE_RESACCESSREJ}
  230.   LPAE_RESACCESSREJ = ^_AE_RESACCESSREJ;
  231.   {$EXTERNALSYM LPAE_RESACCESSREJ}
  232.   PAE_RESACCESSREJ = ^_AE_RESACCESSREJ;
  233.   {$EXTERNALSYM PAE_RESACCESSREJ}
  234.   TAeResAccessRej = _AE_RESACCESSREJ;
  235.   PAeResAccessRej = PAE_RESACCESSREJ;
  236.   _AE_CLOSEFILE = record
  237.     ae_cf_compname: DWORD;
  238.     ae_cf_username: DWORD;
  239.     ae_cf_resname: DWORD;
  240.     ae_cf_fileid: DWORD;
  241.     ae_cf_duration: DWORD;
  242.     ae_cf_reason: DWORD;
  243.   end;
  244.   {$EXTERNALSYM _AE_CLOSEFILE}
  245.   //AE_CLOSEFILE = _AE_CLOSEFILE;
  246.   //{$EXTERNALSYM AE_CLOSEFILE}
  247.   LPAE_CLOSEFILE = ^_AE_CLOSEFILE;
  248.   {$EXTERNALSYM LPAE_CLOSEFILE}
  249.   PAE_CLOSEFILE = ^_AE_CLOSEFILE;
  250.   {$EXTERNALSYM PAE_CLOSEFILE}
  251.   TAeCloseFile = _AE_CLOSEFILE;
  252.   PAeCloseFile = PAE_CLOSEFILE;
  253.   _AE_SERVICESTAT = record
  254.     ae_ss_compname: DWORD;
  255.     ae_ss_username: DWORD;
  256.     ae_ss_svcname: DWORD;
  257.     ae_ss_status: DWORD;
  258.     ae_ss_code: DWORD;
  259.     ae_ss_text: DWORD;
  260.     ae_ss_returnval: DWORD;
  261.   end;
  262.   {$EXTERNALSYM _AE_SERVICESTAT}
  263.   //AE_SERVICESTAT = _AE_SERVICESTAT;
  264.   //{$EXTERNALSYM AE_SERVICESTAT}
  265.   LPAE_SERVICESTAT = ^_AE_SERVICESTAT;
  266.   {$EXTERNALSYM LPAE_SERVICESTAT}
  267.   PAE_SERVICESTAT = ^_AE_SERVICESTAT;
  268.   {$EXTERNALSYM PAE_SERVICESTAT}
  269.   TAeServiceStat = _AE_SERVICESTAT;
  270.   PAeServiceStat = PAE_SERVICESTAT;
  271.   _AE_ACLMOD = record
  272.     ae_am_compname: DWORD;
  273.     ae_am_username: DWORD;
  274.     ae_am_resname: DWORD;
  275.     ae_am_action: DWORD;
  276.     ae_am_datalen: DWORD;
  277.   end;
  278.   {$EXTERNALSYM _AE_ACLMOD}
  279.   //AE_ACLMOD = _AE_ACLMOD;
  280.   //{$EXTERNALSYM AE_ACLMOD}
  281.   LPAE_ACLMOD = ^_AE_ACLMOD;
  282.   {$EXTERNALSYM LPAE_ACLMOD}
  283.   PAE_ACLMOD = ^_AE_ACLMOD;
  284.   {$EXTERNALSYM PAE_ACLMOD}
  285.   TAeAclMod = _AE_ACLMOD;
  286.   PAeAclMod = PAE_ACLMOD;
  287.   _AE_UASMOD = record
  288.     ae_um_compname: DWORD;
  289.     ae_um_username: DWORD;
  290.     ae_um_resname: DWORD;
  291.     ae_um_rectype: DWORD;
  292.     ae_um_action: DWORD;
  293.     ae_um_datalen: DWORD;
  294.   end;
  295.   {$EXTERNALSYM _AE_UASMOD}
  296.   //AE_UASMOD = _AE_UASMOD;
  297.   //{$EXTERNALSYM AE_UASMOD}
  298.   LPAE_UASMOD = ^_AE_UASMOD;
  299.   {$EXTERNALSYM LPAE_UASMOD}
  300.   PAE_UASMOD = ^_AE_UASMOD;
  301.   {$EXTERNALSYM PAE_UASMOD}
  302.   TAeUasMod = _AE_UASMOD;
  303.   PAeUasMod = PAE_UASMOD;
  304.   _AE_NETLOGON = record
  305.     ae_no_compname: DWORD;
  306.     ae_no_username: DWORD;
  307.     ae_no_privilege: DWORD;
  308.     ae_no_authflags: DWORD;
  309.   end;
  310.   {$EXTERNALSYM _AE_NETLOGON}
  311.   //AE_NETLOGON = _AE_NETLOGON;
  312.   //{$EXTERNALSYM AE_NETLOGON}
  313.   LPAE_NETLOGON = ^_AE_NETLOGON;
  314.   {$EXTERNALSYM LPAE_NETLOGON}
  315.   PAE_NETLOGON = ^_AE_NETLOGON;
  316.   {$EXTERNALSYM PAE_NETLOGON}
  317.   TAeNetLogon = _AE_NETLOGON;
  318.   PAeNetLogon = PAE_NETLOGON;
  319.   _AE_NETLOGOFF = record
  320.     ae_nf_compname: DWORD;
  321.     ae_nf_username: DWORD;
  322.     ae_nf_reserved1: DWORD;
  323.     ae_nf_reserved2: DWORD;
  324.   end;
  325.   {$EXTERNALSYM _AE_NETLOGOFF}
  326.   //AE_NETLOGOFF = _AE_NETLOGOFF;
  327.   //{$EXTERNALSYM AE_NETLOGOFF}
  328.   LPAE_NETLOGOFF = ^_AE_NETLOGOFF;
  329.   {$EXTERNALSYM LPAE_NETLOGOFF}
  330.   PAE_NETLOGOFF = ^_AE_NETLOGOFF;
  331.   {$EXTERNALSYM PAE_NETLOGOFF}
  332.   TAeNetLogoff = _AE_NETLOGOFF;
  333.   PAeNetLogoff = PAE_NETLOGOFF;
  334.   _AE_ACCLIM = record
  335.     ae_al_compname: DWORD;
  336.     ae_al_username: DWORD;
  337.     ae_al_resname: DWORD;
  338.     ae_al_limit: DWORD;
  339.   end;
  340.   {$EXTERNALSYM _AE_ACCLIM}
  341.   //AE_ACCLIM = _AE_ACCLIM;
  342.   //{$EXTERNALSYM AE_ACCLIM}
  343.   LPAE_ACCLIM = ^_AE_ACCLIM;
  344.   {$EXTERNALSYM LPAE_ACCLIM}
  345.   PAE_ACCLIM = ^_AE_ACCLIM;
  346.   {$EXTERNALSYM PAE_ACCLIM}
  347.   TAeAccLim = _AE_ACCLIM;
  348.   PAeAccLim = PAE_ACCLIM;
  349. const
  350.   ACTION_LOCKOUT     = 0;
  351.   {$EXTERNALSYM ACTION_LOCKOUT}
  352.   ACTION_ADMINUNLOCK = 1;
  353.   {$EXTERNALSYM ACTION_ADMINUNLOCK}
  354. type
  355.   _AE_LOCKOUT = record
  356.     ae_lk_compname: DWORD; // Ptr to computername of client.
  357.     ae_lk_username: DWORD; // Ptr to username of client (NULL
  358.     //  if same as computername).
  359.     ae_lk_action: DWORD; // Action taken on account:
  360.     // 0 means locked out, 1 means not.
  361.     ae_lk_bad_pw_count: DWORD; // Bad password count at the time
  362.     // of lockout.
  363.   end;
  364.   {$EXTERNALSYM _AE_LOCKOUT}
  365.   //AE_LOCKOUT = _AE_LOCKOUT;
  366.   //{$EXTERNALSYM AE_LOCKOUT}
  367.   LPAE_LOCKOUT = ^_AE_LOCKOUT;
  368.   {$EXTERNALSYM LPAE_LOCKOUT}
  369.   PAE_LOCKOUT = ^_AE_LOCKOUT;
  370.   {$EXTERNALSYM PAE_LOCKOUT}
  371.   TAeLockout = _AE_LOCKOUT;
  372.   PAeLockout = PAE_LOCKOUT;
  373.   _AE_GENERIC = record
  374.     ae_ge_msgfile: DWORD;
  375.     ae_ge_msgnum: DWORD;
  376.     ae_ge_params: DWORD;
  377.     ae_ge_param1: DWORD;
  378.     ae_ge_param2: DWORD;
  379.     ae_ge_param3: DWORD;
  380.     ae_ge_param4: DWORD;
  381.     ae_ge_param5: DWORD;
  382.     ae_ge_param6: DWORD;
  383.     ae_ge_param7: DWORD;
  384.     ae_ge_param8: DWORD;
  385.     ae_ge_param9: DWORD;
  386.   end;
  387.   {$EXTERNALSYM _AE_GENERIC}
  388.   //AE_GENERIC = _AE_GENERIC;
  389.   //{$EXTERNALSYM AE_GENERIC}
  390.   LPAE_GENERIC = ^_AE_GENERIC;
  391.   {$EXTERNALSYM LPAE_GENERIC}
  392.   PAE_GENERIC = ^_AE_GENERIC;
  393.   {$EXTERNALSYM PAE_GENERIC}
  394.   TAeGeneric = _AE_GENERIC;
  395.   PAeGeneric = PAE_GENERIC;
  396. //
  397. // Special Values and Constants - Audit
  398. //
  399. //
  400. //  Audit entry types (field ae_type in audit_entry).
  401. //
  402. const
  403.   AE_SRVSTATUS    = 0;
  404.   {$EXTERNALSYM AE_SRVSTATUS}
  405.   AE_SESSLOGON    = 1;
  406.   {$EXTERNALSYM AE_SESSLOGON}
  407.   AE_SESSLOGOFF   = 2;
  408.   {$EXTERNALSYM AE_SESSLOGOFF}
  409.   AE_SESSPWERR    = 3;
  410.   {$EXTERNALSYM AE_SESSPWERR}
  411.   AE_CONNSTART    = 4;
  412.   {$EXTERNALSYM AE_CONNSTART}
  413.   AE_CONNSTOP     = 5;
  414.   {$EXTERNALSYM AE_CONNSTOP}
  415.   AE_CONNREJ      = 6;
  416.   {$EXTERNALSYM AE_CONNREJ}
  417.   AE_RESACCESS    = 7;
  418.   {$EXTERNALSYM AE_RESACCESS}
  419.   AE_RESACCESSREJ = 8;
  420.   {$EXTERNALSYM AE_RESACCESSREJ}
  421.   AE_CLOSEFILE    = 9;
  422.   {$EXTERNALSYM AE_CLOSEFILE}
  423.   AE_SERVICESTAT  = 11;
  424.   {$EXTERNALSYM AE_SERVICESTAT}
  425.   AE_ACLMOD       = 12;
  426.   {$EXTERNALSYM AE_ACLMOD}
  427.   AE_UASMOD       = 13;
  428.   {$EXTERNALSYM AE_UASMOD}
  429.   AE_NETLOGON     = 14;
  430.   {$EXTERNALSYM AE_NETLOGON}
  431.   AE_NETLOGOFF    = 15;
  432.   {$EXTERNALSYM AE_NETLOGOFF}
  433.   AE_NETLOGDENIED = 16;
  434.   {$EXTERNALSYM AE_NETLOGDENIED}
  435.   AE_ACCLIMITEXCD = 17;
  436.   {$EXTERNALSYM AE_ACCLIMITEXCD}
  437.   AE_RESACCESS2   = 18;
  438.   {$EXTERNALSYM AE_RESACCESS2}
  439.   AE_ACLMODFAIL   = 19;
  440.   {$EXTERNALSYM AE_ACLMODFAIL}
  441.   AE_LOCKOUT      = 20;
  442.   {$EXTERNALSYM AE_LOCKOUT}
  443.   AE_GENERIC_TYPE = 21;
  444.   {$EXTERNALSYM AE_GENERIC_TYPE}
  445. //
  446. // Values for ae_ss_status field of ae_srvstatus.
  447. //
  448.   AE_SRVSTART  = 0;
  449.   {$EXTERNALSYM AE_SRVSTART}
  450.   AE_SRVPAUSED = 1;
  451.   {$EXTERNALSYM AE_SRVPAUSED}
  452.   AE_SRVCONT   = 2;
  453.   {$EXTERNALSYM AE_SRVCONT}
  454.   AE_SRVSTOP   = 3;
  455.   {$EXTERNALSYM AE_SRVSTOP}
  456. //
  457. //  Values for ae_so_privilege field of ae_sesslogon.
  458. //
  459.   AE_GUEST = 0;
  460.   {$EXTERNALSYM AE_GUEST}
  461.   AE_USER  = 1;
  462.   {$EXTERNALSYM AE_USER}
  463.   AE_ADMIN = 2;
  464.   {$EXTERNALSYM AE_ADMIN}
  465. //
  466. // Values for various ae_XX_reason fields.
  467. //
  468.   AE_NORMAL        = 0;
  469.   {$EXTERNALSYM AE_NORMAL}
  470.   AE_USERLIMIT     = 0;
  471.   {$EXTERNALSYM AE_USERLIMIT}
  472.   AE_GENERAL       = 0;
  473.   {$EXTERNALSYM AE_GENERAL}
  474.   AE_ERROR         = 1;
  475.   {$EXTERNALSYM AE_ERROR}
  476.   AE_SESSDIS       = 1;
  477.   {$EXTERNALSYM AE_SESSDIS}
  478.   AE_BADPW         = 1;
  479.   {$EXTERNALSYM AE_BADPW}
  480.   AE_AUTODIS       = 2;
  481.   {$EXTERNALSYM AE_AUTODIS}
  482.   AE_UNSHARE       = 2;
  483.   {$EXTERNALSYM AE_UNSHARE}
  484.   AE_ADMINPRIVREQD = 2;
  485.   {$EXTERNALSYM AE_ADMINPRIVREQD}
  486.   AE_ADMINDIS      = 3;
  487.   {$EXTERNALSYM AE_ADMINDIS}
  488.   AE_NOACCESSPERM  = 3;
  489.   {$EXTERNALSYM AE_NOACCESSPERM}
  490.   AE_ACCRESTRICT   = 4;
  491.   {$EXTERNALSYM AE_ACCRESTRICT}
  492.   AE_NORMAL_CLOSE = 0;
  493.   {$EXTERNALSYM AE_NORMAL_CLOSE}
  494.   AE_SES_CLOSE    = 1;
  495.   {$EXTERNALSYM AE_SES_CLOSE}
  496.   AE_ADMIN_CLOSE  = 2;
  497.   {$EXTERNALSYM AE_ADMIN_CLOSE}
  498. //
  499. // Values for xx_subreason fields.
  500. //
  501.   AE_LIM_UNKNOWN     = 0;
  502.   {$EXTERNALSYM AE_LIM_UNKNOWN}
  503.   AE_LIM_LOGONHOURS  = 1;
  504.   {$EXTERNALSYM AE_LIM_LOGONHOURS}
  505.   AE_LIM_EXPIRED     = 2;
  506.   {$EXTERNALSYM AE_LIM_EXPIRED}
  507.   AE_LIM_INVAL_WKSTA = 3;
  508.   {$EXTERNALSYM AE_LIM_INVAL_WKSTA}
  509.   AE_LIM_DISABLED    = 4;
  510.   {$EXTERNALSYM AE_LIM_DISABLED}
  511.   AE_LIM_DELETED     = 5;
  512.   {$EXTERNALSYM AE_LIM_DELETED}
  513. //
  514. // Values for xx_action fields
  515. //
  516.   AE_MOD    = 0;
  517.   {$EXTERNALSYM AE_MOD}
  518.   AE_DELETE = 1;
  519.   {$EXTERNALSYM AE_DELETE}
  520.   AE_ADD    = 2;
  521.   {$EXTERNALSYM AE_ADD}
  522. //
  523. // Types of UAS record for um_rectype field
  524. //
  525.   AE_UAS_USER   = 0;
  526.   {$EXTERNALSYM AE_UAS_USER}
  527.   AE_UAS_GROUP  = 1;
  528.   {$EXTERNALSYM AE_UAS_GROUP}
  529.   AE_UAS_MODALS = 2;
  530.   {$EXTERNALSYM AE_UAS_MODALS}
  531. //
  532. // Bitmasks for auditing events
  533. //
  534. // The parentheses around the hex constants broke h_to_inc
  535. // and have been purged from the face of the earth.
  536. //
  537.   SVAUD_SERVICE       = $1;
  538.   {$EXTERNALSYM SVAUD_SERVICE}
  539.   SVAUD_GOODSESSLOGON = $6;
  540.   {$EXTERNALSYM SVAUD_GOODSESSLOGON}
  541.   SVAUD_BADSESSLOGON  = $18;
  542.   {$EXTERNALSYM SVAUD_BADSESSLOGON}
  543.   SVAUD_SESSLOGON     = (SVAUD_GOODSESSLOGON or SVAUD_BADSESSLOGON);
  544.   {$EXTERNALSYM SVAUD_SESSLOGON}
  545.   SVAUD_GOODNETLOGON  = $60;
  546.   {$EXTERNALSYM SVAUD_GOODNETLOGON}
  547.   SVAUD_BADNETLOGON   = $180;
  548.   {$EXTERNALSYM SVAUD_BADNETLOGON}
  549.   SVAUD_NETLOGON      = (SVAUD_GOODNETLOGON or SVAUD_BADNETLOGON);
  550.   {$EXTERNALSYM SVAUD_NETLOGON}
  551.   SVAUD_LOGON         = (SVAUD_NETLOGON or SVAUD_SESSLOGON);
  552.   {$EXTERNALSYM SVAUD_LOGON}
  553.   SVAUD_GOODUSE       = $600;
  554.   {$EXTERNALSYM SVAUD_GOODUSE}
  555.   SVAUD_BADUSE        = $1800;
  556.   {$EXTERNALSYM SVAUD_BADUSE}
  557.   SVAUD_USE           = (SVAUD_GOODUSE or SVAUD_BADUSE);
  558.   {$EXTERNALSYM SVAUD_USE}
  559.   SVAUD_USERLIST      = $2000;
  560.   {$EXTERNALSYM SVAUD_USERLIST}
  561.   SVAUD_PERMISSIONS   = $4000;
  562.   {$EXTERNALSYM SVAUD_PERMISSIONS}
  563.   SVAUD_RESOURCE      = $8000;
  564.   {$EXTERNALSYM SVAUD_RESOURCE}
  565.   SVAUD_LOGONLIM      = $00010000;
  566.   {$EXTERNALSYM SVAUD_LOGONLIM}
  567. //
  568. // Resource access audit bitmasks.
  569. //
  570.   AA_AUDIT_ALL = $0001;
  571.   {$EXTERNALSYM AA_AUDIT_ALL}
  572.   AA_A_OWNER   = $0004;
  573.   {$EXTERNALSYM AA_A_OWNER}
  574.   AA_CLOSE     = $0008;
  575.   {$EXTERNALSYM AA_CLOSE}
  576.   AA_S_OPEN    = $0010;
  577.   {$EXTERNALSYM AA_S_OPEN}
  578.   AA_S_WRITE   = $0020;
  579.   {$EXTERNALSYM AA_S_WRITE}
  580.   AA_S_CREATE  = $0020;
  581.   {$EXTERNALSYM AA_S_CREATE}
  582.   AA_S_DELETE  = $0040;
  583.   {$EXTERNALSYM AA_S_DELETE}
  584.   AA_S_ACL     = $0080;
  585.   {$EXTERNALSYM AA_S_ACL}
  586.   AA_S_ALL     = ( AA_S_OPEN or AA_S_WRITE or AA_S_DELETE or AA_S_ACL);
  587.   {$EXTERNALSYM AA_S_ALL}
  588.   AA_F_OPEN    = $0100;
  589.   {$EXTERNALSYM AA_F_OPEN}
  590.   AA_F_WRITE   = $0200;
  591.   {$EXTERNALSYM AA_F_WRITE}
  592.   AA_F_CREATE  = $0200;
  593.   {$EXTERNALSYM AA_F_CREATE}
  594.   AA_F_DELETE  = $0400;
  595.   {$EXTERNALSYM AA_F_DELETE}
  596.   AA_F_ACL     = $0800;
  597.   {$EXTERNALSYM AA_F_ACL}
  598.   AA_F_ALL     = ( AA_F_OPEN or AA_F_WRITE or AA_F_DELETE or AA_F_ACL);
  599.   {$EXTERNALSYM AA_F_ALL}
  600. // Pinball-specific
  601.   AA_A_OPEN   = $1000;
  602.   {$EXTERNALSYM AA_A_OPEN}
  603.   AA_A_WRITE  = $2000;
  604.   {$EXTERNALSYM AA_A_WRITE}
  605.   AA_A_CREATE = $2000;
  606.   {$EXTERNALSYM AA_A_CREATE}
  607.   AA_A_DELETE = $4000;
  608.   {$EXTERNALSYM AA_A_DELETE}
  609.   AA_A_ACL    = $8000;
  610.   {$EXTERNALSYM AA_A_ACL}
  611.   AA_A_ALL    = (AA_F_OPEN or AA_F_WRITE or AA_F_DELETE or AA_F_ACL);
  612.   {$EXTERNALSYM AA_A_ALL}
  613. implementation
  614. {$IFDEF DYNAMIC_LINK}
  615. var
  616.   _NetAuditClear: Pointer;
  617. function NetAuditClear;
  618. begin
  619.   GetProcedureAddress(_NetAuditClear, netapi32, 'NetAuditClear');
  620.   asm
  621.     mov esp, ebp
  622.     pop ebp
  623.     jmp [_NetAuditClear]
  624.   end;
  625. end;
  626. {$ELSE}
  627. function NetAuditClear; external netapi32 name 'NetAuditClear';
  628. {$ENDIF DYNAMIC_LINK}
  629. {$IFDEF DYNAMIC_LINK}
  630. var
  631.   _NetAuditRead: Pointer;
  632. function NetAuditRead;
  633. begin
  634.   GetProcedureAddress(_NetAuditRead, netapi32, 'NetAuditRead');
  635.   asm
  636.     mov esp, ebp
  637.     pop ebp
  638.     jmp [_NetAuditRead]
  639.   end;
  640. end;
  641. {$ELSE}
  642. function NetAuditRead; external netapi32 name 'NetAuditRead';
  643. {$ENDIF DYNAMIC_LINK}
  644. {$IFDEF DYNAMIC_LINK}
  645. var
  646.   _NetAuditWrite: Pointer;
  647. function NetAuditWrite;
  648. begin
  649.   GetProcedureAddress(_NetAuditWrite, netapi32, 'NetAuditWrite');
  650.   asm
  651.     mov esp, ebp
  652.     pop ebp
  653.     jmp [_NetAuditWrite]
  654.   end;
  655. end;
  656. {$ELSE}
  657. function NetAuditWrite; external netapi32 name 'NetAuditWrite';
  658. {$ENDIF DYNAMIC_LINK}
  659. end.