3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
31 #define REVISED_AUDIT_ENTRY_STRUCT
32 #define LOGFLAGS_FORWARD 0
33 #define LOGFLAGS_BACKWARD 1
34 #define LOGFLAGS_SEEK 2
35 #define ACTION_LOCKOUT 0
36 #define ACTION_ADMINUNLOCK 1
41 #define AE_USERLIMIT 0
48 #define AE_ADMINPRIVREQD 2
50 #define AE_NOACCESSPERM 3
51 #define AE_ACCRESTRICT 4
52 #define AE_NORMAL_CLOSE 0
53 #define AE_SES_CLOSE 1
54 #define AE_ADMIN_CLOSE 2
55 #define AE_LIM_UNKNOWN 0
56 #define AE_LIM_LOGONHOURS 1
57 #define AE_LIM_EXPIRED 2
58 #define AE_LIM_INVAL_WKSTA 3
59 #define AE_LIM_DISABLED 4
60 #define AE_LIM_DELETED 5
65 #define AE_UAS_GROUP 1
66 #define AE_UAS_MODALS 2
67 #define SVAUD_SERVICE 1
68 #define SVAUD_GOODSESSLOGON 6
69 #define SVAUD_BADSESSLOGON 24
70 #define SVAUD_SESSLOGON (SVAUD_GOODSESSLOGON|SVAUD_BADSESSLOGON)
71 #define SVAUD_GOODNETLOGON 96
72 #define SVAUD_BADNETLOGON 384
73 #define SVAUD_NETLOGON (SVAUD_GOODNETLOGON|SVAUD_BADNETLOGON)
74 #define SVAUD_LOGON (SVAUD_NETLOGON|SVAUD_SESSLOGON)
75 #define SVAUD_GOODUSE 0x600
76 #define SVAUD_BADUSE 0x1800
77 #define SVAUD_USE (SVAUD_GOODUSE|SVAUD_BADUSE)
78 #define SVAUD_USERLIST 8192
79 #define SVAUD_PERMISSIONS 16384
80 #define SVAUD_RESOURCE 32768
81 #define SVAUD_LOGONLIM 65536
82 #define AA_AUDIT_ALL 1
87 #define AA_S_CREATE 32
88 #define AA_S_DELETE 64
92 #define AA_F_WRITE 512
93 #define AA_F_CREATE 512
94 #define AA_F_DELETE 1024
96 #define AA_F_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL)
97 #define AA_A_OPEN 2048
98 #define AA_A_WRITE 4096
99 #define AA_A_CREATE 8192
100 #define AA_A_DELETE 16384
101 #define AA_A_ACL 32768
102 #define AA_A_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL)
103 typedef struct _AUDIT_ENTRY {
108 DWORD ae_data_offset;
110 } AUDIT_ENTRY,*PAUDIT_ENTRY,*LPAUDIT_ENTRY;
111 typedef struct _HLOG {
116 } HLOG,*PHLOG,*LPHLOG;
117 typedef struct _AE_SRVSTATUS {
119 } AE_SRVSTATUS,*PAE_SRVSTATUS,*LPAE_SRVSTATUS;
120 typedef struct _AE_SESSLOGON {
121 DWORD ae_so_compname;
122 DWORD ae_so_username;
123 DWORD ae_so_privilege;
124 } AE_SESSLOGON,*PAE_SESSLOGON,*LPAE_SESSLOGON;
125 typedef struct _AE_SESSLOGOFF {
126 DWORD ae_sf_compname;
127 DWORD ae_sf_username;
129 } AE_SESSLOGOFF,*PAE_SESSLOGOFF,*LPAE_SESSLOGOFF;
130 typedef struct _AE_SESSPWERR {
131 DWORD ae_sp_compname;
132 DWORD ae_sp_username;
133 } AE_SESSPWERR,*PAE_SESSPWERR,*LPAE_SESSPWERR;
134 typedef struct _AE_CONNSTART {
135 DWORD ae_ct_compname;
136 DWORD ae_ct_username;
139 } AE_CONNSTART,*PAE_CONNSTART,*LPAE_CONNSTART;
140 typedef struct _AE_CONNSTOP {
141 DWORD ae_cp_compname;
142 DWORD ae_cp_username;
146 } AE_CONNSTOP,*PAE_CONNSTOP,*LPAE_CONNSTOP;
147 typedef struct _AE_CONNREJ {
148 DWORD ae_cr_compname;
149 DWORD ae_cr_username;
152 } AE_CONNREJ,*PAE_CONNREJ,*LPAE_CONNREJ;
153 typedef struct _AE_RESACCESS {
154 DWORD ae_ra_compname;
155 DWORD ae_ra_username;
157 DWORD ae_ra_operation;
158 DWORD ae_ra_returncode;
161 } AE_RESACCESS,*PAE_RESACCESS,*LPAE_RESACCESS;
162 typedef struct _AE_RESACCESSREJ {
163 DWORD ae_rr_compname;
164 DWORD ae_rr_username;
166 DWORD ae_rr_operation;
167 } AE_RESACCESSREJ,*PAE_RESACCESSREJ,*LPAE_RESACCESSREJ;
168 typedef struct _AE_CLOSEFILE {
169 DWORD ae_cf_compname;
170 DWORD ae_cf_username;
173 DWORD ae_cf_duration;
175 } AE_CLOSEFILE,*PAE_CLOSEFILE,*LPAE_CLOSEFILE;
176 typedef struct _AE_SERVICESTAT {
177 DWORD ae_ss_compname;
178 DWORD ae_ss_username;
183 DWORD ae_ss_returnval;
184 } AE_SERVICESTAT,*PAE_SERVICESTAT,*LPAE_SERVICESTAT;
185 typedef struct _AE_ACLMOD {
186 DWORD ae_am_compname;
187 DWORD ae_am_username;
191 } AE_ACLMOD,*PAE_ACLMOD,*LPAE_ACLMOD;
192 typedef struct _AE_UASMOD {
193 DWORD ae_um_compname;
194 DWORD ae_um_username;
199 } AE_UASMOD,*PAE_UASMOD,*LPAE_UASMOD;
200 typedef struct _AE_NETLOGON {
201 DWORD ae_no_compname;
202 DWORD ae_no_username;
203 DWORD ae_no_privilege;
204 DWORD ae_no_authflags;
205 } AE_NETLOGON,*PAE_NETLOGON,*LPAE_NETLOGON;
206 typedef struct _AE_NETLOGOFF {
207 DWORD ae_nf_compname;
208 DWORD ae_nf_username;
209 DWORD ae_nf_reserved1;
210 DWORD ae_nf_reserved2;
211 } AE_NETLOGOFF,*PAE_NETLOGOFF,*LPAE_NETLOGOFF;
212 typedef struct _AE_ACCLIM {
213 DWORD ae_al_compname;
214 DWORD ae_al_username;
217 } AE_ACCLIM,*PAE_ACCLIM,*LPAE_ACCLIM;
218 typedef struct _AE_LOCKOUT {
219 DWORD ae_lk_compname;
220 DWORD ae_lk_username;
222 DWORD ae_lk_bad_pw_count;
223 } AE_LOCKOUT,*PAE_LOCKOUT,*LPAE_LOCKOUT;
224 typedef struct _AE_GENERIC {
237 } AE_GENERIC,*PAE_GENERIC,*LPAE_GENERIC;
238 NET_API_STATUS WINAPI NetAuditClear(LPCWSTR,LPCWSTR,LPCWSTR);
239 NET_API_STATUS WINAPI NetAuditRead(LPTSTR,LPTSTR,LPHLOG,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD);
240 NET_API_STATUS WINAPI NetAuditWrite(DWORD,PBYTE,DWORD,LPTSTR,PBYTE);
242 /* These conflict with struct typedefs, why? */
243 #define AE_SRVSTATUS 0
244 #define AE_SESSLOGON 1
245 #define AE_SESSLOGOFF 2
246 #define AE_SESSPWERR 3
247 #define AE_CONNSTART 4
248 #define AE_CONNSTOP 5
250 #define AE_RESACCESS 7
251 #define AE_RESACCESSREJ 8
252 #define AE_CLOSEFILE 9
253 #define AE_SERVICESTAT 11
256 #define AE_NETLOGON 14
257 #define AE_NETLOGOFF 15
258 #define AE_NETLOGDENIED 16
259 #define AE_ACCLIMITEXCD 17
260 #define AE_RESACCESS2 18
261 #define AE_ACLMODFAIL 19
262 #define AE_LOCKOUT 20
263 #define AE_GENERIC_TYPE 21
264 #define AE_SRVSTART 0
265 #define AE_SRVPAUSED 1