1 #ifndef _LMACCESS_H 2 #define _LMACCESS_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 #include <lmcons.h> 8 #define GROUP_SPECIALGRP_USERS L"USERS" 9 #define GROUP_SPECIALGRP_ADMINS L"ADMINS" 10 #define GROUP_SPECIALGRP_GUESTS L"GUESTS" 11 #define GROUP_SPECIALGRP_LOCAL L"LOCAL" 12 #define ACCESS_LETTERS "RWCXDAP " 13 #define NETLOGON_CONTROL_QUERY 1 14 #define NETLOGON_CONTROL_REPLICATE 2 15 #define NETLOGON_CONTROL_SYNCHRONIZE 3 16 #define NETLOGON_CONTROL_PDC_REPLICATE 4 17 #define NETLOGON_CONTROL_REDISCOVER 5 18 #define NETLOGON_CONTROL_TC_QUERY 6 19 #define NETLOGON_CONTROL_BACKUP_CHANGE_LOG 65532 20 #define NETLOGON_CONTROL_TRUNCATE_LOG 65533 21 #define NETLOGON_CONTROL_SET_DBFLAG 65534 22 #define NETLOGON_CONTROL_BREAKPOINT 65535 23 #define UF_SCRIPT 1 24 #define UF_ACCOUNTDISABLE 2 25 #define UF_HOMEDIR_REQUIRED 8 26 #define UF_LOCKOUT 16 27 #define UF_PASSWD_NOTREQD 32 28 #define UF_PASSWD_CANT_CHANGE 64 29 #define UF_TEMP_DUPLICATE_ACCOUNT 256 30 #define UF_NORMAL_ACCOUNT 512 31 #define UF_INTERDOMAIN_TRUST_ACCOUNT 2048 32 #define UF_WORKSTATION_TRUST_ACCOUNT 4096 33 #define UF_SERVER_TRUST_ACCOUNT 8192 34 #define UF_MNS_LOGON_ACCOUNT 131072 35 #define UF_MACHINE_ACCOUNT_MASK (UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT) 36 #define UF_ACCOUNT_TYPE_MASK (UF_TEMP_DUPLICATE_ACCOUNT|UF_NORMAL_ACCOUNT|UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT) 37 #define UF_DONT_EXPIRE_PASSWD 65536 38 #define UF_SETTABLE_BITS (UF_SCRIPT|UF_ACCOUNTDISABLE|UF_LOCKOUT|UF_HOMEDIR_REQUIRED|UF_PASSWD_NOTREQD|UF_PASSWD_CANT_CHANGE|UF_ACCOUNT_TYPE_MASK|UF_DONT_EXPIRE_PASSWD) 39 #define FILTER_TEMP_DUPLICATE_ACCOUNT 1 40 #define FILTER_NORMAL_ACCOUNT 2 41 #define FILTER_INTERDOMAIN_TRUST_ACCOUNT 8 42 #define FILTER_WORKSTATION_TRUST_ACCOUNT 16 43 #define FILTER_SERVER_TRUST_ACCOUNT 32 44 #define LG_INCLUDE_INDIRECT 1 45 #define AF_OP_PRINT 1 46 #define AF_OP_COMM 2 47 #define AF_OP_SERVER 4 48 #define AF_OP_ACCOUNTS 8 49 #define AF_SETTABLE_BITS (AF_OP_PRINT|AF_OP_COMM|AF_OP_SERVER|AF_OP_ACCOUNTS) 50 #define UAS_ROLE_STANDALONE 0 51 #define UAS_ROLE_MEMBER 1 52 #define UAS_ROLE_BACKUP 2 53 #define UAS_ROLE_PRIMARY 3 54 #define USER_NAME_PARMNUM 1 55 #define USER_PASSWORD_PARMNUM 3 56 #define USER_PASSWORD_AGE_PARMNUM 4 57 #define USER_PRIV_PARMNUM 5 58 #define USER_HOME_DIR_PARMNUM 6 59 #define USER_COMMENT_PARMNUM 7 60 #define USER_FLAGS_PARMNUM 8 61 #define USER_SCRIPT_PATH_PARMNUM 9 62 #define USER_AUTH_FLAGS_PARMNUM 10 63 #define USER_FULL_NAME_PARMNUM 11 64 #define USER_USR_COMMENT_PARMNUM 12 65 #define USER_PARMS_PARMNUM 13 66 #define USER_WORKSTATIONS_PARMNUM 14 67 #define USER_LAST_LOGON_PARMNUM 15 68 #define USER_LAST_LOGOFF_PARMNUM 16 69 #define USER_ACCT_EXPIRES_PARMNUM 17 70 #define USER_MAX_STORAGE_PARMNUM 18 71 #define USER_UNITS_PER_WEEK_PARMNUM 19 72 #define USER_LOGON_HOURS_PARMNUM 20 73 #define USER_PAD_PW_COUNT_PARMNUM 21 74 #define USER_NUM_LOGONS_PARMNUM 22 75 #define USER_LOGON_SERVER_PARMNUM 23 76 #define USER_COUNTRY_CODE_PARMNUM 24 77 #define USER_CODE_PAGE_PARMNUM 25 78 #define USER_PRIMARY_GROUP_PARMNUM 51 79 #define USER_PROFILE 52 80 #define USER_PROFILE_PARMNUM 52 81 #define USER_HOME_DIR_DRIVE_PARMNUM 53 82 #define USER_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NAME_PARMNUM) 83 #define USER_PASSWORD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_PARMNUM) 84 #define USER_PASSWORD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_AGE_PARMNUM) 85 #define USER_PRIV_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIV_PARMNUM) 86 #define USER_HOME_DIR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_PARMNUM) 87 #define USER_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COMMENT_PARMNUM) 88 #define USER_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FLAGS_PARMNUM) 89 #define USER_SCRIPT_PATH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_SCRIPT_PATH_PARMNUM) 90 #define USER_AUTH_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_AUTH_FLAGS_PARMNUM) 91 #define USER_FULL_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FULL_NAME_PARMNUM) 92 #define USER_USR_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_USR_COMMENT_PARMNUM) 93 #define USER_PARMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PARMS_PARMNUM) 94 #define USER_WORKSTATIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_WORKSTATIONS_PARMNUM) 95 #define USER_LAST_LOGON_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGON_PARMNUM) 96 #define USER_LAST_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGOFF_PARMNUM) 97 #define USER_ACCT_EXPIRES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_ACCT_EXPIRES_PARMNUM) 98 #define USER_MAX_STORAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_MAX_STORAGE_PARMNUM) 99 #define USER_UNITS_PER_WEEK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_UNITS_PER_WEEK_PARMNUM) 100 #define USER_LOGON_HOURS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_HOURS_PARMNUM) 101 #define USER_PAD_PW_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PAD_PW_COUNT_PARMNUM) 102 #define USER_NUM_LOGONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NUM_LOGONS_PARMNUM) 103 #define USER_LOGON_SERVER_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_SERVER_PARMNUM) 104 #define USER_COUNTRY_CODE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COUNTRY_CODE_PARMNUM) 105 #define USER_CODE_PAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_CODE_PAGE_PARMNUM) 106 #define USER_PRIMARY_GROUP_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIMARY_GROUP_PARMNUM) 107 #define USER_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_POSIX_ID_PARMNUM) 108 #define USER_HOME_DIR_DRIVE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_DRIVE_PARMNUM) 109 #define NULL_USERSETINFO_PASSWD " " 110 #define TIMEQ_FOREVER ((ULONG)-1) 111 #define USER_MAXSTORAGE_UNLIMITED ((ULONG)-1) 112 #define USER_NO_LOGOFF ((ULONG)-1L) 113 #define UNITS_PER_DAY 24 114 #define UNITS_PER_WEEK 168 115 #define USER_PRIV_MASK 3 116 #define USER_PRIV_GUEST 0 117 #define USER_PRIV_USER 1 118 #define USER_PRIV_ADMIN 2 119 #define MAX_PASSWD_LEN PWLEN 120 #define DEF_MIN_PWLEN 6 121 #define DEF_PWUNIQUENESS 5 122 #define DEF_MAX_PWHIST 8 123 #define DEF_MAX_PWAGE TIMEQ_FOREVER 124 #define DEF_MIN_PWAGE 0 125 #define DEF_FORCE_LOGOFF (ULONG)0xffffffff 126 #define DEF_MAX_BADPW 0 127 #define ONE_DAY 86400 128 #define VALIDATED_LOGON 0 129 #define PASSWORD_EXPIRED 2 130 #define NON_VALIDATED_LOGON 3 131 #define VALID_LOGOFF 1 132 #define MODALS_MIN_PASSWD_LEN_PARMNUM 1 133 #define MODALS_MAX_PASSWD_AGE_PARMNUM 2 134 #define MODALS_MIN_PASSWD_AGE_PARMNUM 3 135 #define MODALS_FORCE_LOGOFF_PARMNUM 4 136 #define MODALS_PASSWD_HIST_LEN_PARMNUM 5 137 #define MODALS_ROLE_PARMNUM 6 138 #define MODALS_PRIMARY_PARMNUM 7 139 #define MODALS_DOMAIN_NAME_PARMNUM 8 140 #define MODALS_DOMAIN_ID_PARMNUM 9 141 #define MODALS_LOCKOUT_DURATION_PARMNUM 10 142 #define MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM 11 143 #define MODALS_LOCKOUT_THRESHOLD_PARMNUM 12 144 #define MODALS_MIN_PASSWD_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_LEN_PARMNUM) 145 #define MODALS_MAX_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MAX_PASSWD_AGE_PARMNUM) 146 #define MODALS_MIN_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_AGE_PARMNUM) 147 #define MODALS_FORCE_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_FORCE_LOGOFF_PARMNUM) 148 #define MODALS_PASSWD_HIST_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PASSWD_HIST_LEN_PARMNUM) 149 #define MODALS_ROLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_ROLE_PARMNUM) 150 #define MODALS_PRIMARY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PRIMARY_PARMNUM) 151 #define MODALS_DOMAIN_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_NAME_PARMNUM) 152 #define MODALS_DOMAIN_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_ID_PARMNUM) 153 #define GROUPIDMASK 0x8000 154 #define GROUP_ALL_PARMNUM 0 155 #define GROUP_NAME_PARMNUM 1 156 #define GROUP_COMMENT_PARMNUM 2 157 #define GROUP_ATTRIBUTES_PARMNUM 3 158 #define GROUP_ALL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ALL_PARMNUM) 159 #define GROUP_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_NAME_PARMNUM) 160 #define GROUP_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_COMMENT_PARMNUM) 161 #define GROUP_ATTRIBUTES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ATTRIBUTES_PARMNUM) 162 #define GROUP_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_POSIX_ID_PARMNUM) 163 #define LOCALGROUP_NAME_PARMNUM 1 164 #define LOCALGROUP_COMMENT_PARMNUM 2 165 #define MAXPERMENTRIES 64 166 #define ACCESS_NONE 0 167 #define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM) 168 #define ACCESS_READ 1 169 #define ACCESS_WRITE 2 170 #define ACCESS_CREATE 4 171 #define ACCESS_EXEC 8 172 #define ACCESS_DELETE 16 173 #define ACCESS_ATRIB 32 174 #define ACCESS_PERM 64 175 #define ACCESS_GROUP 0x8000 176 #define ACCESS_AUDIT 1 177 #define ACCESS_SUCCESS_OPEN 16 178 #define ACCESS_SUCCESS_WRITE 32 179 #define ACCESS_SUCCESS_DELETE 64 180 #define ACCESS_SUCCESS_ACL 128 181 #define ACCESS_SUCCESS_MASK 240 182 #define ACCESS_FAIL_OPEN 256 183 #define ACCESS_FAIL_WRITE 512 184 #define ACCESS_FAIL_DELETE 1024 185 #define ACCESS_FAIL_ACL 2048 186 #define ACCESS_FAIL_MASK 3840 187 #define ACCESS_FAIL_SHIFT 4 188 #define ACCESS_RESOURCE_NAME_PARMNUM 1 189 #define ACCESS_ATTR_PARMNUM 2 190 #define ACCESS_COUNT_PARMNUM 3 191 #define ACCESS_ACCESS_LIST_PARMNUM 4 192 #define ACCESS_RESOURCE_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_RESOURCE_NAME_PARMNUM) 193 #define ACCESS_ATTR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ATTR_PARMNUM) 194 #define ACCESS_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_COUNT_PARMNUM) 195 #define ACCESS_ACCESS_LIST_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ACCESS_LIST_PARMNUM) 196 #define NETLOGON_REPLICATION_NEEDED 1 197 #define NETLOGON_REPLICATION_IN_PROGRESS 2 198 #define NETLOGON_FULL_SYNC_REPLICATION 4 199 #define NETLOGON_REDO_NEEDED 8 200 201 typedef struct _USER_INFO_0 { LPWSTR usri0_name; }USER_INFO_0,*PUSER_INFO_0,*LPUSER_INFO_0; 202 typedef struct _USER_INFO_1 { 203 LPWSTR usri1_name; 204 LPWSTR usri1_password; 205 DWORD usri1_password_age; 206 DWORD usri1_priv; 207 LPWSTR usri1_home_dir; 208 LPWSTR usri1_comment; 209 DWORD usri1_flags; 210 LPWSTR usri1_script_path; 211 }USER_INFO_1,*PUSER_INFO_1,*LPUSER_INFO_1; 212 typedef struct _USER_INFO_2 { 213 LPWSTR usri2_name; 214 LPWSTR usri2_password; 215 DWORD usri2_password_age; 216 DWORD usri2_priv; 217 LPWSTR usri2_home_dir; 218 LPWSTR usri2_comment; 219 DWORD usri2_flags; 220 LPWSTR usri2_script_path; 221 DWORD usri2_auth_flags; 222 LPWSTR usri2_full_name; 223 LPWSTR usri2_usr_comment; 224 LPWSTR usri2_parms; 225 LPWSTR usri2_workstations; 226 DWORD usri2_last_logon; 227 DWORD usri2_last_logoff; 228 DWORD usri2_acct_expires; 229 DWORD usri2_max_storage; 230 DWORD usri2_units_per_week; 231 PBYTE usri2_logon_hours; 232 DWORD usri2_bad_pw_count; 233 DWORD usri2_num_logons; 234 LPWSTR usri2_logon_server; 235 DWORD usri2_country_code; 236 DWORD usri2_code_page; 237 }USER_INFO_2,*PUSER_INFO_2,*LPUSER_INFO_2; 238 typedef struct _USER_INFO_3 { 239 LPWSTR usri3_name; 240 LPWSTR usri3_password; 241 DWORD usri3_password_age; 242 DWORD usri3_priv; 243 LPWSTR usri3_home_dir; 244 LPWSTR usri3_comment; 245 DWORD usri3_flags; 246 LPWSTR usri3_script_path; 247 DWORD usri3_auth_flags; 248 LPWSTR usri3_full_name; 249 LPWSTR usri3_usr_comment; 250 LPWSTR usri3_parms; 251 LPWSTR usri3_workstations; 252 DWORD usri3_last_logon; 253 DWORD usri3_last_logoff; 254 DWORD usri3_acct_expires; 255 DWORD usri3_max_storage; 256 DWORD usri3_units_per_week; 257 PBYTE usri3_logon_hours; 258 DWORD usri3_bad_pw_count; 259 DWORD usri3_num_logons; 260 LPWSTR usri3_logon_server; 261 DWORD usri3_country_code; 262 DWORD usri3_code_page; 263 DWORD usri3_user_id; 264 DWORD usri3_primary_group_id; 265 LPWSTR usri3_profile; 266 LPWSTR usri3_home_dir_drive; 267 DWORD usri3_password_expired; 268 }USER_INFO_3,*PUSER_INFO_3,*LPUSER_INFO_3; 269 typedef struct _USER_INFO_4 { 270 LPWSTR usri4_name; 271 LPWSTR usri4_password; 272 DWORD usri4_password_age; 273 DWORD usri4_priv; 274 LPWSTR usri4_home_dir; 275 LPWSTR usri4_comment; 276 DWORD usri4_flags; 277 LPWSTR usri4_script_path; 278 DWORD usri4_auth_flags; 279 LPWSTR usri4_full_name; 280 LPWSTR usri4_usr_comment; 281 LPWSTR usri4_parms; 282 LPWSTR usri4_workstations; 283 DWORD usri4_last_logon; 284 DWORD usri4_last_logoff; 285 DWORD usri4_acct_expires; 286 DWORD usri4_max_storage; 287 DWORD usri4_units_per_week; 288 PBYTE usri4_logon_hours; 289 DWORD usri4_bad_pw_count; 290 DWORD usri4_num_logons; 291 LPWSTR usri4_logon_server; 292 DWORD usri4_country_code; 293 DWORD usri4_code_page; 294 PSID usri4_user_sid; 295 DWORD usri4_primary_group_id; 296 LPWSTR usri4_profile; 297 LPWSTR usri4_home_dir_drive; 298 DWORD usri4_password_expired; 299 } USER_INFO_4, *PUSER_INFO_4, *LPUSER_INFO_4; 300 typedef struct _USER_INFO_10 { 301 LPWSTR usri10_name; 302 LPWSTR usri10_comment; 303 LPWSTR usri10_usr_comment; 304 LPWSTR usri10_full_name; 305 }USER_INFO_10,*PUSER_INFO_10,*LPUSER_INFO_10; 306 typedef struct _USER_INFO_11 { 307 LPWSTR usri11_name; 308 LPWSTR usri11_comment; 309 LPWSTR usri11_usr_comment; 310 LPWSTR usri11_full_name; 311 DWORD usri11_priv; 312 DWORD usri11_auth_flags; 313 DWORD usri11_password_age; 314 LPWSTR usri11_home_dir; 315 LPWSTR usri11_parms; 316 DWORD usri11_last_logon; 317 DWORD usri11_last_logoff; 318 DWORD usri11_bad_pw_count; 319 DWORD usri11_num_logons; 320 LPWSTR usri11_logon_server; 321 DWORD usri11_country_code; 322 LPWSTR usri11_workstations; 323 DWORD usri11_max_storage; 324 DWORD usri11_units_per_week; 325 PBYTE usri11_logon_hours; 326 DWORD usri11_code_page; 327 }USER_INFO_11,*PUSER_INFO_11,*LPUSER_INFO_11; 328 typedef struct _USER_INFO_20 { 329 LPWSTR usri20_name; 330 LPWSTR usri20_full_name; 331 LPWSTR usri20_comment; 332 DWORD usri20_flags; 333 DWORD usri20_user_id; 334 }USER_INFO_20,*PUSER_INFO_20,*LPUSER_INFO_20; 335 typedef struct _USER_INFO_21 { 336 BYTE usri21_password[ENCRYPTED_PWLEN]; 337 }USER_INFO_21,*PUSER_INFO_21,*LPUSER_INFO_21; 338 typedef struct _USER_INFO_22 { 339 LPWSTR usri22_name; 340 BYTE usri22_password[ENCRYPTED_PWLEN]; 341 DWORD usri22_password_age; 342 DWORD usri22_priv; 343 LPWSTR usri22_home_dir; 344 LPWSTR usri22_comment; 345 DWORD usri22_flags; 346 LPWSTR usri22_script_path; 347 DWORD usri22_auth_flags; 348 LPWSTR usri22_full_name; 349 LPWSTR usri22_usr_comment; 350 LPWSTR usri22_parms; 351 LPWSTR usri22_workstations; 352 DWORD usri22_last_logon; 353 DWORD usri22_last_logoff; 354 DWORD usri22_acct_expires; 355 DWORD usri22_max_storage; 356 DWORD usri22_units_per_week; 357 PBYTE usri22_logon_hours; 358 DWORD usri22_bad_pw_count; 359 DWORD usri22_num_logons; 360 LPWSTR usri22_logon_server; 361 DWORD usri22_country_code; 362 DWORD usri22_code_page; 363 }USER_INFO_22,*PUSER_INFO_22,*LPUSER_INFO_22; 364 typedef struct _USER_INFO_23 { 365 LPWSTR usri23_name; 366 LPWSTR usri23_full_name; 367 LPWSTR usri23_comment; 368 DWORD usri23_flags; 369 PSID usri23_user_sid; 370 } USER_INFO_23, *PUSER_INFO_23, *LPUSER_INFO_23; 371 typedef struct _USER_INFO_1003 { 372 LPWSTR usri1003_password; 373 } USER_INFO_1003,*PUSER_INFO_1003,*LPUSER_INFO_1003; 374 typedef struct _USER_INFO_1005 { 375 DWORD usri1005_priv; 376 } USER_INFO_1005,*PUSER_INFO_1005,*LPUSER_INFO_1005; 377 typedef struct _USER_INFO_1006 { 378 LPWSTR usri1006_home_dir; 379 } USER_INFO_1006,*PUSER_INFO_1006,*LPUSER_INFO_1006; 380 typedef struct _USER_INFO_1007 { 381 LPWSTR usri1007_comment; 382 } USER_INFO_1007,*PUSER_INFO_1007,*LPUSER_INFO_1007; 383 typedef struct _USER_INFO_1008 { 384 DWORD usri1008_flags; 385 } USER_INFO_1008,*PUSER_INFO_1008,*LPUSER_INFO_1008; 386 typedef struct _USER_INFO_1009 { 387 LPWSTR usri1009_script_path; 388 } USER_INFO_1009,*PUSER_INFO_1009,*LPUSER_INFO_1009; 389 typedef struct _USER_INFO_1010 { 390 DWORD usri1010_auth_flags; 391 } USER_INFO_1010,*PUSER_INFO_1010,*LPUSER_INFO_1010; 392 typedef struct _USER_INFO_1011 { 393 LPWSTR usri1011_full_name; 394 } USER_INFO_1011,*PUSER_INFO_1011,*LPUSER_INFO_1011; 395 typedef struct _USER_INFO_1012 { 396 LPWSTR usri1012_usr_comment; 397 } USER_INFO_1012,*PUSER_INFO_1012,*LPUSER_INFO_1012; 398 typedef struct _USER_INFO_1013 { 399 LPWSTR usri1013_parms; 400 } USER_INFO_1013,*PUSER_INFO_1013,*LPUSER_INFO_1013; 401 typedef struct _USER_INFO_1014 { 402 LPWSTR usri1014_workstations; 403 } USER_INFO_1014,*PUSER_INFO_1014,*LPUSER_INFO_1014; 404 typedef struct _USER_INFO_1017 { 405 DWORD usri1017_acct_expires; 406 } USER_INFO_1017,*PUSER_INFO_1017,*LPUSER_INFO_1017; 407 typedef struct _USER_INFO_1018 { 408 DWORD usri1018_max_storage; 409 } USER_INFO_1018,*PUSER_INFO_1018,*LPUSER_INFO_1018; 410 typedef struct _USER_INFO_1020 { 411 DWORD usri1020_units_per_week; 412 PBYTE usri1020_logon_hours; 413 } USER_INFO_1020,*PUSER_INFO_1020,*LPUSER_INFO_1020; 414 typedef struct _USER_INFO_1023 { 415 LPWSTR usri1023_logon_server; 416 } USER_INFO_1023,*PUSER_INFO_1023,*LPUSER_INFO_1023; 417 typedef struct _USER_INFO_1024 { 418 DWORD usri1024_country_code; 419 } USER_INFO_1024,*PUSER_INFO_1024,*LPUSER_INFO_1024; 420 typedef struct _USER_INFO_1025 { 421 DWORD usri1025_code_page; 422 } USER_INFO_1025,*PUSER_INFO_1025,*LPUSER_INFO_1025; 423 typedef struct _USER_INFO_1051 { 424 DWORD usri1051_primary_group_id; 425 } USER_INFO_1051,*PUSER_INFO_1051,*LPUSER_INFO_1051; 426 typedef struct _USER_INFO_1052 { 427 LPWSTR usri1052_profile; 428 } USER_INFO_1052,*PUSER_INFO_1052,*LPUSER_INFO_1052; 429 typedef struct _USER_INFO_1053 { 430 LPWSTR usri1053_home_dir_drive; 431 } USER_INFO_1053,*PUSER_INFO_1053,*LPUSER_INFO_1053; 432 typedef struct _USER_MODALS_INFO_0 { 433 DWORD usrmod0_min_passwd_len; 434 DWORD usrmod0_max_passwd_age; 435 DWORD usrmod0_min_passwd_age; 436 DWORD usrmod0_force_logoff; 437 DWORD usrmod0_password_hist_len; 438 }USER_MODALS_INFO_0,*PUSER_MODALS_INFO_0,*LPUSER_MODALS_INFO_0; 439 typedef struct _USER_MODALS_INFO_1 { 440 DWORD usrmod1_role; 441 LPWSTR usrmod1_primary; 442 }USER_MODALS_INFO_1,*PUSER_MODALS_INFO_1,*LPUSER_MODALS_INFO_1; 443 typedef struct _USER_MODALS_INFO_2 { 444 LPWSTR usrmod2_domain_name; 445 PSID usrmod2_domain_id; 446 }USER_MODALS_INFO_2,*PUSER_MODALS_INFO_2,*LPUSER_MODALS_INFO_2; 447 typedef struct _USER_MODALS_INFO_3 { 448 DWORD usrmod3_lockout_duration; 449 DWORD usrmod3_lockout_observation_window; 450 DWORD usrmod3_lockout_threshold; 451 }USER_MODALS_INFO_3,*PUSER_MODALS_INFO_3,*LPUSER_MODALS_INFO_3; 452 typedef struct _USER_MODALS_INFO_1001 { 453 DWORD usrmod1001_min_passwd_len; 454 } USER_MODALS_INFO_1001,*PUSER_MODALS_INFO_1001,*LPUSER_MODALS_INFO_1001; 455 typedef struct _USER_MODALS_INFO_1002 { 456 DWORD usrmod1002_max_passwd_age; 457 } USER_MODALS_INFO_1002,*PUSER_MODALS_INFO_1002,*LPUSER_MODALS_INFO_1002; 458 typedef struct _USER_MODALS_INFO_1003 { 459 DWORD usrmod1003_min_passwd_age; 460 } USER_MODALS_INFO_1003,*PUSER_MODALS_INFO_1003,*LPUSER_MODALS_INFO_1003; 461 typedef struct _USER_MODALS_INFO_1004 { 462 DWORD usrmod1004_force_logoff; 463 } USER_MODALS_INFO_1004,*PUSER_MODALS_INFO_1004,*LPUSER_MODALS_INFO_1004; 464 typedef struct _USER_MODALS_INFO_1005 { 465 DWORD usrmod1005_password_hist_len; 466 } USER_MODALS_INFO_1005,*PUSER_MODALS_INFO_1005,*LPUSER_MODALS_INFO_1005; 467 typedef struct _USER_MODALS_INFO_1006 { 468 DWORD usrmod1006_role; 469 } USER_MODALS_INFO_1006,*PUSER_MODALS_INFO_1006,*LPUSER_MODALS_INFO_1006; 470 typedef struct _USER_MODALS_INFO_1007 { 471 LPWSTR usrmod1007_primary; 472 } USER_MODALS_INFO_1007,*PUSER_MODALS_INFO_1007,*LPUSER_MODALS_INFO_1007; 473 typedef struct _GROUP_INFO_0 { 474 LPWSTR grpi0_name; 475 }GROUP_INFO_0,*PGROUP_INFO_0,*LPGROUP_INFO_0; 476 typedef struct _GROUP_INFO_1 { 477 LPWSTR grpi1_name; 478 LPWSTR grpi1_comment; 479 }GROUP_INFO_1,*PGROUP_INFO_1,*LPGROUP_INFO_1; 480 typedef struct _GROUP_INFO_2 { 481 LPWSTR grpi2_name; 482 LPWSTR grpi2_comment; 483 DWORD grpi2_group_id; 484 DWORD grpi2_attributes; 485 }GROUP_INFO_2,*PGROUP_INFO_2,*LPGROUP_INFO_2; 486 typedef struct _GROUP_INFO_3 { 487 LPWSTR grpi3_name; 488 LPWSTR grpi3_comment; 489 PSID grpi3_group_sid; 490 DWORD grpi3_attributes; 491 }GROUP_INFO_3,*PGROUP_INFO_3,*LPGROUP_INFO_3; 492 typedef struct _GROUP_INFO_1002 { 493 LPWSTR grpi1002_comment; 494 } GROUP_INFO_1002,*PGROUP_INFO_1002,*LPGROUP_INFO_1002; 495 typedef struct _GROUP_INFO_1005 { 496 DWORD grpi1005_attributes; 497 } GROUP_INFO_1005,*PGROUP_INFO_1005,*LPGROUP_INFO_1005; 498 typedef struct _GROUP_USERS_INFO_0 { 499 LPWSTR grui0_name; 500 } GROUP_USERS_INFO_0,*PGROUP_USERS_INFO_0,*LPGROUP_USERS_INFO_0; 501 typedef struct _GROUP_USERS_INFO_1 { 502 LPWSTR grui1_name; 503 DWORD grui1_attributes; 504 } GROUP_USERS_INFO_1,*PGROUP_USERS_INFO_1,*LPGROUP_USERS_INFO_1; 505 typedef struct _LOCALGROUP_INFO_0 { 506 LPWSTR lgrpi0_name; 507 }LOCALGROUP_INFO_0,*PLOCALGROUP_INFO_0,*LPLOCALGROUP_INFO_0; 508 typedef struct _LOCALGROUP_INFO_1 { 509 LPWSTR lgrpi1_name; 510 LPWSTR lgrpi1_comment; 511 }LOCALGROUP_INFO_1,*PLOCALGROUP_INFO_1,*LPLOCALGROUP_INFO_1; 512 typedef struct _LOCALGROUP_INFO_1002 { 513 LPWSTR lgrpi1002_comment; 514 }LOCALGROUP_INFO_1002,*PLOCALGROUP_INFO_1002,*LPLOCALGROUP_INFO_1002; 515 typedef struct _LOCALGROUP_MEMBERS_INFO_0 { 516 PSID lgrmi0_sid; 517 } LOCALGROUP_MEMBERS_INFO_0,*PLOCALGROUP_MEMBERS_INFO_0,*LPLOCALGROUP_MEMBERS_INFO_0; 518 typedef struct _LOCALGROUP_MEMBERS_INFO_1 { 519 PSID lgrmi1_sid; 520 SID_NAME_USE lgrmi1_sidusage; 521 LPWSTR lgrmi1_name; 522 } LOCALGROUP_MEMBERS_INFO_1,*PLOCALGROUP_MEMBERS_INFO_1,*LPLOCALGROUP_MEMBERS_INFO_1; 523 typedef struct _LOCALGROUP_MEMBERS_INFO_2 { 524 PSID lgrmi2_sid; 525 SID_NAME_USE lgrmi2_sidusage; 526 LPWSTR lgrmi2_domainandname; 527 } LOCALGROUP_MEMBERS_INFO_2,*PLOCALGROUP_MEMBERS_INFO_2,*LPLOCALGROUP_MEMBERS_INFO_2; 528 typedef struct _LOCALGROUP_MEMBERS_INFO_3 { 529 LPWSTR lgrmi3_domainandname; 530 } LOCALGROUP_MEMBERS_INFO_3,*PLOCALGROUP_MEMBERS_INFO_3, 531 *LPLOCALGROUP_MEMBERS_INFO_3; 532 typedef struct _LOCALGROUP_USERS_INFO_0 { 533 LPWSTR lgrui0_name; 534 } LOCALGROUP_USERS_INFO_0,*PLOCALGROUP_USERS_INFO_0,*LPLOCALGROUP_USERS_INFO_0; 535 typedef struct _NET_DISPLAY_USER { 536 LPWSTR usri1_name; 537 LPWSTR usri1_comment; 538 DWORD usri1_flags; 539 LPWSTR usri1_full_name; 540 DWORD usri1_user_id; 541 DWORD usri1_next_index; 542 } NET_DISPLAY_USER,*PNET_DISPLAY_USER; 543 typedef struct _NET_DISPLAY_MACHINE { 544 LPWSTR usri2_name; 545 LPWSTR usri2_comment; 546 DWORD usri2_flags; 547 DWORD usri2_user_id; 548 DWORD usri2_next_index; 549 } NET_DISPLAY_MACHINE,*PNET_DISPLAY_MACHINE; 550 typedef struct _NET_DISPLAY_GROUP { 551 LPWSTR grpi3_name; 552 LPWSTR grpi3_comment; 553 DWORD grpi3_group_id; 554 DWORD grpi3_attributes; 555 DWORD grpi3_next_index; 556 } NET_DISPLAY_GROUP,*PNET_DISPLAY_GROUP; 557 typedef struct _ACCESS_INFO_0 { 558 LPTSTR acc0_resource_name; 559 }ACCESS_INFO_0,*PACCESS_INFO_0,*LPACCESS_INFO_0; 560 typedef struct _ACCESS_INFO_1 { 561 LPTSTR acc1_resource_name; 562 DWORD acc1_attr; 563 DWORD acc1_count; 564 }ACCESS_INFO_1,*PACCESS_INFO_1,*LPACCESS_INFO_1; 565 typedef struct _ACCESS_INFO_1002 { 566 DWORD acc1002_attr; 567 } ACCESS_INFO_1002,*PACCESS_INFO_1002,*LPACCESS_INFO_1002; 568 typedef struct _ACCESS_LIST { 569 LPTSTR acl_ugname; 570 DWORD acl_access; 571 }ACCESS_LIST,*PACCESS_LIST,*LPACCESS_LIST; 572 typedef struct _NETLOGON_INFO_1 { 573 DWORD netlog1_flags; 574 NET_API_STATUS netlog1_pdc_connection_status; 575 } NETLOGON_INFO_1,*PNETLOGON_INFO_1; 576 typedef struct _NETLOGON_INFO_2 { 577 DWORD netlog2_flags; 578 NET_API_STATUS netlog2_pdc_connection_status; 579 LPWSTR netlog2_trusted_dc_name; 580 NET_API_STATUS netlog2_tc_connection_status; 581 } NETLOGON_INFO_2,*PNETLOGON_INFO_2; 582 typedef struct _NETLOGON_INFO_3 { 583 DWORD netlog3_flags; 584 DWORD netlog3_logon_attempts; 585 DWORD netlog3_reserved1; 586 DWORD netlog3_reserved2; 587 DWORD netlog3_reserved3; 588 DWORD netlog3_reserved4; 589 DWORD netlog3_reserved5; 590 } NETLOGON_INFO_3,*PNETLOGON_INFO_3; 591 592 #ifndef _NTDEF_ 593 typedef _Return_type_success_(return >= 0) LONG NTSTATUS; 594 typedef NTSTATUS *PNTSTATUS; 595 #endif 596 597 #if 0 598 /* MS has these defined, but the RxNetAccessXX functions aren't documented nor do 599 they exist in any headers */ 600 #define NetAccessAdd RxNetAccessAdd 601 #define NetAccessEnum RxNetAccessEnum 602 #define NetAccessGetInfo RxNetAccessGetInfo 603 #define NetAccessSetInfo RxNetAccessSetInfo 604 #define NetAccessDel RxNetAccessDel 605 #define NetAccessGetUserPerms RxNetAccessGetUserPerms 606 /* These are obsolete */ 607 NET_API_STATUS WINAPI NetAccessAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 608 NET_API_STATUS WINAPI NetAccessEnum(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 609 NET_API_STATUS WINAPI NetAccessGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 610 NET_API_STATUS WINAPI NetAccessSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 611 NET_API_STATUS WINAPI NetAccessDel(LPCWSTR,LPCWSTR); 612 NET_API_STATUS WINAPI NetAccessGetUserPerms(LPCWSTR,LPCWSTR,LPCWSTR,PDWORD); 613 #endif 614 615 NET_API_STATUS WINAPI NetUserAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 616 NET_API_STATUS WINAPI NetUserEnum(LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 617 NET_API_STATUS WINAPI NetUserGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 618 NET_API_STATUS WINAPI NetUserSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 619 NET_API_STATUS WINAPI NetUserDel(LPCWSTR,LPCWSTR); 620 NET_API_STATUS WINAPI NetUserGetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); 621 NET_API_STATUS WINAPI NetUserSetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 622 NET_API_STATUS WINAPI NetUserGetLocalGroups(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); 623 NET_API_STATUS WINAPI NetUserModalsGet(LPCWSTR,DWORD,PBYTE*); 624 NET_API_STATUS WINAPI NetUserModalsSet(LPCWSTR,DWORD,PBYTE,PDWORD); 625 NET_API_STATUS WINAPI NetUserChangePassword(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); 626 NET_API_STATUS WINAPI NetGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 627 NET_API_STATUS WINAPI NetGroupAddUser(LPCWSTR,LPCWSTR,LPCWSTR); 628 NET_API_STATUS WINAPI NetGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 629 NET_API_STATUS WINAPI NetGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 630 NET_API_STATUS WINAPI NetGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 631 NET_API_STATUS WINAPI NetGroupDel(LPCWSTR,LPCWSTR); 632 NET_API_STATUS WINAPI NetGroupDelUser(LPCWSTR,LPCWSTR,LPCWSTR); 633 NET_API_STATUS WINAPI NetGroupGetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 634 NET_API_STATUS WINAPI NetGroupSetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 635 NET_API_STATUS WINAPI NetLocalGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 636 NET_API_STATUS WINAPI NetLocalGroupAddMember(LPCWSTR,LPCWSTR,PSID); 637 NET_API_STATUS WINAPI NetLocalGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 638 NET_API_STATUS WINAPI NetLocalGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 639 NET_API_STATUS WINAPI NetLocalGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 640 NET_API_STATUS WINAPI NetLocalGroupDel(LPCWSTR,LPCWSTR); 641 NET_API_STATUS WINAPI NetLocalGroupDelMember(LPCWSTR,LPCWSTR,PSID); 642 NET_API_STATUS WINAPI NetLocalGroupGetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD, 643 PDWORD,PDWORD,PDWORD_PTR); 644 NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 645 NET_API_STATUS WINAPI NetLocalGroupAddMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 646 NET_API_STATUS WINAPI NetLocalGroupDelMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 647 NET_API_STATUS WINAPI NetQueryDisplayInformation(LPCWSTR,DWORD,DWORD,DWORD,DWORD,PDWORD,PVOID*); 648 NET_API_STATUS WINAPI NetGetDisplayInformationIndex(LPCWSTR,DWORD,LPCWSTR,PDWORD); 649 NET_API_STATUS WINAPI NetGetDCName(LPCWSTR,LPCWSTR,PBYTE*); 650 NET_API_STATUS WINAPI NetGetAnyDCName(LPCWSTR,LPCWSTR,PBYTE*); 651 NET_API_STATUS WINAPI I_NetLogonControl(LPCWSTR,DWORD,DWORD,PBYTE*); 652 NET_API_STATUS WINAPI I_NetLogonControl2(LPCWSTR,DWORD,DWORD,PBYTE,PBYTE*); 653 NTSTATUS WINAPI NetEnumerateTrustedDomains(LPWSTR,LPWSTR*); 654 #ifdef __cplusplus 655 } 656 #endif 657 #endif 658