| // Copyright © 2015, skdltmxn |
| // Licensed under the MIT License <LICENSE.md> |
| // This file contains structures, function prototypes, and definitions |
| // for the NetUser, NetUserModals, NetGroup, NetAccess, and NetLogon API. |
| STRUCT!{struct USER_INFO_0 { |
| usri0_name: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_0 = *mut USER_INFO_0; |
| pub type LPUSER_INFO_0 = *mut USER_INFO_0; |
| STRUCT!{struct USER_INFO_1 { |
| usri1_name: ::LPWSTR, |
| usri1_password: ::LPWSTR, |
| usri1_password_age: ::DWORD, |
| usri1_priv: ::DWORD, |
| usri1_home_dir: ::LPWSTR, |
| usri1_comment: ::LPWSTR, |
| usri1_flags: ::DWORD, |
| usri1_script_path: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1 = *mut USER_INFO_1; |
| pub type LPUSER_INFO_1 = *mut USER_INFO_1; |
| STRUCT!{struct USER_INFO_2 { |
| usri2_name: ::LPWSTR, |
| usri2_password: ::LPWSTR, |
| usri2_password_age: ::DWORD, |
| usri2_priv: ::DWORD, |
| usri2_home_dir: ::LPWSTR, |
| usri2_comment: ::LPWSTR, |
| usri2_flags: ::DWORD, |
| usri2_script_path: ::LPWSTR, |
| usri2_auth_flags: ::DWORD, |
| usri2_full_name: ::LPWSTR, |
| usri2_usr_comment: ::LPWSTR, |
| usri2_parms: ::LPWSTR, |
| usri2_workstations: ::LPWSTR, |
| usri2_last_logon: ::DWORD, |
| usri2_last_logoff: ::DWORD, |
| usri2_acct_expires: ::DWORD, |
| usri2_max_storage: ::DWORD, |
| usri2_units_per_week: ::DWORD, |
| usri2_logon_hours: ::PBYTE, |
| usri2_bad_pw_count: ::DWORD, |
| usri2_num_logons: ::DWORD, |
| usri2_logon_server: ::LPWSTR, |
| usri2_country_code: ::DWORD, |
| usri2_code_page: ::DWORD, |
| }} |
| pub type PUSER_INFO_2 = *mut USER_INFO_2; |
| pub type LPUSER_INFO_2 = *mut USER_INFO_2; |
| STRUCT!{struct USER_INFO_3 { |
| usri3_name: ::LPWSTR, |
| usri3_password: ::LPWSTR, |
| usri3_password_age: ::DWORD, |
| usri3_priv: ::DWORD, |
| usri3_home_dir: ::LPWSTR, |
| usri3_comment: ::LPWSTR, |
| usri3_flags: ::DWORD, |
| usri3_script_path: ::LPWSTR, |
| usri3_auth_flags: ::DWORD, |
| usri3_full_name: ::LPWSTR, |
| usri3_usr_comment: ::LPWSTR, |
| usri3_parms: ::LPWSTR, |
| usri3_workstations: ::LPWSTR, |
| usri3_last_logon: ::DWORD, |
| usri3_last_logoff: ::DWORD, |
| usri3_acct_expires: ::DWORD, |
| usri3_max_storage: ::DWORD, |
| usri3_units_per_week: ::DWORD, |
| usri3_logon_hours: ::PBYTE, |
| usri3_bad_pw_count: ::DWORD, |
| usri3_num_logons: ::DWORD, |
| usri3_logon_server: ::LPWSTR, |
| usri3_country_code: ::DWORD, |
| usri3_code_page: ::DWORD, |
| usri3_user_id: ::DWORD, |
| usri3_primary_group_id: ::DWORD, |
| usri3_profile: ::LPWSTR, |
| usri3_home_dir_drive: ::LPWSTR, |
| usri3_password_expired: ::DWORD, |
| }} |
| pub type PUSER_INFO_3 = *mut USER_INFO_3; |
| pub type LPUSER_INFO_3 = *mut USER_INFO_3; |
| STRUCT!{struct USER_INFO_4 { |
| usri4_name: ::LPWSTR, |
| usri4_password: ::LPWSTR, |
| usri4_password_age: ::DWORD, |
| usri4_priv: ::DWORD, |
| usri4_home_dir: ::LPWSTR, |
| usri4_comment: ::LPWSTR, |
| usri4_flags: ::DWORD, |
| usri4_script_path: ::LPWSTR, |
| usri4_auth_flags: ::DWORD, |
| usri4_full_name: ::LPWSTR, |
| usri4_usr_comment: ::LPWSTR, |
| usri4_parms: ::LPWSTR, |
| usri4_workstations: ::LPWSTR, |
| usri4_last_logon: ::DWORD, |
| usri4_last_logoff: ::DWORD, |
| usri4_acct_expires: ::DWORD, |
| usri4_max_storage: ::DWORD, |
| usri4_units_per_week: ::DWORD, |
| usri4_logon_hours: ::PBYTE, |
| usri4_bad_pw_count: ::DWORD, |
| usri4_num_logons: ::DWORD, |
| usri4_logon_server: ::LPWSTR, |
| usri4_country_code: ::DWORD, |
| usri4_code_page: ::DWORD, |
| usri4_user_sid: ::PSID, |
| usri4_primary_group_id: ::DWORD, |
| usri4_profile: ::LPWSTR, |
| usri4_home_dir_drive: ::LPWSTR, |
| usri4_password_expired: ::DWORD, |
| }} |
| pub type PUSER_INFO_4 = *mut USER_INFO_4; |
| pub type LPUSER_INFO_4 = *mut USER_INFO_4; |
| STRUCT!{struct USER_INFO_10 { |
| usri10_name: ::LPWSTR, |
| usri10_comment: ::LPWSTR, |
| usri10_usr_comment: ::LPWSTR, |
| usri10_full_name: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_10 = *mut USER_INFO_10; |
| pub type LPUSER_INFO_10 = *mut USER_INFO_10; |
| STRUCT!{struct USER_INFO_11 { |
| usri11_name: ::LPWSTR, |
| usri11_comment: ::LPWSTR, |
| usri11_usr_comment: ::LPWSTR, |
| usri11_full_name: ::LPWSTR, |
| usri11_priv: ::DWORD, |
| usri11_auth_flags: ::DWORD, |
| usri11_password_age: ::DWORD, |
| usri11_home_dir: ::LPWSTR, |
| usri11_parms: ::LPWSTR, |
| usri11_last_logon: ::DWORD, |
| usri11_last_logoff: ::DWORD, |
| usri11_bad_pw_count: ::DWORD, |
| usri11_num_logons: ::DWORD, |
| usri11_logon_server: ::LPWSTR, |
| usri11_country_code: ::DWORD, |
| usri11_workstations: ::LPWSTR, |
| usri11_max_storage: ::DWORD, |
| usri11_units_per_week: ::DWORD, |
| usri11_logon_hours: ::PBYTE, |
| usri11_code_page: ::DWORD, |
| }} |
| pub type PUSER_INFO_11 = *mut USER_INFO_11; |
| pub type LPUSER_INFO_11 = *mut USER_INFO_11; |
| STRUCT!{struct USER_INFO_20 { |
| usri20_name: ::LPWSTR, |
| usri20_full_name: ::LPWSTR, |
| usri20_comment: ::LPWSTR, |
| usri20_flags: ::DWORD, |
| usri20_user_id: ::DWORD, |
| }} |
| pub type PUSER_INFO_20 = *mut USER_INFO_20; |
| pub type LPUSER_INFO_20 = *mut USER_INFO_20; |
| STRUCT!{struct USER_INFO_21 { |
| usri21_password: [::BYTE; ::ENCRYPTED_PWLEN], |
| }} |
| pub type PUSER_INFO_21 = *mut USER_INFO_21; |
| pub type LPUSER_INFO_21 = *mut USER_INFO_21; |
| STRUCT!{struct USER_INFO_22 { |
| usri22_name: ::LPWSTR, |
| usri22_password: [::BYTE; ::ENCRYPTED_PWLEN], |
| usri22_password_age: ::DWORD, |
| usri22_priv: ::DWORD, |
| usri22_home_dir: ::LPWSTR, |
| usri22_comment: ::LPWSTR, |
| usri22_flags: ::DWORD, |
| usri22_script_path: ::LPWSTR, |
| usri22_auth_flags: ::DWORD, |
| usri22_full_name: ::LPWSTR, |
| usri22_usr_comment: ::LPWSTR, |
| usri22_parms: ::LPWSTR, |
| usri22_workstations: ::LPWSTR, |
| usri22_last_logon: ::DWORD, |
| usri22_last_logoff: ::DWORD, |
| usri22_acct_expires: ::DWORD, |
| usri22_max_storage: ::DWORD, |
| usri22_units_per_week: ::DWORD, |
| usri22_logon_hours: ::PBYTE, |
| usri22_bad_pw_count: ::DWORD, |
| usri22_num_logons: ::DWORD, |
| usri22_logon_server: ::LPWSTR, |
| usri22_country_code: ::DWORD, |
| usri22_code_page: ::DWORD, |
| }} |
| pub type PUSER_INFO_22 = *mut USER_INFO_22; |
| pub type LPUSER_INFO_22 = *mut USER_INFO_22; |
| STRUCT!{struct USER_INFO_23 { |
| usri23_name: ::LPWSTR, |
| usri23_full_name: ::LPWSTR, |
| usri23_comment: ::LPWSTR, |
| usri23_flags: ::DWORD, |
| usri23_user_sid: ::PSID, |
| }} |
| pub type PUSER_INFO_23 = *mut USER_INFO_23; |
| pub type LPUSER_INFO_23 = *mut USER_INFO_23; |
| STRUCT!{struct USER_INFO_24 { |
| usri24_internet_identity: ::BOOL, |
| usri24_flags: ::DWORD, |
| usri24_internet_provider_name: ::LPWSTR, |
| usri24_internet_principal_name: ::LPWSTR, |
| usri24_user_sid: ::PSID, |
| }} |
| pub type PUSER_INFO_24 = *mut USER_INFO_24; |
| pub type LPUSER_INFO_24 = *mut USER_INFO_24; |
| STRUCT!{struct USER_INFO_1003 { |
| usri1003_password: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1003 = *mut USER_INFO_1003; |
| pub type LPUSER_INFO_1003 = *mut USER_INFO_1003; |
| STRUCT!{struct USER_INFO_1005 { |
| usri1005_priv: ::DWORD, |
| }} |
| pub type PUSER_INFO_1005 = *mut USER_INFO_1005; |
| pub type LPUSER_INFO_1005 = *mut USER_INFO_1005; |
| STRUCT!{struct USER_INFO_1006 { |
| usri1006_home_dir: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1006 = *mut USER_INFO_1006; |
| pub type LPUSER_INFO_1006 = *mut USER_INFO_1006; |
| STRUCT!{struct USER_INFO_1007 { |
| usri1007_comment: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1007 = *mut USER_INFO_1007; |
| pub type LPUSER_INFO_1007 = *mut USER_INFO_1007; |
| STRUCT!{struct USER_INFO_1008 { |
| usri1008_flags: ::DWORD, |
| }} |
| pub type PUSER_INFO_1008 = *mut USER_INFO_1008; |
| pub type LPUSER_INFO_1008 = *mut USER_INFO_1008; |
| STRUCT!{struct USER_INFO_1009 { |
| usri1009_script_path: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1009 = *mut USER_INFO_1009; |
| pub type LPUSER_INFO_1009 = *mut USER_INFO_1009; |
| STRUCT!{struct USER_INFO_1010 { |
| usri1010_auth_flags: ::DWORD, |
| }} |
| pub type PUSER_INFO_1010 = *mut USER_INFO_1010; |
| pub type LPUSER_INFO_1010 = *mut USER_INFO_1010; |
| STRUCT!{struct USER_INFO_1011 { |
| usri1011_full_name: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1011 = *mut USER_INFO_1011; |
| pub type LPUSER_INFO_1011 = *mut USER_INFO_1011; |
| STRUCT!{struct USER_INFO_1012 { |
| usri1012_usr_comment: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1012 = *mut USER_INFO_1012; |
| pub type LPUSER_INFO_1012 = *mut USER_INFO_1012; |
| STRUCT!{struct USER_INFO_1013 { |
| usri1013_parms: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1013 = *mut USER_INFO_1013; |
| pub type LPUSER_INFO_1013 = *mut USER_INFO_1013; |
| STRUCT!{struct USER_INFO_1014 { |
| usri1014_workstations: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1014 = *mut USER_INFO_1014; |
| pub type LPUSER_INFO_1014 = *mut USER_INFO_1014; |
| STRUCT!{struct USER_INFO_1017 { |
| usri1017_acct_expires: ::DWORD, |
| }} |
| pub type PUSER_INFO_1017 = *mut USER_INFO_1017; |
| pub type LPUSER_INFO_1017 = *mut USER_INFO_1017; |
| STRUCT!{struct USER_INFO_1018 { |
| usri1018_max_storage: ::DWORD, |
| }} |
| pub type PUSER_INFO_1018 = *mut USER_INFO_1018; |
| pub type LPUSER_INFO_1018 = *mut USER_INFO_1018; |
| STRUCT!{struct USER_INFO_1020 { |
| usri1020_units_per_week: ::DWORD, |
| usri1020_logon_hours: ::LPBYTE, |
| }} |
| pub type PUSER_INFO_1020 = *mut USER_INFO_1020; |
| pub type LPUSER_INFO_1020 = *mut USER_INFO_1020; |
| STRUCT!{struct USER_INFO_1023 { |
| usri1023_logon_server: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1023 = *mut USER_INFO_1023; |
| pub type LPUSER_INFO_1023 = *mut USER_INFO_1023; |
| STRUCT!{struct USER_INFO_1024 { |
| usri1024_country_code: ::DWORD, |
| }} |
| pub type PUSER_INFO_1024 = *mut USER_INFO_1024; |
| pub type LPUSER_INFO_1024 = *mut USER_INFO_1024; |
| STRUCT!{struct USER_INFO_1025 { |
| usri1025_code_page: ::DWORD, |
| }} |
| pub type PUSER_INFO_1025 = *mut USER_INFO_1025; |
| pub type LPUSER_INFO_1025 = *mut USER_INFO_1025; |
| STRUCT!{struct USER_INFO_1051 { |
| usri1051_primary_group_id: ::DWORD, |
| }} |
| pub type PUSER_INFO_1051 = *mut USER_INFO_1051; |
| pub type LPUSER_INFO_1051 = *mut USER_INFO_1051; |
| STRUCT!{struct USER_INFO_1052 { |
| usri1052_profile: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1052 = *mut USER_INFO_1052; |
| pub type LPUSER_INFO_1052 = *mut USER_INFO_1052; |
| STRUCT!{struct USER_INFO_1053 { |
| usri1053_home_dir_drive: ::LPWSTR, |
| }} |
| pub type PUSER_INFO_1053 = *mut USER_INFO_1053; |
| pub type LPUSER_INFO_1053 = *mut USER_INFO_1053; |
| STRUCT!{struct USER_MODALS_INFO_0 { |
| usrmod0_min_passwd_len: ::DWORD, |
| usrmod0_max_passwd_age: ::DWORD, |
| usrmod0_min_passwd_age: ::DWORD, |
| usrmod0_force_logoff: ::DWORD, |
| usrmod0_password_hist_len: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_0 = *mut USER_MODALS_INFO_0; |
| pub type LPUSER_MODALS_INFO_0 = *mut USER_MODALS_INFO_0; |
| STRUCT!{struct USER_MODALS_INFO_1 { |
| usrmod1_role: ::DWORD, |
| usrmod1_primary: ::LPWSTR, |
| }} |
| pub type PUSER_MODALS_INFO_1 = *mut USER_MODALS_INFO_1; |
| pub type LPUSER_MODALS_INFO_1 = *mut USER_MODALS_INFO_1; |
| STRUCT!{struct USER_MODALS_INFO_2 { |
| usrmod2_domain_name: ::LPWSTR, |
| usrmod2_domain_id: ::PSID, |
| }} |
| pub type PUSER_MODALS_INFO_2 = *mut USER_MODALS_INFO_2; |
| pub type LPUSER_MODALS_INFO_2 = *mut USER_MODALS_INFO_2; |
| STRUCT!{struct USER_MODALS_INFO_3 { |
| usrmod3_lockout_duration: ::DWORD, |
| usrmod3_lockout_observation_window: ::DWORD, |
| usrmod3_lockout_threshold: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_3 = *mut USER_MODALS_INFO_3; |
| pub type LPUSER_MODALS_INFO_3 = *mut USER_MODALS_INFO_3; |
| STRUCT!{struct USER_MODALS_INFO_1001 { |
| usrmod1001_min_passwd_len: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1001 = *mut USER_MODALS_INFO_1001; |
| pub type LPUSER_MODALS_INFO_1001 = *mut USER_MODALS_INFO_1001; |
| STRUCT!{struct USER_MODALS_INFO_1002 { |
| usrmod1002_max_passwd_age: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1002 = *mut USER_MODALS_INFO_1002; |
| pub type LPUSER_MODALS_INFO_1002 = *mut USER_MODALS_INFO_1002; |
| STRUCT!{struct USER_MODALS_INFO_1003 { |
| usrmod1003_min_passwd_age: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1003 = *mut USER_MODALS_INFO_1003; |
| pub type LPUSER_MODALS_INFO_1003 = *mut USER_MODALS_INFO_1003; |
| STRUCT!{struct USER_MODALS_INFO_1004 { |
| usrmod1004_force_logoff: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1004 = *mut USER_MODALS_INFO_1004; |
| pub type LPUSER_MODALS_INFO_1004 = *mut USER_MODALS_INFO_1004; |
| STRUCT!{struct USER_MODALS_INFO_1005 { |
| usrmod1005_password_hist_len: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1005 = *mut USER_MODALS_INFO_1005; |
| pub type LPUSER_MODALS_INFO_1005 = *mut USER_MODALS_INFO_1005; |
| STRUCT!{struct USER_MODALS_INFO_1006 { |
| usrmod1006_role: ::DWORD, |
| }} |
| pub type PUSER_MODALS_INFO_1006 = *mut USER_MODALS_INFO_1006; |
| pub type LPUSER_MODALS_INFO_1006 = *mut USER_MODALS_INFO_1006; |
| STRUCT!{struct USER_MODALS_INFO_1007 { |
| usrmod1007_primary: ::LPWSTR, |
| }} |
| pub type PUSER_MODALS_INFO_1007 = *mut USER_MODALS_INFO_1007; |
| pub type LPUSER_MODALS_INFO_1007 = *mut USER_MODALS_INFO_1007; |
| pub const UF_SCRIPT: ::DWORD = 0x0001; |
| pub const UF_ACCOUNTDISABLE: ::DWORD = 0x0002; |
| pub const UF_HOMEDIR_REQUIRED: ::DWORD = 0x0008; |
| pub const UF_LOCKOUT: ::DWORD = 0x0010; |
| pub const UF_PASSWD_NOTREQD: ::DWORD = 0x0020; |
| pub const UF_PASSWD_CANT_CHANGE: ::DWORD = 0x0040; |
| pub const UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: ::DWORD = 0x0080; |
| pub const UF_TEMP_DUPLICATE_ACCOUNT: ::DWORD = 0x0100; |
| pub const UF_NORMAL_ACCOUNT: ::DWORD = 0x0200; |
| pub const UF_INTERDOMAIN_TRUST_ACCOUNT: ::DWORD = 0x0800; |
| pub const UF_WORKSTATION_TRUST_ACCOUNT: ::DWORD = 0x1000; |
| pub const UF_SERVER_TRUST_ACCOUNT: ::DWORD = 0x2000; |
| pub const UF_MACHINE_ACCOUNT_MASK: ::DWORD = UF_INTERDOMAIN_TRUST_ACCOUNT |
| | UF_WORKSTATION_TRUST_ACCOUNT | UF_SERVER_TRUST_ACCOUNT; |
| pub const UF_ACCOUNT_TYPE_MASK: ::DWORD = UF_TEMP_DUPLICATE_ACCOUNT | UF_NORMAL_ACCOUNT |
| | UF_INTERDOMAIN_TRUST_ACCOUNT | UF_WORKSTATION_TRUST_ACCOUNT | UF_SERVER_TRUST_ACCOUNT; |
| pub const UF_DONT_EXPIRE_PASSWD: ::DWORD = 0x10000; |
| pub const UF_MNS_LOGON_ACCOUNT: ::DWORD = 0x20000; |
| pub const UF_SMARTCARD_REQUIRED: ::DWORD = 0x40000; |
| pub const UF_TRUSTED_FOR_DELEGATION: ::DWORD = 0x80000; |
| pub const UF_NOT_DELEGATED: ::DWORD = 0x100000; |
| pub const UF_USE_DES_KEY_ONLY: ::DWORD = 0x200000; |
| pub const UF_DONT_REQUIRE_PREAUTH: ::DWORD = 0x400000; |
| pub const UF_PASSWORD_EXPIRED: ::DWORD = 0x800000; |
| pub const UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: ::DWORD = 0x1000000; |
| pub const UF_NO_AUTH_DATA_REQUIRED: ::DWORD = 0x2000000; |
| pub const UF_PARTIAL_SECRETS_ACCOUNT: ::DWORD = 0x4000000; |
| pub const UF_USE_AES_KEYS: ::DWORD = 0x8000000; |
| pub const UF_SETTABLE_BITS: ::DWORD = UF_SCRIPT | UF_ACCOUNTDISABLE | UF_LOCKOUT |
| | UF_HOMEDIR_REQUIRED | UF_PASSWD_NOTREQD | UF_PASSWD_CANT_CHANGE | UF_ACCOUNT_TYPE_MASK |
| | UF_DONT_EXPIRE_PASSWD | UF_MNS_LOGON_ACCOUNT | UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED |
| | UF_SMARTCARD_REQUIRED | UF_TRUSTED_FOR_DELEGATION | UF_NOT_DELEGATED | UF_USE_DES_KEY_ONLY |
| | UF_DONT_REQUIRE_PREAUTH | UF_PASSWORD_EXPIRED | UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION |
| | UF_NO_AUTH_DATA_REQUIRED | UF_USE_AES_KEYS | UF_PARTIAL_SECRETS_ACCOUNT; |
| pub const FILTER_TEMP_DUPLICATE_ACCOUNT: ::DWORD = 0x0001; |
| pub const FILTER_NORMAL_ACCOUNT: ::DWORD = 0x0002; |
| pub const FILTER_INTERDOMAIN_TRUST_ACCOUNT: ::DWORD = 0x0008; |
| pub const FILTER_WORKSTATION_TRUST_ACCOUNT: ::DWORD = 0x0010; |
| pub const FILTER_SERVER_TRUST_ACCOUNT: ::DWORD = 0x0020; |
| pub const LG_INCLUDE_INDIRECT: ::DWORD = 0x0001; |
| pub const AF_OP_PRINT: ::DWORD = 0x1; |
| pub const AF_OP_COMM: ::DWORD = 0x2; |
| pub const AF_OP_SERVER: ::DWORD = 0x4; |
| pub const AF_OP_ACCOUNTS: ::DWORD = 0x8; |
| pub const AF_SETTABLE_BITS: ::DWORD = AF_OP_PRINT | AF_OP_COMM | AF_OP_SERVER | AF_OP_ACCOUNTS; |
| pub const UAS_ROLE_STANDALONE: ::DWORD = 0; |
| pub const UAS_ROLE_MEMBER: ::DWORD = 1; |
| pub const UAS_ROLE_BACKUP: ::DWORD = 2; |
| pub const UAS_ROLE_PRIMARY: ::DWORD = 3; |
| pub const USER_NAME_PARMNUM: ::DWORD = 1; |
| pub const USER_PASSWORD_PARMNUM: ::DWORD = 3; |
| pub const USER_PASSWORD_AGE_PARMNUM: ::DWORD = 4; |
| pub const USER_PRIV_PARMNUM: ::DWORD = 5; |
| pub const USER_HOME_DIR_PARMNUM: ::DWORD = 6; |
| pub const USER_COMMENT_PARMNUM: ::DWORD = 7; |
| pub const USER_FLAGS_PARMNUM: ::DWORD = 8; |
| pub const USER_SCRIPT_PATH_PARMNUM: ::DWORD = 9; |
| pub const USER_AUTH_FLAGS_PARMNUM: ::DWORD = 10; |
| pub const USER_FULL_NAME_PARMNUM: ::DWORD = 11; |
| pub const USER_USR_COMMENT_PARMNUM: ::DWORD = 12; |
| pub const USER_PARMS_PARMNUM: ::DWORD = 13; |
| pub const USER_WORKSTATIONS_PARMNUM: ::DWORD = 14; |
| pub const USER_LAST_LOGON_PARMNUM: ::DWORD = 15; |
| pub const USER_LAST_LOGOFF_PARMNUM: ::DWORD = 16; |
| pub const USER_ACCT_EXPIRES_PARMNUM: ::DWORD = 17; |
| pub const USER_MAX_STORAGE_PARMNUM: ::DWORD = 18; |
| pub const USER_UNITS_PER_WEEK_PARMNUM: ::DWORD = 19; |
| pub const USER_LOGON_HOURS_PARMNUM: ::DWORD = 20; |
| pub const USER_PAD_PW_COUNT_PARMNUM: ::DWORD = 21; |
| pub const USER_NUM_LOGONS_PARMNUM: ::DWORD = 22; |
| pub const USER_LOGON_SERVER_PARMNUM: ::DWORD = 23; |
| pub const USER_COUNTRY_CODE_PARMNUM: ::DWORD = 24; |
| pub const USER_CODE_PAGE_PARMNUM: ::DWORD = 25; |
| pub const USER_PRIMARY_GROUP_PARMNUM: ::DWORD = 51; |
| pub const USER_PROFILE: ::DWORD = 52; |
| pub const USER_PROFILE_PARMNUM: ::DWORD = 52; |
| pub const USER_HOME_DIR_DRIVE_PARMNUM: ::DWORD = 53; |
| pub const USER_NAME_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM; |
| pub const USER_PASSWORD_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM; |
| pub const USER_PASSWORD_AGE_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM; |
| pub const USER_PRIV_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM; |
| pub const USER_HOME_DIR_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM; |
| pub const USER_COMMENT_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM; |
| pub const USER_FLAGS_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM; |
| pub const USER_SCRIPT_PATH_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM; |
| pub const USER_AUTH_FLAGS_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM; |
| pub const USER_FULL_NAME_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM; |
| pub const USER_USR_COMMENT_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM; |
| pub const USER_PARMS_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM; |
| pub const USER_WORKSTATIONS_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM; |
| pub const USER_LAST_LOGON_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM; |
| pub const USER_LAST_LOGOFF_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM; |
| pub const USER_ACCT_EXPIRES_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM; |
| pub const USER_MAX_STORAGE_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM; |
| pub const USER_UNITS_PER_WEEK_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM; |
| pub const USER_LOGON_HOURS_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM; |
| pub const USER_PAD_PW_COUNT_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM; |
| pub const USER_NUM_LOGONS_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM; |
| pub const USER_LOGON_SERVER_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM; |
| pub const USER_COUNTRY_CODE_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM; |
| pub const USER_CODE_PAGE_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM; |
| pub const USER_PRIMARY_GROUP_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM; |
| pub const USER_HOME_DIR_DRIVE_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM; |
| pub const TIMEQ_FOREVER: ::DWORD = -1i32 as ::DWORD; |
| pub const USER_MAXSTORAGE_UNLIMITED: ::DWORD = -1i32 as ::DWORD; |
| pub const USER_NO_LOGOFF: ::DWORD = -1i32 as ::DWORD; |
| pub const UNITS_PER_DAY: ::DWORD = 24; |
| pub const UNITS_PER_WEEK: ::DWORD = UNITS_PER_DAY * 7; |
| pub const USER_PRIV_MASK: ::DWORD = 0x3; |
| pub const USER_PRIV_GUEST: ::DWORD = 0; |
| pub const USER_PRIV_USER: ::DWORD = 1; |
| pub const USER_PRIV_ADMIN: ::DWORD = 2; |
| pub const MAX_PASSWD_LEN: ::DWORD = ::PWLEN; |
| pub const DEF_MIN_PWLEN: ::DWORD = 6; |
| pub const DEF_PWUNIQUENESS: ::DWORD = 5; |
| pub const DEF_MAX_PWHIST: ::DWORD = 8; |
| pub const DEF_MAX_PWAGE: ::DWORD = TIMEQ_FOREVER; |
| pub const DEF_MIN_PWAGE: ::DWORD = 0; |
| pub const DEF_FORCE_LOGOFF: ::DWORD = 0xffffffff; |
| pub const DEF_MAX_BADPW: ::DWORD = 0; |
| pub const ONE_DAY: ::DWORD = 1 * 24 * 3600; |
| pub const VALIDATED_LOGON: ::DWORD = 0; |
| pub const PASSWORD_EXPIRED: ::DWORD = 2; |
| pub const NON_VALIDATED_LOGON: ::DWORD = 3; |
| pub const VALID_LOGOFF: ::DWORD = 1; |
| pub const MODALS_MIN_PASSWD_LEN_PARMNUM: ::DWORD = 1; |
| pub const MODALS_MAX_PASSWD_AGE_PARMNUM: ::DWORD = 2; |
| pub const MODALS_MIN_PASSWD_AGE_PARMNUM: ::DWORD = 3; |
| pub const MODALS_FORCE_LOGOFF_PARMNUM: ::DWORD = 4; |
| pub const MODALS_PASSWD_HIST_LEN_PARMNUM: ::DWORD = 5; |
| pub const MODALS_ROLE_PARMNUM: ::DWORD = 6; |
| pub const MODALS_PRIMARY_PARMNUM: ::DWORD = 7; |
| pub const MODALS_DOMAIN_NAME_PARMNUM: ::DWORD = 8; |
| pub const MODALS_DOMAIN_ID_PARMNUM: ::DWORD = 9; |
| pub const MODALS_LOCKOUT_DURATION_PARMNUM: ::DWORD = 10; |
| pub const MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM: ::DWORD = 11; |
| pub const MODALS_LOCKOUT_THRESHOLD_PARMNUM: ::DWORD = 12; |
| pub const MODALS_MIN_PASSWD_LEN_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM; |
| pub const MODALS_MAX_PASSWD_AGE_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM; |
| pub const MODALS_MIN_PASSWD_AGE_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM; |
| pub const MODALS_FORCE_LOGOFF_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM; |
| pub const MODALS_PASSWD_HIST_LEN_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM; |
| pub const MODALS_ROLE_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM; |
| pub const MODALS_PRIMARY_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM; |
| pub const MODALS_DOMAIN_NAME_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM; |
| pub const MODALS_DOMAIN_ID_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM; |
| STRUCT!{struct GROUP_INFO_0 { |
| grpi0_name: ::LPWSTR, |
| }} |
| pub type PGROUP_INFO_0 = *mut GROUP_INFO_0; |
| pub type LPGROUP_INFO_0 = *mut GROUP_INFO_0; |
| STRUCT!{struct GROUP_INFO_1 { |
| grpi1_name: ::LPWSTR, |
| grpi1_comment: ::LPWSTR, |
| }} |
| pub type PGROUP_INFO_1 = *mut GROUP_INFO_1; |
| pub type LPGROUP_INFO_1 = *mut GROUP_INFO_1; |
| STRUCT!{struct GROUP_INFO_2 { |
| grpi2_name: ::LPWSTR, |
| grpi2_comment: ::LPWSTR, |
| grpi2_group_id: ::DWORD, |
| grpi2_attributes: ::DWORD, |
| }} |
| pub type PGROUP_INFO_2 = *mut GROUP_INFO_2; |
| STRUCT!{struct GROUP_INFO_3 { |
| grpi3_name: ::LPWSTR, |
| grpi3_comment: ::LPWSTR, |
| grpi3_group_sid: ::PSID, |
| grpi3_attributes: ::DWORD, |
| }} |
| pub type PGROUP_INFO_3 = *mut GROUP_INFO_3; |
| STRUCT!{struct GROUP_INFO_1002 { |
| grpi1002_comment: ::LPWSTR, |
| }} |
| pub type PGROUP_INFO_1002 = *mut GROUP_INFO_1002; |
| pub type LPGROUP_INFO_1002 = *mut GROUP_INFO_1002; |
| STRUCT!{struct GROUP_INFO_1005 { |
| grpi1005_attributes: ::DWORD, |
| }} |
| pub type PGROUP_INFO_1005 = *mut GROUP_INFO_1005; |
| pub type LPGROUP_INFO_1005 = *mut GROUP_INFO_1005; |
| STRUCT!{struct GROUP_USERS_INFO_0 { |
| grui0_name: ::LPWSTR, |
| }} |
| pub type PGROUP_USERS_INFO_0 = *mut GROUP_USERS_INFO_0; |
| pub type LPGROUP_USERS_INFO_0 = *mut GROUP_USERS_INFO_0; |
| STRUCT!{struct GROUP_USERS_INFO_1 { |
| grui1_name: ::LPWSTR, |
| grui1_attributes: ::DWORD, |
| }} |
| pub type PGROUP_USERS_INFO_1 = *mut GROUP_USERS_INFO_1; |
| pub type LPGROUP_USERS_INFO_1 = *mut GROUP_USERS_INFO_1; |
| pub const GROUPIDMASK: ::DWORD = 0x8000; |
| pub const GROUP_SPECIALGRP_USERS: &'static str = "USERS"; |
| pub const GROUP_SPECIALGRP_ADMINS: &'static str = "ADMINS"; |
| pub const GROUP_SPECIALGRP_GUESTS: &'static str = "GUESTS"; |
| pub const GROUP_SPECIALGRP_LOCAL: &'static str = "LOCAL"; |
| pub const GROUP_ALL_PARMNUM: ::DWORD = 0; |
| pub const GROUP_NAME_PARMNUM: ::DWORD = 1; |
| pub const GROUP_COMMENT_PARMNUM: ::DWORD = 2; |
| pub const GROUP_ATTRIBUTES_PARMNUM: ::DWORD = 3; |
| pub const GROUP_ALL_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM; |
| pub const GROUP_NAME_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM; |
| pub const GROUP_COMMENT_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM; |
| pub const GROUP_ATTRIBUTES_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM; |
| STRUCT!{struct LOCALGROUP_INFO_0 { |
| lgrpi0_name: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_INFO_0 = *mut LOCALGROUP_INFO_0; |
| pub type LPLOCALGROUP_INFO_0 = *mut LOCALGROUP_INFO_0; |
| STRUCT!{struct LOCALGROUP_INFO_1 { |
| lgrpi1_name: ::LPWSTR, |
| lgrpi1_comment: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_INFO_1 = *mut LOCALGROUP_INFO_1; |
| pub type LPLOCALGROUP_INFO_1 = *mut LOCALGROUP_INFO_1; |
| STRUCT!{struct LOCALGROUP_INFO_1002 { |
| lgrpi1002_comment: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_INFO_1002 = *mut LOCALGROUP_INFO_1002; |
| pub type LPLOCALGROUP_INFO_1002 = *mut LOCALGROUP_INFO_1002; |
| STRUCT!{struct LOCALGROUP_MEMBERS_INFO_0 { |
| lgrmi0_sid: ::PSID, |
| }} |
| pub type PLOCALGROUP_MEMBERS_INFO_0 = *mut LOCALGROUP_MEMBERS_INFO_0; |
| pub type LPLOCALGROUP_MEMBERS_INFO_0 = *mut LOCALGROUP_MEMBERS_INFO_0; |
| STRUCT!{struct LOCALGROUP_MEMBERS_INFO_1 { |
| lgrmi1_sid: ::PSID, |
| lgrmi1_sidusage: ::SID_NAME_USE, |
| lgrmi1_name: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_MEMBERS_INFO_1 = *mut LOCALGROUP_MEMBERS_INFO_1; |
| pub type LPLOCALGROUP_MEMBERS_INFO_1 = *mut LOCALGROUP_MEMBERS_INFO_1; |
| STRUCT!{struct LOCALGROUP_MEMBERS_INFO_2 { |
| lgrmi2_sid: ::PSID, |
| lgrmi2_sidusage: ::SID_NAME_USE, |
| lgrmi2_domainandname: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_MEMBERS_INFO_2 = *mut LOCALGROUP_MEMBERS_INFO_2; |
| pub type LPLOCALGROUP_MEMBERS_INFO_2 = *mut LOCALGROUP_MEMBERS_INFO_2; |
| STRUCT!{struct LOCALGROUP_MEMBERS_INFO_3 { |
| lgrmi3_domainandname: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_MEMBERS_INFO_3 = *mut LOCALGROUP_MEMBERS_INFO_3; |
| pub type LPLOCALGROUP_MEMBERS_INFO_3 = *mut LOCALGROUP_MEMBERS_INFO_3; |
| STRUCT!{struct LOCALGROUP_USERS_INFO_0 { |
| lgrui0_name: ::LPWSTR, |
| }} |
| pub type PLOCALGROUP_USERS_INFO_0 = *mut LOCALGROUP_USERS_INFO_0; |
| pub type LPLOCALGROUP_USERS_INFO_0 = *mut LOCALGROUP_USERS_INFO_0; |
| pub const LOCALGROUP_NAME_PARMNUM: ::DWORD = 1; |
| pub const LOCALGROUP_COMMENT_PARMNUM: ::DWORD = 2; |
| STRUCT!{struct NET_DISPLAY_USER { |
| usri1_name: ::LPWSTR, |
| usri1_comment: ::LPWSTR, |
| usri1_flags: ::DWORD, |
| usri1_full_name: ::LPWSTR, |
| usri1_user_id: ::DWORD, |
| usri1_next_index: ::DWORD, |
| }} |
| pub type PNET_DISPLAY_USER = *mut NET_DISPLAY_USER; |
| STRUCT!{struct NET_DISPLAY_MACHINE { |
| usri2_name: ::LPWSTR, |
| usri2_comment: ::LPWSTR, |
| usri2_flags: ::DWORD, |
| usri2_user_id: ::DWORD, |
| usri2_next_index: ::DWORD, |
| }} |
| pub type PNET_DISPLAY_MACHINE = *mut NET_DISPLAY_MACHINE; |
| STRUCT!{struct NET_DISPLAY_GROUP { |
| usri3_name: ::LPWSTR, |
| usri3_comment: ::LPWSTR, |
| grpi3_group_id: ::DWORD, |
| grpi3_attributes: ::DWORD, |
| grpi3_next_index: ::DWORD, |
| }} |
| pub type PNET_DISPLAY_GROUP = *mut NET_DISPLAY_GROUP; |
| STRUCT!{struct ACCESS_INFO_0 { |
| acc0_resource_name: ::LPWSTR, |
| }} |
| pub type PACCESS_INFO_0 = *mut ACCESS_INFO_0; |
| pub type LPACCESS_INFO_0 = *mut ACCESS_INFO_0; |
| STRUCT!{struct ACCESS_INFO_1 { |
| acc1_resource_name: ::LPWSTR, |
| acc1_attr: ::DWORD, |
| acc1_count: ::DWORD, |
| }} |
| pub type PACCESS_INFO_1 = *mut ACCESS_INFO_1; |
| pub type LPACCESS_INFO_1 = *mut ACCESS_INFO_1; |
| STRUCT!{struct ACCESS_INFO_1002 { |
| acc1002_attr: ::DWORD, |
| }} |
| pub type PACCESS_INFO_1002 = *mut ACCESS_INFO_1002; |
| pub type LPACCESS_INFO_1002 = *mut ACCESS_INFO_1002; |
| STRUCT!{struct ACCESS_LIST { |
| acl_ugname: ::LPWSTR, |
| acl_access: ::DWORD, |
| }} |
| pub type PACCESS_LIST = *mut ACCESS_LIST; |
| pub type LPACCESS_LIST = *mut ACCESS_LIST; |
| pub const ACCESS_NONE: ::DWORD = 0; |
| pub const ACCESS_ALL: ::DWORD = ACCESS_READ | ACCESS_WRITE | ACCESS_CREATE | ACCESS_EXEC |
| | ACCESS_DELETE | ACCESS_ATRIB | ACCESS_PERM; |
| pub const ACCESS_READ: ::DWORD = 0x01; |
| pub const ACCESS_WRITE: ::DWORD = 0x02; |
| pub const ACCESS_CREATE: ::DWORD = 0x04; |
| pub const ACCESS_EXEC: ::DWORD = 0x08; |
| pub const ACCESS_DELETE: ::DWORD = 0x10; |
| pub const ACCESS_ATRIB: ::DWORD = 0x20; |
| pub const ACCESS_PERM: ::DWORD = 0x40; |
| pub const ACCESS_GROUP: ::DWORD = 0x8000; |
| pub const ACCESS_AUDIT: ::DWORD = 0x1; |
| pub const ACCESS_SUCCESS_OPEN: ::DWORD = 0x10; |
| pub const ACCESS_SUCCESS_WRITE: ::DWORD = 0x20; |
| pub const ACCESS_SUCCESS_DELETE: ::DWORD = 0x40; |
| pub const ACCESS_SUCCESS_ACL: ::DWORD = 0x80; |
| pub const ACCESS_SUCCESS_MASK: ::DWORD = 0xF0; |
| pub const ACCESS_FAIL_OPEN: ::DWORD = 0x100; |
| pub const ACCESS_FAIL_WRITE: ::DWORD = 0x200; |
| pub const ACCESS_FAIL_DELETE: ::DWORD = 0x400; |
| pub const ACCESS_FAIL_ACL: ::DWORD = 0x800; |
| pub const ACCESS_FAIL_MASK: ::DWORD = 0xF00; |
| pub const ACCESS_FAIL_SHIFT: ::DWORD = 4; |
| pub const ACCESS_RESOURCE_NAME_PARMNUM: ::DWORD = 1; |
| pub const ACCESS_ATTR_PARMNUM: ::DWORD = 2; |
| pub const ACCESS_COUNT_PARMNUM: ::DWORD = 3; |
| pub const ACCESS_ACCESS_LIST_PARMNUM: ::DWORD = 4; |
| pub const ACCESS_RESOURCE_NAME_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM; |
| pub const ACCESS_ATTR_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM; |
| pub const ACCESS_COUNT_INFOLEVEL: ::DWORD = ::PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM; |
| pub const ACCESS_ACCESS_LIST_INFOLEVEL: ::DWORD = |
| ::PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM; |
| ENUM!{enum NET_VALIDATE_PASSWORD_TYPE { |
| NetValidateAuthentication = 1, |
| NetValidatePasswordChange, |
| NetValidatePasswordReset, |
| }} |
| pub type PNET_VALIDATE_PASSWORD_TYPE = *mut NET_VALIDATE_PASSWORD_TYPE; |
| STRUCT!{struct NET_VALIDATE_PASSWORD_HASH { |
| Length: ::ULONG, |
| Hash: ::LPBYTE, |
| }} |
| pub type PNET_VALIDATE_PASSWORD_HASH = *mut NET_VALIDATE_PASSWORD_HASH; |
| pub const NET_VALIDATE_PASSWORD_LAST_SET: ::ULONG = 0x00000001; |
| pub const NET_VALIDATE_BAD_PASSWORD_TIME: ::ULONG = 0x00000002; |
| pub const NET_VALIDATE_LOCKOUT_TIME: ::ULONG = 0x00000004; |
| pub const NET_VALIDATE_BAD_PASSWORD_COUNT: ::ULONG = 0x00000008; |
| pub const NET_VALIDATE_PASSWORD_HISTORY_LENGTH: ::ULONG = 0x00000010; |
| pub const NET_VALIDATE_PASSWORD_HISTORY: ::ULONG = 0x00000020; |
| STRUCT!{struct NET_VALIDATE_PERSISTED_FIELDS { |
| PresentFields: ::ULONG, |
| PasswordLastSet: ::FILETIME, |
| BadPasswordTime: ::FILETIME, |
| LockoutTime: ::FILETIME, |
| BadPasswordCount: ::ULONG, |
| PasswordHistoryLength: ::ULONG, |
| PasswordHistory: PNET_VALIDATE_PASSWORD_HASH, |
| }} |
| pub type PNET_VALIDATE_PERSISTED_FIELDS = *mut NET_VALIDATE_PERSISTED_FIELDS; |
| STRUCT!{struct NET_VALIDATE_OUTPUT_ARG { |
| ChangedPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, |
| ValidationStatus: ::NET_API_STATUS, |
| }} |
| pub type PNET_VALIDATE_OUTPUT_ARG = *mut NET_VALIDATE_OUTPUT_ARG; |
| STRUCT!{struct NET_VALIDATE_AUTHENTICATION_INPUT_ARG { |
| InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, |
| PasswordMatched: ::BOOLEAN, |
| }} |
| pub type PNET_VALIDATE_AUTHENTICATION_INPUT_ARG = *mut NET_VALIDATE_AUTHENTICATION_INPUT_ARG; |
| STRUCT!{struct NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG { |
| InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, |
| ClearPassword: ::LPWSTR, |
| UserAccountName: ::LPWSTR, |
| HashedPassword: NET_VALIDATE_PASSWORD_HASH, |
| PasswordMatch: ::BOOLEAN, |
| }} |
| pub type PNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG = *mut NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG; |
| STRUCT!{struct NET_VALIDATE_PASSWORD_RESET_INPUT_ARG { |
| InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, |
| ClearPassword: ::LPWSTR, |
| UserAccountName: ::LPWSTR, |
| HashedPassword: NET_VALIDATE_PASSWORD_HASH, |
| PasswordMustChangeAtNextLogon: ::BOOLEAN, |
| ClearLockout: ::BOOLEAN, |
| }} |
| pub type PNET_VALIDATE_PASSWORD_RESET_INPUT_ARG = *mut NET_VALIDATE_PASSWORD_RESET_INPUT_ARG; |
| pub const NETLOGON_CONTROL_QUERY: ::DWORD = 1; |
| pub const NETLOGON_CONTROL_REPLICATE: ::DWORD = 2; |
| pub const NETLOGON_CONTROL_SYNCHRONIZE: ::DWORD = 3; |
| pub const NETLOGON_CONTROL_PDC_REPLICATE: ::DWORD = 4; |
| pub const NETLOGON_CONTROL_REDISCOVER: ::DWORD = 5; |
| pub const NETLOGON_CONTROL_TC_QUERY: ::DWORD = 6; |
| pub const NETLOGON_CONTROL_TRANSPORT_NOTIFY: ::DWORD = 7; |
| pub const NETLOGON_CONTROL_FIND_USER: ::DWORD = 8; |
| pub const NETLOGON_CONTROL_CHANGE_PASSWORD: ::DWORD = 9; |
| pub const NETLOGON_CONTROL_TC_VERIFY: ::DWORD = 10; |
| pub const NETLOGON_CONTROL_FORCE_DNS_REG: ::DWORD = 11; |
| pub const NETLOGON_CONTROL_QUERY_DNS_REG: ::DWORD = 12; |
| pub const NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL: ::DWORD = 0xFFFB; |
| pub const NETLOGON_CONTROL_BACKUP_CHANGE_LOG: ::DWORD = 0xFFFC; |
| pub const NETLOGON_CONTROL_TRUNCATE_LOG: ::DWORD = 0xFFFD; |
| pub const NETLOGON_CONTROL_SET_DBFLAG: ::DWORD = 0xFFFE; |
| pub const NETLOGON_CONTROL_BREAKPOINT: ::DWORD = 0xFFFF; |
| STRUCT!{struct NETLOGON_INFO_1 { |
| netlog1_flags: ::DWORD, |
| netlog1_pdc_connection_status: ::NET_API_STATUS, |
| }} |
| pub type PNETLOGON_INFO_1 = *mut NETLOGON_INFO_1; |
| STRUCT!{struct NETLOGON_INFO_2 { |
| netlog2_flags: ::DWORD, |
| netlog2_pdc_connection_status: ::NET_API_STATUS, |
| netlog2_trusted_dc_name: ::LPWSTR, |
| netlog2_tc_connection_status: ::NET_API_STATUS, |
| }} |
| pub type PNETLOGON_INFO_2 = *mut NETLOGON_INFO_2; |
| STRUCT!{struct NETLOGON_INFO_3 { |
| netlog3_flags: ::DWORD, |
| netlog3_logon_attempts: ::DWORD, |
| netlog3_reserved1: ::DWORD, |
| netlog3_reserved2: ::DWORD, |
| netlog3_reserved3: ::DWORD, |
| netlog3_reserved4: ::DWORD, |
| netlog3_reserved5: ::DWORD, |
| }} |
| pub type PNETLOGON_INFO_3 = *mut NETLOGON_INFO_3; |
| STRUCT!{struct NETLOGON_INFO_4 { |
| netlog4_trusted_dc_name: ::LPWSTR, |
| netlog4_trusted_domain_name: ::LPWSTR, |
| }} |
| pub type PNETLOGON_INFO_4 = *mut NETLOGON_INFO_4; |
| pub const NETLOGON_REPLICATION_NEEDED: ::DWORD = 0x01; |
| pub const NETLOGON_REPLICATION_IN_PROGRESS: ::DWORD = 0x02; |
| pub const NETLOGON_FULL_SYNC_REPLICATION: ::DWORD = 0x04; |
| pub const NETLOGON_REDO_NEEDED: ::DWORD = 0x08; |
| pub const NETLOGON_HAS_IP: ::DWORD = 0x10; |
| pub const NETLOGON_HAS_TIMESERV: ::DWORD = 0x20; |
| pub const NETLOGON_DNS_UPDATE_FAILURE: ::DWORD = 0x40; |
| pub const NETLOGON_VERIFY_STATUS_RETURNED: ::DWORD = 0x80; |
| DEFINE_GUID!(ServiceAccountPasswordGUID, 0x262E99C9, 0x6160, 0x4871, |
| 0xAC, 0xEC, 0x4E, 0x61, 0x73, 0x6B, 0x6F, 0x21); |
| pub const SERVICE_ACCOUNT_FLAG_LINK_TO_HOST_ONLY: ::DWORD = 0x00000001; |
| pub const SERVICE_ACCOUNT_FLAG_ADD_AGAINST_RODC: ::DWORD = 0x00000002; |
| pub const SERVICE_ACCOUNT_FLAG_UNLINK_FROM_HOST_ONLY: ::DWORD = 0x00000001; |
| pub const SERVICE_ACCOUNT_FLAG_REMOVE_OFFLINE: ::DWORD = 0x00000002; |
| ENUM!{enum MSA_INFO_LEVEL { |
| MsaInfoLevel0 = 0, |
| MsaInfoLevelMax, |
| }} |
| pub type PMSA_INFO_LEVEL = *mut MSA_INFO_LEVEL; |
| ENUM!{enum MSA_INFO_STATE { |
| MsaInfoNotExist = 1, |
| MsaInfoNotService, |
| MsaInfoCannotInstall, |
| MsaInfoCanInstall, |
| MsaInfoInstalled, |
| }} |
| pub type PMSA_INFO_STATE = *mut MSA_INFO_STATE; |
| STRUCT!{struct MSA_INFO_0 { |
| State: MSA_INFO_STATE, |
| }} |
| pub type PMSA_INFO_0 = *mut MSA_INFO_0; |
| pub type LPMSA_INFO_0 = *mut MSA_INFO_0; |