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