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