jwalmaudit.pas 20 KB

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