📄 lsa.idl
字号:
lsa_String netbios_name; dom_sid2 *sid; } lsa_TrustDomainInfoBasic; typedef struct { lsa_StringLarge domain_name; lsa_StringLarge netbios_name; dom_sid2 *sid; uint32 trust_direction; uint32 trust_type; uint32 trust_attributes; } lsa_TrustDomainInfoInfoEx; typedef struct { NTTIME_hyper last_update_time; uint32 secret_type; lsa_DATA_BUF2 data; } lsa_TrustDomainInfoBuffer; typedef struct { uint32 incoming_count; lsa_TrustDomainInfoBuffer *incoming_current_auth_info; lsa_TrustDomainInfoBuffer *incoming_previous_auth_info; uint32 outgoing_count; lsa_TrustDomainInfoBuffer *outgoing_current_auth_info; lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info; } lsa_TrustDomainInfoAuthInfo; typedef struct { lsa_TrustDomainInfoInfoEx info_ex; lsa_TrustDomainInfoPosixOffset posix_offset; lsa_TrustDomainInfoAuthInfo auth_info; } lsa_TrustDomainInfoFullInfo; typedef struct { lsa_TrustDomainInfoInfoEx info_ex; lsa_DATA_BUF2 data1; } lsa_TrustDomainInfo11; typedef struct { lsa_TrustDomainInfoInfoEx info_ex; lsa_DATA_BUF2 data1; lsa_TrustDomainInfoPosixOffset posix_offset; lsa_TrustDomainInfoAuthInfo auth_info; } lsa_TrustDomainInfoInfoAll; typedef [switch_type(lsa_TrustDomInfoEnum)] union { [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name; [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset; [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password; [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] lsa_TrustDomainInfoBasic info_basic; [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] lsa_TrustDomainInfoInfoEx info_ex; [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] lsa_TrustDomainInfoAuthInfo auth_info; [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] lsa_TrustDomainInfoFullInfo full_info; [case(LSA_TRUSTED_DOMAIN_INFO_11)] lsa_TrustDomainInfo11 info11; [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)] lsa_TrustDomainInfoInfoAll info_all; } lsa_TrustedDomainInfo; /* Function: 0x1a */ NTSTATUS lsa_QueryTrustedDomainInfo( [in] policy_handle *trustdom_handle, [in] lsa_TrustDomInfoEnum level, [out,switch_is(level),unique] lsa_TrustedDomainInfo *info ); /* Function: 0x1b */ [todo] NTSTATUS lsa_SetInformationTrustedDomain(); /* Function: 0x1c */ [public] NTSTATUS lsa_OpenSecret( [in] policy_handle *handle, [in] lsa_String name, [in] uint32 access_mask, [out] policy_handle *sec_handle ); /* Function: 0x1d */ [public] NTSTATUS lsa_SetSecret( [in] policy_handle *sec_handle, [in,unique] lsa_DATA_BUF *new_val, [in,unique] lsa_DATA_BUF *old_val ); typedef struct { lsa_DATA_BUF *buf; } lsa_DATA_BUF_PTR; /* Function: 0x1e */ [public] NTSTATUS lsa_QuerySecret ( [in] policy_handle *sec_handle, [in,out,unique] lsa_DATA_BUF_PTR *new_val, [in,out,unique] NTTIME_hyper *new_mtime, [in,out,unique] lsa_DATA_BUF_PTR *old_val, [in,out,unique] NTTIME_hyper *old_mtime ); /* Function: 0x1f */ NTSTATUS lsa_LookupPrivValue( [in] policy_handle *handle, [in] lsa_String *name, [out] lsa_LUID *luid ); /* Function: 0x20 */ NTSTATUS lsa_LookupPrivName ( [in] policy_handle *handle, [in] lsa_LUID *luid, [out,unique] lsa_StringLarge *name ); /*******************/ /* Function: 0x21 */ NTSTATUS lsa_LookupPrivDisplayName ( [in] policy_handle *handle, [in] lsa_String *name, [out,unique] lsa_StringLarge *disp_name, /* see http://www.microsoft.com/globaldev/nlsweb/ for language definitions */ [in,out] uint16 *language_id, [in] uint16 unknown ); /* Function: 0x22 */ [todo] NTSTATUS lsa_DeleteObject(); /*******************/ /* Function: 0x23 */ NTSTATUS lsa_EnumAccountsWithUserRight ( [in] policy_handle *handle, [in,unique] lsa_String *name, [out] lsa_SidArray *sids ); /* Function: 0x24 */ typedef struct { [string,charset(UTF16)] uint16 *name; } lsa_RightAttribute; typedef struct { uint32 count; [size_is(count)] lsa_StringLarge *names; } lsa_RightSet; NTSTATUS lsa_EnumAccountRights ( [in] policy_handle *handle, [in] dom_sid2 *sid, [out] lsa_RightSet *rights ); /**********************/ /* Function: 0x25 */ NTSTATUS lsa_AddAccountRights ( [in] policy_handle *handle, [in] dom_sid2 *sid, [in] lsa_RightSet *rights ); /**********************/ /* Function: 0x26 */ NTSTATUS lsa_RemoveAccountRights ( [in] policy_handle *handle, [in] dom_sid2 *sid, [in] uint32 unknown, [in] lsa_RightSet *rights ); /* Function: 0x27 */ NTSTATUS lsa_QueryTrustedDomainInfoBySid( [in] policy_handle *handle, [in] dom_sid2 *dom_sid, [in] lsa_TrustDomInfoEnum level, [out,switch_is(level),unique] lsa_TrustedDomainInfo *info ); /* Function: 0x28 */ [todo] NTSTATUS lsa_SetTrustedDomainInfo(); /* Function: 0x29 */ NTSTATUS lsa_DeleteTrustedDomain( [in] policy_handle *handle, [in] dom_sid2 *dom_sid ); /* Function: 0x2a */ [todo] NTSTATUS lsa_StorePrivateData(); /* Function: 0x2b */ [todo] NTSTATUS lsa_RetrievePrivateData(); /**********************/ /* Function: 0x2c */ [public] NTSTATUS lsa_OpenPolicy2 ( [in,unique] [string,charset(UTF16)] uint16 *system_name, [in] lsa_ObjectAttribute *attr, [in] uint32 access_mask, [out] policy_handle *handle ); /**********************/ /* Function: 0x2d */ typedef struct { lsa_String *string; } lsa_StringPointer; NTSTATUS lsa_GetUserName( [in,unique] [string,charset(UTF16)] uint16 *system_name, [in,out,unique] lsa_String *account_name, [in,out,unique] lsa_StringPointer *authority_name ); /**********************/ /* Function: 0x2e */ NTSTATUS lsa_QueryInfoPolicy2( [in] policy_handle *handle, [in] lsa_PolicyInfo level, [out,unique,switch_is(level)] lsa_PolicyInformation *info ); /* Function 0x2f */ NTSTATUS lsa_SetInfoPolicy2( [in] policy_handle *handle, [in] lsa_PolicyInfo level, [in,switch_is(level)] lsa_PolicyInformation *info ); /**********************/ /* Function 0x30 */ NTSTATUS lsa_QueryTrustedDomainInfoByName( [in] policy_handle *handle, [in] lsa_String trusted_domain, [in] lsa_TrustDomInfoEnum level, [out,unique,switch_is(level)] lsa_TrustedDomainInfo *info ); /**********************/ /* Function 0x31 */ NTSTATUS lsa_SetTrustedDomainInfoByName( [in] policy_handle *handle, [in] lsa_String trusted_domain, [in] lsa_TrustDomInfoEnum level, [in,unique,switch_is(level)] lsa_TrustedDomainInfo *info ); /* Function 0x32 */ /* w2k3 treats max_size as max_domains*82 */ const int LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER = 82; typedef struct { uint32 count; [size_is(count)] lsa_TrustDomainInfoInfoEx *domains; } lsa_DomainListEx; NTSTATUS lsa_EnumTrustedDomainsEx ( [in] policy_handle *handle, [in,out] uint32 *resume_handle, [out] lsa_DomainListEx *domains, [in] uint32 max_size ); /* Function 0x33 */ [todo] NTSTATUS lsa_CreateTrustedDomainEx(); /* Function 0x34 */ NTSTATUS lsa_CloseTrustedDomainEx( [in,out] policy_handle *handle ); /* Function 0x35 */ /* w2k3 returns either 0x000bbbd000000000 or 0x000a48e800000000 for unknown6 - gd */ typedef struct { uint32 enforce_restrictions; hyper service_tkt_lifetime; hyper user_tkt_lifetime; hyper user_tkt_renewaltime; hyper clock_skew; hyper unknown6; } lsa_DomainInfoKerberos; typedef struct { uint32 blob_size; [size_is(blob_size)] uint8 *efs_blob; } lsa_DomainInfoEfs; typedef enum { LSA_DOMAIN_INFO_POLICY_EFS=2, LSA_DOMAIN_INFO_POLICY_KERBEROS=3 } lsa_DomainInfoEnum; typedef [switch_type(uint16)] union { [case(LSA_DOMAIN_INFO_POLICY_EFS)] lsa_DomainInfoEfs efs_info; [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] lsa_DomainInfoKerberos kerberos_info; } lsa_DomainInformationPolicy; NTSTATUS lsa_QueryDomainInformationPolicy( [in] policy_handle *handle, [in] uint16 level, [out,unique,switch_is(level)] lsa_DomainInformationPolicy *info ); /* Function 0x36 */ NTSTATUS lsa_SetDomainInformationPolicy( [in] policy_handle *handle, [in] uint16 level, [in,unique,switch_is(level)] lsa_DomainInformationPolicy *info ); /**********************/ /* Function 0x37 */ NTSTATUS lsa_OpenTrustedDomainByName( [in] policy_handle *handle, [in] lsa_String name, [in] uint32 access_mask, [out] policy_handle *trustdom_handle ); /* Function 0x38 */ [todo] NTSTATUS lsa_TestCall(); /**********************/ /* Function 0x39 */ typedef struct { lsa_SidType sid_type; lsa_String name; uint32 sid_index; uint32 unknown; } lsa_TranslatedName2; typedef struct { [range(0,1000)] uint32 count; [size_is(count)] lsa_TranslatedName2 *names; } lsa_TransNameArray2; [public] NTSTATUS lsa_LookupSids2( [in] policy_handle *handle, [in] lsa_SidArray *sids, [out,unique] lsa_RefDomainList *domains, [in,out] lsa_TransNameArray2 *names, [in] uint16 level, [in,out] uint32 *count, [in] uint32 unknown1, [in] uint32 unknown2 ); /**********************/ /* Function 0x3a */ typedef struct { lsa_SidType sid_type; uint32 rid; uint32 sid_index; uint32 unknown; } lsa_TranslatedSid2; typedef struct { [range(0,1000)] uint32 count; [size_is(count)] lsa_TranslatedSid2 *sids; } lsa_TransSidArray2; [public] NTSTATUS lsa_LookupNames2 ( [in] policy_handle *handle, [in,range(0,1000)] uint32 num_names, [in,size_is(num_names)] lsa_String names[], [out,unique] lsa_RefDomainList *domains, [in,out] lsa_TransSidArray2 *sids, [in] lsa_LookupNamesLevel level, [in,out] uint32 *count, [in] uint32 unknown1, [in] uint32 unknown2 ); /* Function 0x3b */ [todo] NTSTATUS lsa_CreateTrustedDomainEx2(); /* Function 0x3c */ [todo] NTSTATUS lsa_CREDRWRITE(); /* Function 0x3d */ [todo] NTSTATUS lsa_CREDRREAD(); /* Function 0x3e */ [todo] NTSTATUS lsa_CREDRENUMERATE(); /* Function 0x3f */ [todo] NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS(); /* Function 0x40 */ [todo] NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS(); /* Function 0x41 */ [todo] NTSTATUS lsa_CREDRDELETE(); /* Function 0x42 */ [todo] NTSTATUS lsa_CREDRGETTARGETINFO(); /* Function 0x43 */ [todo] NTSTATUS lsa_CREDRPROFILELOADED(); /**********************/ /* Function 0x44 */ typedef struct { lsa_SidType sid_type; dom_sid2 *sid; uint32 sid_index; uint32 unknown; } lsa_TranslatedSid3; typedef struct { [range(0,1000)] uint32 count; [size_is(count)] lsa_TranslatedSid3 *sids; } lsa_TransSidArray3; [public] NTSTATUS lsa_LookupNames3 ( [in] policy_handle *handle, [in,range(0,1000)] uint32 num_names, [in,size_is(num_names)] lsa_String names[], [out,unique] lsa_RefDomainList *domains, [in,out] lsa_TransSidArray3 *sids, [in] lsa_LookupNamesLevel level, [in,out] uint32 *count, [in] uint32 unknown1, [in] uint32 unknown2 ); /* Function 0x45 */ [todo] NTSTATUS lsa_CREDRGETSESSIONTYPES(); /* Function 0x46 */ [todo] NTSTATUS lsa_LSARREGISTERAUDITEVENT(); /* Function 0x47 */ [todo] NTSTATUS lsa_LSARGENAUDITEVENT(); /* Function 0x48 */ [todo] NTSTATUS lsa_LSARUNREGISTERAUDITEVENT(); /* Function 0x49 */ typedef struct { [range(0,131072)] uint32 length; [size_is(length)] uint8 *data; } lsa_ForestTrustBinaryData; typedef struct { dom_sid2 *domain_sid; lsa_StringLarge dns_domain_name; lsa_StringLarge netbios_domain_name; } lsa_ForestTrustDomainInfo; typedef [switch_type(uint32)] union { [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] lsa_String top_level_name; [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] lsa_StringLarge top_level_name_ex; [case(LSA_FOREST_TRUST_DOMAIN_INFO)] lsa_ForestTrustDomainInfo domain_info; [default] lsa_ForestTrustBinaryData data; } lsa_ForestTrustData; typedef [v1_enum] enum { LSA_FOREST_TRUST_TOP_LEVEL_NAME = 0, LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX = 1, LSA_FOREST_TRUST_DOMAIN_INFO = 2, LSA_FOREST_TRUST_RECORD_TYPE_LAST = 3 } lsa_ForestTrustRecordType; typedef struct { uint32 flags; lsa_ForestTrustRecordType level; hyper unknown; [switch_is(level)] lsa_ForestTrustData forest_trust_data; } lsa_ForestTrustRecord; typedef [public] struct { [range(0,4000)] uint32 count; [size_is(count)] lsa_ForestTrustRecord **entries; } lsa_ForestTrustInformation; NTSTATUS lsa_lsaRQueryForestTrustInformation( [in] policy_handle *handle, [in,ref] lsa_String *trusted_domain_name, [in] uint16 unknown, /* level ? */ [out,ref] lsa_ForestTrustInformation **forest_trust_info ); /* Function 0x4a */ [todo] NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION(); /* Function 0x4b */ [todo] NTSTATUS lsa_CREDRRENAME(); /*****************/ /* Function 0x4c */ [public] NTSTATUS lsa_LookupSids3( [in] lsa_SidArray *sids, [out,unique] lsa_RefDomainList *domains, [in,out] lsa_TransNameArray2 *names, [in] uint16 level, [in,out] uint32 *count, [in] uint32 unknown1, [in] uint32 unknown2 ); /* Function 0x4d */ NTSTATUS lsa_LookupNames4( [in,range(0,1000)] uint32 num_names, [in,size_is(num_names)] lsa_String names[], [out,unique] lsa_RefDomainList *domains, [in,out] lsa_TransSidArray3 *sids, [in] lsa_LookupNamesLevel level, [in,out] uint32 *count, [in] uint32 unknown1, [in] uint32 unknown2 ); /* Function 0x4e */ [todo] NTSTATUS lsa_LSAROPENPOLICYSCE(); /* Function 0x4f */ [todo] NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE(); /* Function 0x50 */ [todo] NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(); /* Function 0x51 */ [todo] NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -