📄 netlogon.idl
字号:
/*****************/ /* Function 0x12 */ WERROR netr_LogonControl2Ex( [in,unique] [string,charset(UTF16)] uint16 *logon_server, [in] uint32 function_code, [in] uint32 level, [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION data, [out][switch_is(level)] netr_CONTROL_QUERY_INFORMATION query ); /*****************/ /* Function 0x13 */ typedef struct { uint32 length; [size_is(length)] uint8 *data; } netr_Blob; WERROR netr_NetrEnumerateTrustedDomains( [in,unique] [string,charset(UTF16)] uint16 *server_name, [out,ref] netr_Blob *trusted_domains_blob ); /*****************/ /* Function 0x14 */ /* two unkown bits still: DS_IP_VERSION_AGNOSTIC and * DS_TRY_NEXTCLOSEST_SITE - Guenther */ typedef [bitmap32bit] bitmap { DS_FORCE_REDISCOVERY = 0x00000001, DS_DIRECTORY_SERVICE_REQUIRED = 0x00000010, DS_DIRECTORY_SERVICE_PREFERRED = 0x00000020, DS_GC_SERVER_REQUIRED = 0x00000040, DS_PDC_REQUIRED = 0x00000080, DS_BACKGROUND_ONLY = 0x00000100, DS_IP_REQUIRED = 0x00000200, DS_KDC_REQUIRED = 0x00000400, DS_TIMESERV_REQUIRED = 0x00000800, DS_WRITABLE_REQUIRED = 0x00001000, DS_GOOD_TIMESERV_PREFERRED = 0x00002000, DS_AVOID_SELF = 0x00004000, DS_ONLY_LDAP_NEEDED = 0x00008000, DS_IS_FLAT_NAME = 0x00010000, DS_IS_DNS_NAME = 0x00020000, DS_RETURN_DNS_NAME = 0x40000000, DS_RETURN_FLAT_NAME = 0x80000000 } netr_DsRGetDCName_flags; typedef [v1_enum] enum { DS_ADDRESS_TYPE_INET = 1, DS_ADDRESS_TYPE_NETBIOS = 2 } netr_DsRGetDCNameInfo_AddressType; typedef [bitmap32bit] bitmap { DS_SERVER_PDC = NBT_SERVER_PDC, DS_SERVER_GC = NBT_SERVER_GC, DS_SERVER_LDAP = NBT_SERVER_LDAP, DS_SERVER_DS = NBT_SERVER_DS, DS_SERVER_KDC = NBT_SERVER_KDC, DS_SERVER_TIMESERV = NBT_SERVER_TIMESERV, DS_SERVER_CLOSEST = NBT_SERVER_CLOSEST, DS_SERVER_WRITABLE = NBT_SERVER_WRITABLE, DS_SERVER_GOOD_TIMESERV = NBT_SERVER_GOOD_TIMESERV, DS_SERVER_NDNC = 0x00000400, DS_DNS_CONTROLLER = 0x20000000, DS_DNS_DOMAIN = 0x40000000, DS_DNS_FOREST = 0x80000000 } netr_DsR_DcFlags; typedef struct { [string,charset(UTF16)] uint16 *dc_unc; [string,charset(UTF16)] uint16 *dc_address; netr_DsRGetDCNameInfo_AddressType dc_address_type; GUID domain_guid; [string,charset(UTF16)] uint16 *domain_name; [string,charset(UTF16)] uint16 *forest_name; netr_DsR_DcFlags dc_flags; [string,charset(UTF16)] uint16 *dc_site_name; [string,charset(UTF16)] uint16 *client_site_name; } netr_DsRGetDCNameInfo; WERROR netr_DsRGetDCName( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *domain_name, [in,unique] GUID *domain_guid, [in,unique] GUID *site_guid, [in] netr_DsRGetDCName_flags flags, [out,unique] netr_DsRGetDCNameInfo *info ); /*****************/ /* Function 0x15 */ [todo] WERROR netr_NETRLOGONDUMMYROUTINE1(); /****************/ /* Function 0x16 */ [todo] WERROR netr_NETRLOGONSETSERVICEBITS(); /****************/ /* Function 0x17 */ WERROR netr_LogonGetTrustRid( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,unique] [string,charset(UTF16)] uint16 *domain_name, [out,ref] uint32 *rid ); /****************/ /* Function 0x18 */ [todo] WERROR netr_NETRLOGONCOMPUTESERVERDIGEST(); /****************/ /* Function 0x19 */ [todo] WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST(); /****************/ /* Function 0x1a */ [public] NTSTATUS netr_ServerAuthenticate3( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [string,charset(UTF16)] uint16 account_name[], [in] netr_SchannelType secure_channel_type, [in] [string,charset(UTF16)] uint16 computer_name[], [in,out,ref] netr_Credential *credentials, [in,out,ref] uint32 *negotiate_flags, [out,ref] uint32 *rid ); /****************/ /* Function 0x1b */ WERROR netr_DsRGetDCNameEx( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *domain_name, [in,unique] GUID *domain_guid, [in,unique] [string,charset(UTF16)] uint16 *site_name, [in] netr_DsRGetDCName_flags flags, [out,unique] netr_DsRGetDCNameInfo *info ); /****************/ /* Function 0x1c */ WERROR netr_DsRGetSiteName( [in,unique] [string,charset(UTF16)] uint16 *computer_name, [out,unique] [string,charset(UTF16)] uint16 *site ); /****************/ /* Function 0x1d */ typedef [flag(NDR_PAHEX)] struct { uint16 length; uint16 size; [size_is(size/2),length_is(length/2)] uint16 *data; } netr_BinaryString; typedef struct { netr_Blob blob; [string,charset(UTF16)] uint16 *workstation_domain; [string,charset(UTF16)] uint16 *workstation_site; [string,charset(UTF16)] uint16 *unknown1; [string,charset(UTF16)] uint16 *unknown2; [string,charset(UTF16)] uint16 *unknown3; [string,charset(UTF16)] uint16 *unknown4; netr_BinaryString blob2; lsa_String product; lsa_String unknown5; lsa_String unknown6; uint32 unknown7[4]; } netr_DomainQuery1; typedef union { [case(1)] netr_DomainQuery1 *query1; [case(2)] netr_DomainQuery1 *query1; } netr_DomainQuery; typedef struct { lsa_String domainname; lsa_String fulldomainname; lsa_String forest; GUID guid; dom_sid2 *sid; netr_BinaryString unknown1[4]; uint32 unknown[4]; } netr_DomainTrustInfo; typedef struct { netr_DomainTrustInfo domaininfo; uint32 num_trusts; [size_is(num_trusts)] netr_DomainTrustInfo *trusts; uint32 unknown[14]; /* room for expansion? */ } netr_DomainInfo1; typedef union { [case(1)] netr_DomainInfo1 *info1; [case(2)] netr_DomainInfo1 *info1; } netr_DomainInfo; NTSTATUS netr_LogonGetDomainInfo( [in] [string,charset(UTF16)] uint16 server_name[], [in,unique] [string,charset(UTF16)] uint16 *computer_name, [in,ref] netr_Authenticator *credential, [in,out,ref] netr_Authenticator *return_authenticator, [in] uint32 level, [in,switch_is(level)] netr_DomainQuery query, [out,switch_is(level)] netr_DomainInfo info ); typedef [flag(NDR_PAHEX)] struct { uint8 data[512]; uint32 length; } netr_CryptPassword; /*****************/ /* Function 0x1e */ NTSTATUS netr_ServerPasswordSet2( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [string,charset(UTF16)] uint16 account_name[], [in] netr_SchannelType secure_channel_type, [in] [string,charset(UTF16)] uint16 computer_name[], [in] netr_Authenticator credential, [in] netr_CryptPassword new_password, [out] netr_Authenticator return_authenticator ); /****************/ /* Function 0x1f */ WERROR netr_ServerPasswordGet( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [string,charset(UTF16)] uint16 account_name[], [in] netr_SchannelType secure_channel_type, [in] [string,charset(UTF16)] uint16 computer_name[], [in,ref] netr_Authenticator *credential, [out,ref] netr_Authenticator *return_authenticator, [out,ref] samr_Password *password ); /****************/ /* Function 0x20 */ [todo] WERROR netr_NETRLOGONSENDTOSAM(); /****************/ /* Function 0x21 */ typedef struct { uint32 count; [size_is(count)] lsa_String *sitename; } netr_DsRAddressToSitenamesWCtr; typedef struct { [size_is(size)] uint8 *buffer; uint32 size; } netr_DsRAddress; WERROR netr_DsRAddressToSitenamesW( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [range(0,32000)] uint32 count, [in] [size_is(count)] [ref] netr_DsRAddress *addresses, [out] [ref] netr_DsRAddressToSitenamesWCtr **ctr ); /****************/ /* Function 0x22 */ WERROR netr_DsRGetDCNameEx2( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *client_account, [in] samr_AcctFlags mask, [in,unique] [string,charset(UTF16)] uint16 *domain_name, [in,unique] GUID *domain_guid, [in,unique] [string,charset(UTF16)] uint16 *site_name, [in] netr_DsRGetDCName_flags flags, [out,unique] netr_DsRGetDCNameInfo *info ); /****************/ /* Function 0x23 */ [todo] WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(); /****************/ /* Function 0x24 */ typedef [bitmap32bit] bitmap { NETR_TRUST_FLAG_IN_FOREST = 0x00000001, NETR_TRUST_FLAG_OUTBOUND = 0x00000002, NETR_TRUST_FLAG_TREEROOT = 0x00000004, NETR_TRUST_FLAG_PRIMARY = 0x00000008, NETR_TRUST_FLAG_NATIVE = 0x00000010, NETR_TRUST_FLAG_INBOUND = 0x00000020 } netr_TrustFlags; typedef [v1_enum] enum { NETR_TRUST_TYPE_DOWNLEVEL = 1, NETR_TRUST_TYPE_UPLEVEL = 2, NETR_TRUST_TYPE_MIT = 3, NETR_TRUST_TYPE_DCE = 4 } netr_TrustType; typedef [bitmap32bit] bitmap { NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE = 0x00000001, NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY = 0x00000002, NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = 0x00000004, NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE = 0x00000008, NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION = 0x00000010, NETR_TRUST_ATTRIBUTE_WITHIN_FOREST = 0x00000020, NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL = 0x00000040 } netr_TrustAttributes; typedef struct { [string,charset(UTF16)] uint16 *netbios_name; [string,charset(UTF16)] uint16 *dns_name; netr_TrustFlags trust_flags; uint32 parent_index; netr_TrustType trust_type; netr_TrustAttributes trust_attributes; dom_sid2 *sid; GUID guid; } netr_DomainTrust; typedef struct { uint32 count; [size_is(count)] netr_DomainTrust *array; } netr_DomainTrustList; WERROR netr_NetrEnumerateTrustedDomainsEx( [in,unique] [string,charset(UTF16)] uint16 *server_name, [out,ref] netr_DomainTrustList *dom_trust_list ); /****************/ /* Function 0x25 */ typedef struct { uint32 count; [size_is(count)] lsa_String *sitename; [size_is(count)] lsa_String *subnetname; } netr_DsRAddressToSitenamesExWCtr; WERROR netr_DsRAddressToSitenamesExW( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [range(0,32000)] uint32 count, [in] [size_is(count)] [ref] netr_DsRAddress *addresses, [out] [ref] netr_DsRAddressToSitenamesExWCtr **ctr ); /****************/ /* Function 0x26 */ typedef struct { uint32 num_sites; [size_is(num_sites)] [unique] lsa_String *sites; } DcSitesCtr; WERROR netr_DsrGetDcSiteCoverageW( [in,unique] [string,charset(UTF16)] uint16 *server_name, [out,unique] DcSitesCtr *ctr ); /****************/ /* Function 0x27 */ NTSTATUS netr_LogonSamLogonEx( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,unique] [string,charset(UTF16)] uint16 *computer_name, [in] uint16 logon_level, [in] [switch_is(logon_level)] netr_LogonLevel logon, [in] uint16 validation_level, [out] [switch_is(validation_level)] netr_Validation validation, [out] uint8 authoritative, [in,out] uint32 flags ); /****************/ /* Function 0x28 */ WERROR netr_DsrEnumerateDomainTrusts( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] netr_TrustFlags trust_flags, [out] uint32 count, [out,unique,size_is(count)] netr_DomainTrust *trusts ); /****************/ /* Function 0x29 */ WERROR netr_DsrDeregisterDNSHostRecords( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,unique] [string,charset(UTF16)] uint16 *domain, [in,unique] GUID *domain_guid, [in,unique] GUID *dsa_guid, [in,ref] [string,charset(UTF16)] uint16 *dns_host ); /****************/ /* Function 0x2a */ NTSTATUS netr_ServerTrustPasswordsGet( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in] [string,charset(UTF16)] uint16 account_name[], [in] netr_SchannelType secure_channel_type, [in] [string,charset(UTF16)] uint16 computer_name[], [in,ref] netr_Authenticator *credential, [out,ref] netr_Authenticator *return_authenticator, [out,ref] samr_Password *password, [out,ref] samr_Password *password2 ); /****************/ /* Function 0x2b */ const int DS_GFTI_UPDATE_TDO = 0x1; WERROR netr_DsRGetForestTrustInformation( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name, [in] uint32 flags, [out,ref] lsa_ForestTrustInformation **forest_trust_info ); /****************/ /* Function 0x2c */ WERROR netr_GetForestTrustInformation( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,ref] [string,charset(UTF16)] uint16 *trusted_domain_name, [in,ref] netr_Authenticator *credential, [out,ref] netr_Authenticator *return_authenticator, [in] uint32 flags, [out,ref] lsa_ForestTrustInformation **forest_trust_info ); /****************/ /* Function 0x2d */ /* this is the ADS varient. I don't yet know what the "flags" are for */ NTSTATUS netr_LogonSamLogonWithFlags( [in,unique] [string,charset(UTF16)] uint16 *server_name, [in,unique] [string,charset(UTF16)] uint16 *computer_name, [in,unique] netr_Authenticator *credential, [in,out,unique] netr_Authenticator *return_authenticator, [in] uint16 logon_level, [in] [switch_is(logon_level)] netr_LogonLevel logon, [in] uint16 validation_level, [out] [switch_is(validation_level)] netr_Validation validation, [out] uint8 authoritative, [in,out] uint32 flags ); /****************/ /* Function 0x2e */ [todo] WERROR netr_NETRSERVERGETTRUSTINFO();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -