Reactos
at master 657 lines 26 kB view raw
1#ifndef _LMACCESS_H 2#define _LMACCESS_H 3 4#ifdef __cplusplus 5extern "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 201typedef struct _USER_INFO_0 { LPWSTR usri0_name; }USER_INFO_0,*PUSER_INFO_0,*LPUSER_INFO_0; 202typedef 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; 212typedef 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; 238typedef 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; 269typedef 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; 300typedef 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; 306typedef 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; 328typedef 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; 335typedef struct _USER_INFO_21 { 336 BYTE usri21_password[ENCRYPTED_PWLEN]; 337}USER_INFO_21,*PUSER_INFO_21,*LPUSER_INFO_21; 338typedef 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; 364typedef 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; 371typedef struct _USER_INFO_1003 { 372 LPWSTR usri1003_password; 373} USER_INFO_1003,*PUSER_INFO_1003,*LPUSER_INFO_1003; 374typedef struct _USER_INFO_1005 { 375 DWORD usri1005_priv; 376} USER_INFO_1005,*PUSER_INFO_1005,*LPUSER_INFO_1005; 377typedef struct _USER_INFO_1006 { 378 LPWSTR usri1006_home_dir; 379} USER_INFO_1006,*PUSER_INFO_1006,*LPUSER_INFO_1006; 380typedef struct _USER_INFO_1007 { 381 LPWSTR usri1007_comment; 382} USER_INFO_1007,*PUSER_INFO_1007,*LPUSER_INFO_1007; 383typedef struct _USER_INFO_1008 { 384 DWORD usri1008_flags; 385} USER_INFO_1008,*PUSER_INFO_1008,*LPUSER_INFO_1008; 386typedef struct _USER_INFO_1009 { 387 LPWSTR usri1009_script_path; 388} USER_INFO_1009,*PUSER_INFO_1009,*LPUSER_INFO_1009; 389typedef struct _USER_INFO_1010 { 390 DWORD usri1010_auth_flags; 391} USER_INFO_1010,*PUSER_INFO_1010,*LPUSER_INFO_1010; 392typedef struct _USER_INFO_1011 { 393 LPWSTR usri1011_full_name; 394} USER_INFO_1011,*PUSER_INFO_1011,*LPUSER_INFO_1011; 395typedef struct _USER_INFO_1012 { 396 LPWSTR usri1012_usr_comment; 397} USER_INFO_1012,*PUSER_INFO_1012,*LPUSER_INFO_1012; 398typedef struct _USER_INFO_1013 { 399 LPWSTR usri1013_parms; 400} USER_INFO_1013,*PUSER_INFO_1013,*LPUSER_INFO_1013; 401typedef struct _USER_INFO_1014 { 402 LPWSTR usri1014_workstations; 403} USER_INFO_1014,*PUSER_INFO_1014,*LPUSER_INFO_1014; 404typedef struct _USER_INFO_1017 { 405 DWORD usri1017_acct_expires; 406} USER_INFO_1017,*PUSER_INFO_1017,*LPUSER_INFO_1017; 407typedef struct _USER_INFO_1018 { 408 DWORD usri1018_max_storage; 409} USER_INFO_1018,*PUSER_INFO_1018,*LPUSER_INFO_1018; 410typedef 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; 414typedef struct _USER_INFO_1023 { 415 LPWSTR usri1023_logon_server; 416} USER_INFO_1023,*PUSER_INFO_1023,*LPUSER_INFO_1023; 417typedef struct _USER_INFO_1024 { 418 DWORD usri1024_country_code; 419} USER_INFO_1024,*PUSER_INFO_1024,*LPUSER_INFO_1024; 420typedef struct _USER_INFO_1025 { 421 DWORD usri1025_code_page; 422} USER_INFO_1025,*PUSER_INFO_1025,*LPUSER_INFO_1025; 423typedef struct _USER_INFO_1051 { 424 DWORD usri1051_primary_group_id; 425} USER_INFO_1051,*PUSER_INFO_1051,*LPUSER_INFO_1051; 426typedef struct _USER_INFO_1052 { 427 LPWSTR usri1052_profile; 428} USER_INFO_1052,*PUSER_INFO_1052,*LPUSER_INFO_1052; 429typedef struct _USER_INFO_1053 { 430 LPWSTR usri1053_home_dir_drive; 431} USER_INFO_1053,*PUSER_INFO_1053,*LPUSER_INFO_1053; 432typedef 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; 439typedef 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; 443typedef 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; 447typedef 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; 452typedef struct _USER_MODALS_INFO_1001 { 453 DWORD usrmod1001_min_passwd_len; 454} USER_MODALS_INFO_1001,*PUSER_MODALS_INFO_1001,*LPUSER_MODALS_INFO_1001; 455typedef struct _USER_MODALS_INFO_1002 { 456 DWORD usrmod1002_max_passwd_age; 457} USER_MODALS_INFO_1002,*PUSER_MODALS_INFO_1002,*LPUSER_MODALS_INFO_1002; 458typedef struct _USER_MODALS_INFO_1003 { 459 DWORD usrmod1003_min_passwd_age; 460} USER_MODALS_INFO_1003,*PUSER_MODALS_INFO_1003,*LPUSER_MODALS_INFO_1003; 461typedef struct _USER_MODALS_INFO_1004 { 462 DWORD usrmod1004_force_logoff; 463} USER_MODALS_INFO_1004,*PUSER_MODALS_INFO_1004,*LPUSER_MODALS_INFO_1004; 464typedef struct _USER_MODALS_INFO_1005 { 465 DWORD usrmod1005_password_hist_len; 466} USER_MODALS_INFO_1005,*PUSER_MODALS_INFO_1005,*LPUSER_MODALS_INFO_1005; 467typedef struct _USER_MODALS_INFO_1006 { 468 DWORD usrmod1006_role; 469} USER_MODALS_INFO_1006,*PUSER_MODALS_INFO_1006,*LPUSER_MODALS_INFO_1006; 470typedef struct _USER_MODALS_INFO_1007 { 471 LPWSTR usrmod1007_primary; 472} USER_MODALS_INFO_1007,*PUSER_MODALS_INFO_1007,*LPUSER_MODALS_INFO_1007; 473typedef struct _GROUP_INFO_0 { 474 LPWSTR grpi0_name; 475}GROUP_INFO_0,*PGROUP_INFO_0,*LPGROUP_INFO_0; 476typedef struct _GROUP_INFO_1 { 477 LPWSTR grpi1_name; 478 LPWSTR grpi1_comment; 479}GROUP_INFO_1,*PGROUP_INFO_1,*LPGROUP_INFO_1; 480typedef 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; 486typedef 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; 492typedef struct _GROUP_INFO_1002 { 493 LPWSTR grpi1002_comment; 494} GROUP_INFO_1002,*PGROUP_INFO_1002,*LPGROUP_INFO_1002; 495typedef struct _GROUP_INFO_1005 { 496 DWORD grpi1005_attributes; 497} GROUP_INFO_1005,*PGROUP_INFO_1005,*LPGROUP_INFO_1005; 498typedef struct _GROUP_USERS_INFO_0 { 499 LPWSTR grui0_name; 500} GROUP_USERS_INFO_0,*PGROUP_USERS_INFO_0,*LPGROUP_USERS_INFO_0; 501typedef 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; 505typedef struct _LOCALGROUP_INFO_0 { 506 LPWSTR lgrpi0_name; 507}LOCALGROUP_INFO_0,*PLOCALGROUP_INFO_0,*LPLOCALGROUP_INFO_0; 508typedef struct _LOCALGROUP_INFO_1 { 509 LPWSTR lgrpi1_name; 510 LPWSTR lgrpi1_comment; 511}LOCALGROUP_INFO_1,*PLOCALGROUP_INFO_1,*LPLOCALGROUP_INFO_1; 512typedef struct _LOCALGROUP_INFO_1002 { 513 LPWSTR lgrpi1002_comment; 514}LOCALGROUP_INFO_1002,*PLOCALGROUP_INFO_1002,*LPLOCALGROUP_INFO_1002; 515typedef struct _LOCALGROUP_MEMBERS_INFO_0 { 516 PSID lgrmi0_sid; 517} LOCALGROUP_MEMBERS_INFO_0,*PLOCALGROUP_MEMBERS_INFO_0,*LPLOCALGROUP_MEMBERS_INFO_0; 518typedef 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; 523typedef 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; 528typedef struct _LOCALGROUP_MEMBERS_INFO_3 { 529 LPWSTR lgrmi3_domainandname; 530} LOCALGROUP_MEMBERS_INFO_3,*PLOCALGROUP_MEMBERS_INFO_3, 531*LPLOCALGROUP_MEMBERS_INFO_3; 532typedef struct _LOCALGROUP_USERS_INFO_0 { 533 LPWSTR lgrui0_name; 534} LOCALGROUP_USERS_INFO_0,*PLOCALGROUP_USERS_INFO_0,*LPLOCALGROUP_USERS_INFO_0; 535typedef 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; 543typedef 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; 550typedef 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; 557typedef struct _ACCESS_INFO_0 { 558 LPTSTR acc0_resource_name; 559}ACCESS_INFO_0,*PACCESS_INFO_0,*LPACCESS_INFO_0; 560typedef 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; 565typedef struct _ACCESS_INFO_1002 { 566 DWORD acc1002_attr; 567} ACCESS_INFO_1002,*PACCESS_INFO_1002,*LPACCESS_INFO_1002; 568typedef struct _ACCESS_LIST { 569 LPTSTR acl_ugname; 570 DWORD acl_access; 571}ACCESS_LIST,*PACCESS_LIST,*LPACCESS_LIST; 572typedef struct _NETLOGON_INFO_1 { 573 DWORD netlog1_flags; 574 NET_API_STATUS netlog1_pdc_connection_status; 575} NETLOGON_INFO_1,*PNETLOGON_INFO_1; 576typedef 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; 582typedef 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_ 593typedef _Return_type_success_(return >= 0) LONG NTSTATUS; 594typedef 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 */ 607NET_API_STATUS WINAPI NetAccessAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 608NET_API_STATUS WINAPI NetAccessEnum(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 609NET_API_STATUS WINAPI NetAccessGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 610NET_API_STATUS WINAPI NetAccessSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 611NET_API_STATUS WINAPI NetAccessDel(LPCWSTR,LPCWSTR); 612NET_API_STATUS WINAPI NetAccessGetUserPerms(LPCWSTR,LPCWSTR,LPCWSTR,PDWORD); 613#endif 614 615NET_API_STATUS WINAPI NetUserAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 616NET_API_STATUS WINAPI NetUserEnum(LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 617NET_API_STATUS WINAPI NetUserGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 618NET_API_STATUS WINAPI NetUserSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 619NET_API_STATUS WINAPI NetUserDel(LPCWSTR,LPCWSTR); 620NET_API_STATUS WINAPI NetUserGetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); 621NET_API_STATUS WINAPI NetUserSetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 622NET_API_STATUS WINAPI NetUserGetLocalGroups(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); 623NET_API_STATUS WINAPI NetUserModalsGet(LPCWSTR,DWORD,PBYTE*); 624NET_API_STATUS WINAPI NetUserModalsSet(LPCWSTR,DWORD,PBYTE,PDWORD); 625NET_API_STATUS WINAPI NetUserChangePassword(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); 626NET_API_STATUS WINAPI NetGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 627NET_API_STATUS WINAPI NetGroupAddUser(LPCWSTR,LPCWSTR,LPCWSTR); 628NET_API_STATUS WINAPI NetGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 629NET_API_STATUS WINAPI NetGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 630NET_API_STATUS WINAPI NetGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 631NET_API_STATUS WINAPI NetGroupDel(LPCWSTR,LPCWSTR); 632NET_API_STATUS WINAPI NetGroupDelUser(LPCWSTR,LPCWSTR,LPCWSTR); 633NET_API_STATUS WINAPI NetGroupGetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 634NET_API_STATUS WINAPI NetGroupSetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 635NET_API_STATUS WINAPI NetLocalGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD); 636NET_API_STATUS WINAPI NetLocalGroupAddMember(LPCWSTR,LPCWSTR,PSID); 637NET_API_STATUS WINAPI NetLocalGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR); 638NET_API_STATUS WINAPI NetLocalGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); 639NET_API_STATUS WINAPI NetLocalGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); 640NET_API_STATUS WINAPI NetLocalGroupDel(LPCWSTR,LPCWSTR); 641NET_API_STATUS WINAPI NetLocalGroupDelMember(LPCWSTR,LPCWSTR,PSID); 642NET_API_STATUS WINAPI NetLocalGroupGetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD, 643PDWORD,PDWORD,PDWORD_PTR); 644NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 645NET_API_STATUS WINAPI NetLocalGroupAddMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 646NET_API_STATUS WINAPI NetLocalGroupDelMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD); 647NET_API_STATUS WINAPI NetQueryDisplayInformation(LPCWSTR,DWORD,DWORD,DWORD,DWORD,PDWORD,PVOID*); 648NET_API_STATUS WINAPI NetGetDisplayInformationIndex(LPCWSTR,DWORD,LPCWSTR,PDWORD); 649NET_API_STATUS WINAPI NetGetDCName(LPCWSTR,LPCWSTR,PBYTE*); 650NET_API_STATUS WINAPI NetGetAnyDCName(LPCWSTR,LPCWSTR,PBYTE*); 651NET_API_STATUS WINAPI I_NetLogonControl(LPCWSTR,DWORD,DWORD,PBYTE*); 652NET_API_STATUS WINAPI I_NetLogonControl2(LPCWSTR,DWORD,DWORD,PBYTE,PBYTE*); 653NTSTATUS WINAPI NetEnumerateTrustedDomains(LPWSTR,LPWSTR*); 654#ifdef __cplusplus 655} 656#endif 657#endif