/* header auto-generated by pidl */ #ifndef _HEADER_netlogon #define _HEADER_netlogon #include "librpc/gen_ndr/lsa.h" #include "librpc/gen_ndr/samr.h" #include "librpc/gen_ndr/security.h" #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED ( 0x002 ) #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT ( 0x020 ) #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT ( 0x800 ) #define NETLOGON_NEG_ARCFOUR ( 0x00000004 ) #define NETLOGON_NEG_128BIT ( 0x00004000 ) #define NETLOGON_NEG_SCHANNEL ( 0x40000000 ) struct netr_UasInfo { const char *account_name;/* [unique,keepref,charset(UTF16)] */ uint32_t priv;/* [keepref] */ uint32_t auth_flags;/* [keepref] */ uint32_t logon_count;/* [keepref] */ uint32_t bad_pw_count;/* [keepref] */ time_t last_logon;/* [keepref] */ time_t last_logoff;/* [keepref] */ time_t logoff_time;/* [keepref] */ time_t kickoff_time;/* [keepref] */ uint32_t password_age;/* [keepref] */ time_t pw_can_change;/* [keepref] */ time_t pw_must_change;/* [keepref] */ const char *computer;/* [unique,keepref,charset(UTF16)] */ const char *domain;/* [unique,keepref,charset(UTF16)] */ const char *script_path;/* [unique,keepref,charset(UTF16)] */ uint32_t unknown;/* [keepref] */ }; struct netr_UasLogoffInfo { uint32_t duration;/* [keepref] */ uint16_t logon_count;/* [keepref] */ }; struct netr_AcctLockStr { uint16_t size;/* [keepref] */ uint16_t length;/* [keepref] */ uint16_t *bindata;/* [unique,keepref,length_is(length/2),size_is(size/2)] */ }; struct netr_IdentityInfo { struct lsa_String domain_name;/* [keepref] */ uint32_t parameter_control;/* [keepref] */ uint32_t logon_id_low;/* [keepref] */ uint32_t logon_id_high;/* [keepref] */ struct lsa_String account_name;/* [keepref] */ struct lsa_String workstation;/* [keepref] */ }; struct netr_PasswordInfo { struct netr_IdentityInfo identity_info;/* [keepref] */ struct samr_Password lmpassword;/* [keepref] */ struct samr_Password ntpassword;/* [keepref] */ }; struct netr_ChallengeResponse { uint16_t length;/* [keepref] */ uint16_t size;/* [keepref,value(length)] */ uint8_t *data;/* [unique,keepref,length_is(length),size_is(length)] */ }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct netr_NetworkInfo { struct netr_IdentityInfo identity_info;/* [keepref] */ uint8_t challenge[8];/* [keepref] */ struct netr_ChallengeResponse nt;/* [keepref] */ struct netr_ChallengeResponse lm;/* [keepref] */ }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; union netr_LogonLevel { struct netr_PasswordInfo *password;/* [unique,keepref,case] */ struct netr_NetworkInfo *network;/* [unique,keepref,case(2)] */ }/* [public,switch_type(uint16)] */; struct netr_GroupMembership { uint32_t rid;/* [keepref] */ uint32_t attributes;/* [keepref] */ }/* [public] */; struct netr_UserSessionKey { uint8_t key[16];/* [keepref] */ }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct netr_LMSessionKey { uint8_t key[8];/* [keepref] */ }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */; /* bitmap netr_UserFlags */ #define NETLOGON_GUEST ( 0x0001 ) #define NETLOGON_NOENCRYPTION ( 0x0002 ) #define NETLOGON_CACHED_ACCOUNT ( 0x0004 ) #define NETLOGON_USED_LM_PASSWORD ( 0x0008 ) #define NETLOGON_EXTRA_SIDS ( 0x0020 ) #define NETLOGON_SUBAUTH_SESSION_KEY ( 0x0040 ) #define NETLOGON_SERVER_TRUST_ACCOUNT ( 0x0080 ) #define NETLOGON_NTLMV2_ENABLED ( 0x0100 ) #define NETLOGON_RESOURCE_GROUPS ( 0x0200 ) #define NETLOGON_PROFILE_PATH_RETURNED ( 0x0400 ) struct netr_SamBaseInfo { NTTIME last_logon;/* [keepref] */ NTTIME last_logoff;/* [keepref] */ NTTIME acct_expiry;/* [keepref] */ NTTIME last_password_change;/* [keepref] */ NTTIME allow_password_change;/* [keepref] */ NTTIME force_password_change;/* [keepref] */ struct lsa_String account_name;/* [keepref] */ struct lsa_String full_name;/* [keepref] */ struct lsa_String logon_script;/* [keepref] */ struct lsa_String profile_path;/* [keepref] */ struct lsa_String home_directory;/* [keepref] */ struct lsa_String home_drive;/* [keepref] */ uint16_t logon_count;/* [keepref] */ uint16_t bad_password_count;/* [keepref] */ uint32_t rid;/* [keepref] */ uint32_t primary_gid;/* [keepref] */ struct samr_RidWithAttributeArray groups;/* [keepref] */ uint32_t user_flags;/* [keepref] */ struct netr_UserSessionKey key;/* [keepref] */ struct lsa_StringLarge logon_server;/* [keepref] */ struct lsa_StringLarge domain;/* [keepref] */ struct dom_sid2 *domain_sid;/* [unique,keepref] */ struct netr_LMSessionKey LMSessKey;/* [keepref] */ uint32_t acct_flags;/* [keepref] */ uint32_t unknown[7];/* [keepref] */ }; struct netr_SamInfo2 { struct netr_SamBaseInfo base;/* [keepref] */ }; struct netr_SidAttr { struct dom_sid2 *sid;/* [unique,keepref] */ uint32_t attribute;/* [keepref] */ }; struct netr_SamInfo3 { struct netr_SamBaseInfo base;/* [keepref] */ uint32_t sidcount;/* [keepref] */ struct netr_SidAttr *sids;/* [unique,keepref,size_is(sidcount)] */ }/* [public] */; struct netr_SamInfo6 { struct netr_SamBaseInfo base;/* [keepref] */ uint32_t sidcount;/* [keepref] */ struct netr_SidAttr *sids;/* [unique,keepref,size_is(sidcount)] */ struct lsa_String forest;/* [keepref] */ struct lsa_String principle;/* [keepref] */ uint32_t unknown4[20];/* [keepref] */ }; struct netr_PacInfo { uint32_t pac_size;/* [keepref] */ uint8_t *pac;/* [unique,keepref,size_is(pac_size)] */ struct lsa_String logon_domain;/* [keepref] */ struct lsa_String logon_server;/* [keepref] */ struct lsa_String principal_name;/* [keepref] */ uint32_t auth_size;/* [keepref] */ uint8_t *auth;/* [unique,keepref,size_is(auth_size)] */ struct netr_UserSessionKey user_session_key;/* [keepref] */ uint32_t expansionroom[10];/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ }; union netr_Validation { struct netr_SamInfo2 *sam2;/* [unique,keepref,case(2)] */ struct netr_SamInfo3 *sam3;/* [unique,keepref,case(3)] */ struct netr_PacInfo *pac;/* [unique,keepref,case(4)] */ struct netr_SamInfo6 *sam6;/* [unique,keepref,case(6)] */ }/* [public,switch_type(uint16)] */; struct netr_Credential { uint8_t data[8];/* [keepref] */ }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct netr_Authenticator { struct netr_Credential cred;/* [keepref] */ time_t timestamp;/* [keepref] */ }/* [public] */; struct netr_DELTA_DELETE_USER { const char *account_name;/* [unique,keepref,charset(UTF16)] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_USER_KEY16 { uint16_t length;/* [keepref] */ uint16_t size;/* [keepref,value(length)] */ uint32_t flags;/* [keepref] */ struct samr_Password pwd;/* [keepref] */ }; struct netr_PasswordHistory { uint16_t nt_length;/* [keepref] */ uint16_t nt_size;/* [keepref] */ uint32_t nt_flags;/* [keepref] */ uint16_t lm_length;/* [keepref] */ uint16_t lm_size;/* [keepref] */ uint32_t lm_flags;/* [keepref] */ uint8_t *nt_history;/* [keepref] */ uint8_t *lm_history;/* [keepref] */ }; struct netr_USER_KEYS2 { struct netr_USER_KEY16 lmpassword;/* [keepref] */ struct netr_USER_KEY16 ntpassword;/* [keepref] */ struct netr_PasswordHistory lmhistory;/* [keepref] */ }; struct netr_USER_KEY_UNION { struct netr_USER_KEYS2 keys2;/* [keepref] */ }; struct netr_USER_KEYS { uint32_t version;/* [keepref] */ struct netr_USER_KEY_UNION keys;/* [keepref] */ }/* [public] */; struct netr_USER_PRIVATE_INFO { uint8_t SensitiveDataFlag;/* [keepref] */ uint32_t DataLength;/* [keepref] */ uint8_t *SensitiveData;/* [unique,keepref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(DataLength)] */ }; struct netr_DELTA_USER { struct lsa_String account_name;/* [keepref] */ struct lsa_String full_name;/* [keepref] */ uint32_t rid;/* [keepref] */ uint32_t primary_gid;/* [keepref] */ struct lsa_String home_directory;/* [keepref] */ struct lsa_String home_drive;/* [keepref] */ struct lsa_String logon_script;/* [keepref] */ struct lsa_String description;/* [keepref] */ struct lsa_String workstations;/* [keepref] */ NTTIME last_logon;/* [keepref] */ NTTIME last_logoff;/* [keepref] */ struct samr_LogonHours logon_hours;/* [keepref] */ uint16_t bad_password_count;/* [keepref] */ uint16_t logon_count;/* [keepref] */ NTTIME last_password_change;/* [keepref] */ NTTIME acct_expiry;/* [keepref] */ uint32_t acct_flags;/* [keepref] */ struct samr_Password lmpassword;/* [keepref] */ struct samr_Password ntpassword;/* [keepref] */ uint8_t nt_password_present;/* [keepref] */ uint8_t lm_password_present;/* [keepref] */ uint8_t password_expired;/* [keepref] */ struct lsa_String comment;/* [keepref] */ struct lsa_String parameters;/* [keepref] */ uint16_t country_code;/* [keepref] */ uint16_t code_page;/* [keepref] */ struct netr_USER_PRIVATE_INFO user_private_info;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String profile_path;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_DOMAIN { struct lsa_String domain_name;/* [keepref] */ struct lsa_String comment;/* [keepref] */ int64_t force_logoff_time;/* [keepref] */ uint16_t min_password_length;/* [keepref] */ uint16_t password_history_length;/* [keepref] */ int64_t max_password_age;/* [keepref] */ int64_t min_password_age;/* [keepref] */ uint64_t sequence_num;/* [keepref] */ NTTIME domain_create_time;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct netr_AcctLockStr account_lockout;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t logon_to_chgpass;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_GROUP { struct lsa_String group_name;/* [keepref] */ uint32_t rid;/* [keepref] */ uint32_t attributes;/* [keepref] */ struct lsa_String description;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_RENAME { struct lsa_String OldName;/* [keepref] */ struct lsa_String NewName;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_GROUP_MEMBER { uint32_t *rids;/* [unique,keepref,size_is(num_rids)] */ uint32_t *attribs;/* [unique,keepref,size_is(num_rids)] */ uint32_t num_rids;/* [keepref] */ uint32_t unknown1;/* [keepref] */ uint32_t unknown2;/* [keepref] */ uint32_t unknown3;/* [keepref] */ uint32_t unknown4;/* [keepref] */ }; struct netr_DELTA_ALIAS { struct lsa_String alias_name;/* [keepref] */ uint32_t rid;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String description;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_ALIAS_MEMBER { struct lsa_SidArray sids;/* [keepref] */ uint32_t unknown1;/* [keepref] */ uint32_t unknown2;/* [keepref] */ uint32_t unknown3;/* [keepref] */ uint32_t unknown4;/* [keepref] */ }; struct netr_QUOTA_LIMITS { uint32_t pagedpoollimit;/* [keepref] */ uint32_t nonpagedpoollimit;/* [keepref] */ uint32_t minimumworkingsetsize;/* [keepref] */ uint32_t maximumworkingsetsize;/* [keepref] */ uint32_t pagefilelimit;/* [keepref] */ NTTIME timelimit;/* [keepref] */ }; struct netr_DELTA_POLICY { uint32_t maxlogsize;/* [keepref] */ NTTIME auditretentionperiod;/* [keepref] */ uint8_t auditingmode;/* [keepref] */ uint32_t maxauditeventcount;/* [keepref] */ uint32_t *eventauditoptions;/* [unique,keepref,size_is(maxauditeventcount+1)] */ struct lsa_String primary_domain_name;/* [keepref] */ struct dom_sid2 *sid;/* [unique,keepref] */ struct netr_QUOTA_LIMITS quota_limits;/* [keepref] */ uint64_t sequence_num;/* [keepref] */ NTTIME db_create_time;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_TRUSTED_DOMAIN { struct lsa_String domain_name;/* [keepref] */ uint32_t num_controllers;/* [keepref] */ struct lsa_String *controller_names;/* [unique,keepref,size_is(num_controllers)] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t posix_offset;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_DELETE_TRUST { uint16_t unknown;/* [keepref] */ }; struct netr_DELTA_ACCOUNT { uint32_t privilege_entries;/* [keepref] */ uint32_t privilege_control;/* [keepref] */ uint32_t *privilege_attrib;/* [unique,keepref,size_is(privilege_entries)] */ struct lsa_String *privilege_name;/* [unique,keepref,size_is(privilege_entries)] */ struct netr_QUOTA_LIMITS quotalimits;/* [keepref] */ uint32_t system_flags;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; struct netr_DELTA_DELETE_ACCOUNT { uint16_t unknown;/* [keepref] */ }; struct netr_DELTA_DELETE_SECRET { uint16_t unknown;/* [keepref] */ }; struct netr_CIPHER_VALUE { uint32_t len;/* [keepref] */ uint32_t maxlen;/* [keepref] */ uint8_t *cipher_data;/* [unique,keepref,length_is(len),size_is(maxlen)] */ }; struct netr_DELTA_SECRET { struct netr_CIPHER_VALUE current_cipher;/* [keepref] */ NTTIME current_cipher_set_time;/* [keepref] */ struct netr_CIPHER_VALUE old_cipher;/* [keepref] */ NTTIME old_cipher_set_time;/* [keepref] */ uint32_t SecurityInformation;/* [keepref] */ struct sec_desc_buf sdbuf;/* [keepref] */ struct lsa_String unknown1;/* [keepref] */ struct lsa_String unknown2;/* [keepref] */ struct lsa_String unknown3;/* [keepref] */ struct lsa_String unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ uint32_t unknown6;/* [keepref] */ uint32_t unknown7;/* [keepref] */ uint32_t unknown8;/* [keepref] */ }; enum netr_DeltaEnum { NETR_DELTA_DOMAIN=1, NETR_DELTA_GROUP=2, NETR_DELTA_DELETE_GROUP=3, NETR_DELTA_RENAME_GROUP=4, NETR_DELTA_USER=5, NETR_DELTA_DELETE_USER=6, NETR_DELTA_RENAME_USER=7, NETR_DELTA_GROUP_MEMBER=8, NETR_DELTA_ALIAS=9, NETR_DELTA_DELETE_ALIAS=10, NETR_DELTA_RENAME_ALIAS=11, NETR_DELTA_ALIAS_MEMBER=12, NETR_DELTA_POLICY=13, NETR_DELTA_TRUSTED_DOMAIN=14, NETR_DELTA_DELETE_TRUST=15, NETR_DELTA_ACCOUNT=16, NETR_DELTA_DELETE_ACCOUNT=17, NETR_DELTA_SECRET=18, NETR_DELTA_DELETE_SECRET=19, NETR_DELTA_DELETE_GROUP2=20, NETR_DELTA_DELETE_USER2=21, NETR_DELTA_MODIFY_COUNT=22 }; union netr_DELTA_UNION { struct netr_DELTA_DOMAIN *domain;/* [unique,keepref,case(NETR_DELTA_DOMAIN)] */ struct netr_DELTA_GROUP *group;/* [unique,keepref,case(NETR_DELTA_GROUP)] */ struct netr_DELTA_RENAME *rename_group;/* [unique,keepref,case(NETR_DELTA_RENAME_GROUP)] */ struct netr_DELTA_USER *user;/* [unique,keepref,case(NETR_DELTA_USER)] */ struct netr_DELTA_RENAME *rename_user;/* [unique,keepref,case(NETR_DELTA_RENAME_USER)] */ struct netr_DELTA_GROUP_MEMBER *group_member;/* [unique,keepref,case(NETR_DELTA_GROUP_MEMBER)] */ struct netr_DELTA_ALIAS *alias;/* [unique,keepref,case(NETR_DELTA_ALIAS)] */ struct netr_DELTA_RENAME *rename_alias;/* [unique,keepref,case(NETR_DELTA_RENAME_ALIAS)] */ struct netr_DELTA_ALIAS_MEMBER *alias_member;/* [unique,keepref,case(NETR_DELTA_ALIAS_MEMBER)] */ struct netr_DELTA_POLICY *policy;/* [unique,keepref,case(NETR_DELTA_POLICY)] */ struct netr_DELTA_TRUSTED_DOMAIN *trusted_domain;/* [unique,keepref,case(NETR_DELTA_TRUSTED_DOMAIN)] */ struct netr_DELTA_DELETE_TRUST delete_trust;/* [keepref,case(NETR_DELTA_DELETE_TRUST)] */ struct netr_DELTA_ACCOUNT *account;/* [unique,keepref,case(NETR_DELTA_ACCOUNT)] */ struct netr_DELTA_DELETE_ACCOUNT delete_account;/* [keepref,case(NETR_DELTA_DELETE_ACCOUNT)] */ struct netr_DELTA_SECRET *secret;/* [unique,keepref,case(NETR_DELTA_SECRET)] */ struct netr_DELTA_DELETE_SECRET delete_secret;/* [keepref,case(NETR_DELTA_DELETE_SECRET)] */ struct netr_DELTA_DELETE_USER *delete_group;/* [unique,keepref,case(NETR_DELTA_DELETE_GROUP2)] */ struct netr_DELTA_DELETE_USER *delete_user;/* [unique,keepref,case(NETR_DELTA_DELETE_USER2)] */ uint64_t *modified_count;/* [unique,keepref,case(NETR_DELTA_MODIFY_COUNT)] */ }/* [switch_type(netr_DeltaEnum)] */; union netr_DELTA_ID_UNION { uint32_t rid;/* [keepref,case(NETR_DELTA_DOMAIN)] */ struct dom_sid2 *sid;/* [unique,keepref,case(NETR_DELTA_POLICY)] */ const char *name;/* [unique,keepref,charset(UTF16),case(NETR_DELTA_SECRET)] */ }/* [switch_type(netr_DeltaEnum)] */; struct netr_DELTA_ENUM { enum netr_DeltaEnum delta_type;/* [keepref] */ union netr_DELTA_ID_UNION delta_id_union;/* [keepref,switch_is(delta_type)] */ union netr_DELTA_UNION delta_union;/* [keepref,switch_is(delta_type)] */ }; struct netr_DELTA_ENUM_ARRAY { uint32_t num_deltas;/* [keepref] */ struct netr_DELTA_ENUM *delta_enum;/* [unique,keepref,size_is(num_deltas)] */ }; struct netr_UAS_INFO_0 { uint8_t computer_name[16];/* [keepref] */ uint32_t timecreated;/* [keepref] */ uint32_t serial_number;/* [keepref] */ }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct netr_AccountBuffer { DATA_BLOB blob;/* [keepref,flag(LIBNDR_FLAG_REMAINING)] */ }; struct netr_NETLOGON_INFO_1 { uint32_t flags;/* [keepref] */ uint32_t pdc_connection_status;/* [keepref] */ }; struct netr_NETLOGON_INFO_2 { uint32_t flags;/* [keepref] */ uint32_t pdc_connection_status;/* [keepref] */ const char *trusted_dc_name;/* [keepref,charset(UTF16)] */ uint32_t tc_connection_status;/* [keepref] */ }; struct netr_NETLOGON_INFO_3 { uint32_t flags;/* [keepref] */ uint32_t logon_attempts;/* [keepref] */ uint32_t unknown1;/* [keepref] */ uint32_t unknown2;/* [keepref] */ uint32_t unknown3;/* [keepref] */ uint32_t unknown4;/* [keepref] */ uint32_t unknown5;/* [keepref] */ }; union netr_CONTROL_QUERY_INFORMATION { struct netr_NETLOGON_INFO_1 *info1;/* [unique,keepref,case] */ struct netr_NETLOGON_INFO_2 *info2;/* [unique,keepref,case(2)] */ struct netr_NETLOGON_INFO_3 *info3;/* [unique,keepref,case(3)] */ }; enum netr_LogonControlCode { NETLOGON_CONTROL_REDISCOVER=5, NETLOGON_CONTROL_TC_QUERY=6, NETLOGON_CONTROL_TRANSPORT_NOTIFY=7, NETLOGON_CONTROL_SET_DBFLAG=65534 }; union netr_CONTROL_DATA_INFORMATION { const char *domain;/* [unique,keepref,charset(UTF16),case(NETLOGON_CONTROL_REDISCOVER)] */ uint32_t debug_level;/* [keepref,case(NETLOGON_CONTROL_SET_DBFLAG)] */ }; struct netr_DsRGetDCNameInfo { const char *dc_unc;/* [unique,keepref,charset(UTF16)] */ const char *dc_address;/* [unique,keepref,charset(UTF16)] */ int32_t dc_address_type;/* [keepref] */ struct GUID domain_guid;/* [keepref] */ const char *domain_name;/* [unique,keepref,charset(UTF16)] */ const char *forest_name;/* [unique,keepref,charset(UTF16)] */ uint32_t dc_flags;/* [keepref] */ const char *dc_site_name;/* [unique,keepref,charset(UTF16)] */ const char *client_site_name;/* [unique,keepref,charset(UTF16)] */ }; struct netr_Blob { uint32_t length;/* [keepref] */ uint8_t *data;/* [unique,keepref,size_is(length)] */ }; struct netr_BinaryString { uint16_t length;/* [keepref] */ uint16_t size;/* [keepref] */ uint16_t *data;/* [unique,keepref,length_is(length/2),size_is(size/2)] */ }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; struct netr_DomainQuery1 { struct netr_Blob blob;/* [keepref] */ const char *workstation_domain;/* [unique,keepref,charset(UTF16)] */ const char *workstation_site;/* [unique,keepref,charset(UTF16)] */ const char *unknown1;/* [unique,keepref,charset(UTF16)] */ const char *unknown2;/* [unique,keepref,charset(UTF16)] */ const char *unknown3;/* [unique,keepref,charset(UTF16)] */ const char *unknown4;/* [unique,keepref,charset(UTF16)] */ struct netr_BinaryString blob2;/* [keepref] */ struct lsa_String product;/* [keepref] */ struct lsa_String unknown5;/* [keepref] */ struct lsa_String unknown6;/* [keepref] */ uint32_t unknown7[4];/* [keepref] */ }; union netr_DomainQuery { struct netr_DomainQuery1 *query1;/* [unique,keepref,case] */ }; struct netr_DomainTrustInfo { struct lsa_String domainname;/* [keepref] */ struct lsa_String fulldomainname;/* [keepref] */ struct lsa_String forest;/* [keepref] */ struct GUID guid;/* [keepref] */ struct dom_sid2 *sid;/* [unique,keepref] */ struct netr_BinaryString unknown1[4];/* [keepref] */ uint32_t unknown[4];/* [keepref] */ }; struct netr_DomainInfo1 { struct netr_DomainTrustInfo domaininfo;/* [keepref] */ uint32_t num_trusts;/* [keepref] */ struct netr_DomainTrustInfo *trusts;/* [unique,keepref,size_is(num_trusts)] */ uint32_t unknown[14];/* [keepref] */ }; union netr_DomainInfo { struct netr_DomainInfo1 *info1;/* [unique,keepref,case] */ }; struct netr_CryptPassword { uint8_t data[512];/* [keepref] */ uint32_t length;/* [keepref] */ }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; /* bitmap netr_TrustFlags */ #define NETR_TRUST_FLAG_IN_FOREST ( 0x00000001 ) #define NETR_TRUST_FLAG_OUTBOUND ( 0x00000002 ) #define NETR_TRUST_FLAG_TREEROOT ( 0x00000004 ) #define NETR_TRUST_FLAG_PRIMARY ( 0x00000008 ) #define NETR_TRUST_FLAG_NATIVE ( 0x00000010 ) #define NETR_TRUST_FLAG_INBOUND ( 0x00000020 ) enum netr_TrustType { NETR_TRUST_TYPE_DOWNLEVEL=1, NETR_TRUST_TYPE_UPLEVEL=2, NETR_TRUST_TYPE_MIT=3, NETR_TRUST_TYPE_DCE=4 }; /* bitmap netr_TrustAttributes */ #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 ) #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 ) #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 ) #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 ) #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 ) #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 ) #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 ) struct netr_DomainTrust { const char *netbios_name;/* [unique,keepref,charset(UTF16)] */ const char *dns_name;/* [unique,keepref,charset(UTF16)] */ uint32_t trust_flags;/* [keepref] */ uint32_t parent_index;/* [keepref] */ enum netr_TrustType trust_type;/* [keepref] */ uint32_t trust_attributes;/* [keepref] */ struct dom_sid2 *sid;/* [unique,keepref] */ struct GUID guid;/* [keepref] */ }; struct netr_LogonUasLogon { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ const char *workstation;/* [keepref,charset(UTF16)] */ } in; struct { struct netr_UasInfo *info;/* [unique,keepref] */ WERROR result; } out; }; struct netr_LogonUasLogoff { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ const char *workstation;/* [keepref,charset(UTF16)] */ } in; struct { struct netr_UasLogoffInfo *info;/* [keepref,ref] */ WERROR result; } out; }; struct netr_LogonSamLogon { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *computer_name;/* [unique,keepref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [unique,keepref] */ struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ uint16_t logon_level;/* [keepref] */ union netr_LogonLevel logon;/* [keepref,switch_is(logon_level)] */ uint16_t validation_level;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ union netr_Validation *validation;/* [keepref,ref,switch_is(validation_level)] */ uint8_t *authoritative;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_LogonSamLogoff { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *computer_name;/* [unique,keepref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [unique,keepref] */ struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ uint16_t logon_level;/* [keepref] */ union netr_LogonLevel logon;/* [keepref,switch_is(logon_level)] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ NTSTATUS result; } out; }; struct netr_ServerReqChallenge { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Credential *credentials;/* [keepref,ref] */ } in; struct { struct netr_Credential *credentials;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_ServerAuthenticate { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type;/* [keepref] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Credential *credentials;/* [keepref,ref] */ } in; struct { struct netr_Credential *credentials;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_ServerPasswordSet { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type;/* [keepref] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct samr_Password new_password;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_DatabaseDeltas { struct { const char *logon_server;/* [keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ enum netr_SamDatabaseID database_id;/* [keepref] */ uint64_t *sequence_num;/* [keepref,ref] */ uint32_t preferredmaximumlength;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint64_t *sequence_num;/* [keepref,ref] */ struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [unique,keepref] */ NTSTATUS result; } out; }; struct netr_DatabaseSync { struct { const char *logon_server;/* [keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ enum netr_SamDatabaseID database_id;/* [keepref] */ uint32_t *sync_context;/* [keepref,ref] */ uint32_t preferredmaximumlength;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint32_t *sync_context;/* [keepref,ref] */ struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [unique,keepref] */ NTSTATUS result; } out; }; struct netr_AccountDeltas { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ struct netr_UAS_INFO_0 uas;/* [keepref] */ uint32_t count;/* [keepref] */ uint32_t level;/* [keepref] */ uint32_t buffersize;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ struct netr_AccountBuffer *buffer;/* [keepref,ref,subcontext(4)] */ uint32_t *count_returned;/* [keepref,ref] */ uint32_t *total_entries;/* [keepref,ref] */ struct netr_UAS_INFO_0 *recordid;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_AccountSync { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint32_t reference;/* [keepref] */ uint32_t level;/* [keepref] */ uint32_t buffersize;/* [keepref] */ struct netr_UAS_INFO_0 *recordid;/* [keepref,ref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ struct netr_AccountBuffer *buffer;/* [keepref,ref,subcontext(4)] */ uint32_t *count_returned;/* [keepref,ref] */ uint32_t *total_entries;/* [keepref,ref] */ uint32_t *next_reference;/* [keepref,ref] */ struct netr_UAS_INFO_0 *recordid;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_GetDcName { struct { const char *logon_server;/* [keepref,charset(UTF16)] */ const char *domainname;/* [unique,keepref,charset(UTF16)] */ } in; struct { const char **dcname;/* [keepref,ref,charset(UTF16)] */ NTSTATUS result; } out; }; struct netr_LogonControl { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ enum netr_LogonControlCode function_code;/* [keepref] */ uint32_t level;/* [keepref] */ } in; struct { union netr_CONTROL_QUERY_INFORMATION *info;/* [keepref,ref,switch_is(level)] */ WERROR result; } out; }; struct netr_GetAnyDCName { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ const char *domainname;/* [unique,keepref,charset(UTF16)] */ } in; struct { const char **dcname;/* [keepref,ref,charset(UTF16)] */ WERROR result; } out; }; struct netr_LogonControl2 { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ uint32_t function_code;/* [keepref] */ uint32_t level;/* [keepref] */ union netr_CONTROL_DATA_INFORMATION data;/* [keepref,switch_is(function_code)] */ } in; struct { union netr_CONTROL_QUERY_INFORMATION *query;/* [keepref,ref,switch_is(level)] */ WERROR result; } out; }; struct netr_ServerAuthenticate2 { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type;/* [keepref] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Credential *credentials;/* [keepref,ref] */ uint32_t *negotiate_flags;/* [keepref,ref] */ } in; struct { struct netr_Credential *credentials;/* [keepref,ref] */ uint32_t *negotiate_flags;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_DatabaseSync2 { struct { const char *logon_server;/* [keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ enum netr_SamDatabaseID database_id;/* [keepref] */ uint16_t restart_state;/* [keepref] */ uint32_t *sync_context;/* [keepref,ref] */ uint32_t preferredmaximumlength;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint32_t *sync_context;/* [keepref,ref] */ struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [unique,keepref] */ NTSTATUS result; } out; }; struct netr_DatabaseRedo { struct { const char *logon_server;/* [keepref,charset(UTF16)] */ const char *computername;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint8_t *change_log_entry;/* [unique,keepref,size_is(change_log_entry_size)] */ uint32_t change_log_entry_size;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [unique,keepref] */ NTSTATUS result; } out; }; struct netr_LogonControl2Ex { struct { const char *logon_server;/* [unique,keepref,charset(UTF16)] */ uint32_t function_code;/* [keepref] */ uint32_t level;/* [keepref] */ union netr_CONTROL_DATA_INFORMATION data;/* [keepref,switch_is(function_code)] */ } in; struct { union netr_CONTROL_QUERY_INFORMATION *query;/* [keepref,ref,switch_is(level)] */ WERROR result; } out; }; struct netr_NETRENUMERATETRUSTEDDOMAINS { struct { WERROR result; } out; }; struct netr_DsRGetDCName { struct { const char *server_unc;/* [unique,keepref,charset(UTF16)] */ const char *domain_name;/* [unique,keepref,charset(UTF16)] */ struct GUID *domain_guid;/* [unique,keepref] */ struct GUID *site_guid;/* [unique,keepref] */ uint32_t flags;/* [keepref] */ } in; struct { struct netr_DsRGetDCNameInfo *info;/* [unique,keepref] */ WERROR result; } out; }; struct netr_NETRLOGONDUMMYROUTINE1 { struct { WERROR result; } out; }; struct netr_NETRLOGONSETSERVICEBITS { struct { WERROR result; } out; }; struct netr_NETRLOGONGETTRUSTRID { struct { WERROR result; } out; }; struct netr_NETRLOGONCOMPUTESERVERDIGEST { struct { WERROR result; } out; }; struct netr_NETRLOGONCOMPUTECLIENTDIGEST { struct { WERROR result; } out; }; struct netr_ServerAuthenticate3 { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type;/* [keepref] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Credential *credentials;/* [keepref,ref] */ uint32_t *negotiate_flags;/* [keepref,ref] */ } in; struct { struct netr_Credential *credentials;/* [keepref,ref] */ uint32_t *negotiate_flags;/* [keepref,ref] */ uint32_t *rid;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_DsRGetDCNameEx { struct { const char *server_unc;/* [unique,keepref,charset(UTF16)] */ const char *domain_name;/* [unique,keepref,charset(UTF16)] */ struct GUID *domain_guid;/* [unique,keepref] */ const char *site_name;/* [unique,keepref,charset(UTF16)] */ uint32_t flags;/* [keepref] */ } in; struct { struct netr_DsRGetDCNameInfo *info;/* [unique,keepref] */ WERROR result; } out; }; struct netr_DsRGetSiteName { struct { const char *computer_name;/* [unique,keepref,charset(UTF16)] */ } in; struct { const char **site;/* [keepref,ref,charset(UTF16)] */ WERROR result; } out; }; struct netr_LogonGetDomainInfo { struct { const char *server_name;/* [keepref,charset(UTF16)] */ const char *computer_name;/* [unique,keepref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [keepref,ref] */ struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ uint32_t level;/* [keepref] */ union netr_DomainQuery query;/* [keepref,switch_is(level)] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ union netr_DomainInfo *info;/* [keepref,ref,switch_is(level)] */ NTSTATUS result; } out; }; struct netr_ServerPasswordSet2 { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *account_name;/* [keepref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type;/* [keepref] */ const char *computer_name;/* [keepref,charset(UTF16)] */ struct netr_Authenticator credential;/* [keepref] */ struct netr_CryptPassword new_password;/* [keepref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_NETRSERVERPASSWORDGET { struct { WERROR result; } out; }; struct netr_NETRLOGONSENDTOSAM { struct { WERROR result; } out; }; struct netr_DSRADDRESSTOSITENAMESW { struct { WERROR result; } out; }; struct netr_DsRGetDCNameEx2 { struct { const char *server_unc;/* [unique,keepref,charset(UTF16)] */ const char *client_account;/* [unique,keepref,charset(UTF16)] */ uint32_t mask;/* [keepref] */ const char *domain_name;/* [unique,keepref,charset(UTF16)] */ struct GUID *domain_guid;/* [unique,keepref] */ const char *site_name;/* [unique,keepref,charset(UTF16)] */ uint32_t flags;/* [keepref] */ } in; struct { struct netr_DsRGetDCNameInfo *info;/* [unique,keepref] */ WERROR result; } out; }; struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN { struct { WERROR result; } out; }; struct netr_NETRENUMERATETRUSTEDDOMAINSEX { struct { WERROR result; } out; }; struct netr_DSRADDRESSTOSITENAMESEXW { struct { WERROR result; } out; }; struct netr_DSRGETDCSITECOVERAGEW { struct { WERROR result; } out; }; struct netr_LogonSamLogonEx { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *computer_name;/* [unique,keepref,charset(UTF16)] */ uint16_t logon_level;/* [keepref] */ union netr_LogonLevel logon;/* [keepref,switch_is(logon_level)] */ uint16_t validation_level;/* [keepref] */ uint32_t *flags;/* [keepref,ref] */ } in; struct { union netr_Validation *validation;/* [keepref,ref,switch_is(validation_level)] */ uint8_t *authoritative;/* [keepref,ref] */ uint32_t *flags;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_DsrEnumerateDomainTrusts { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ uint32_t trust_flags;/* [keepref] */ } in; struct { uint32_t *count;/* [keepref,ref] */ struct netr_DomainTrust **trusts;/* [keepref,ref,size_is(count)] */ WERROR result; } out; }; struct netr_DSRDEREGISTERDNSHOSTRECORDS { struct { WERROR result; } out; }; struct netr_NETRSERVERTRUSTPASSWORDSGET { struct { WERROR result; } out; }; struct netr_DSRGETFORESTTRUSTINFORMATION { struct { WERROR result; } out; }; struct netr_NETRGETFORESTTRUSTINFORMATION { struct { WERROR result; } out; }; struct netr_LogonSamLogonWithFlags { struct { const char *server_name;/* [unique,keepref,charset(UTF16)] */ const char *computer_name;/* [unique,keepref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [unique,keepref] */ struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ uint16_t logon_level;/* [keepref] */ union netr_LogonLevel logon;/* [keepref,switch_is(logon_level)] */ uint16_t validation_level;/* [keepref] */ uint32_t *flags;/* [keepref,ref] */ } in; struct { struct netr_Authenticator *return_authenticator;/* [unique,keepref] */ union netr_Validation *validation;/* [keepref,ref,switch_is(validation_level)] */ uint8_t *authoritative;/* [keepref,ref] */ uint32_t *flags;/* [keepref,ref] */ NTSTATUS result; } out; }; struct netr_NETRSERVERGETTRUSTINFO { struct { WERROR result; } out; }; #endif /* _HEADER_netlogon */