⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samr.idl

📁 samba最新软件
💻 IDL
📖 第 1 页 / 共 3 页
字号:
		lsa_String account_name;		lsa_String description;	} samr_DispEntryFull;	typedef struct {		uint32 count;		[size_is(count)] samr_DispEntryFull *entries;	} samr_DispInfoFull;	typedef struct {		uint32    idx;		uint32    rid;		samr_GroupAttrs acct_flags;		lsa_String account_name;		lsa_String description;	} samr_DispEntryFullGroup;	typedef struct {		uint32 count;		[size_is(count)] samr_DispEntryFullGroup *entries;	} samr_DispInfoFullGroups;	typedef struct {		uint32    idx;		lsa_AsciiStringLarge account_name;	} samr_DispEntryAscii;	typedef struct {		uint32 count;		[size_is(count)] samr_DispEntryAscii *entries;	} samr_DispInfoAscii;	typedef [switch_type(uint16)] union {		[case(1)] samr_DispInfoGeneral info1;/* users */		[case(2)] samr_DispInfoFull info2; /* trust accounts? */		[case(3)] samr_DispInfoFullGroups info3; /* groups */		[case(4)] samr_DispInfoAscii info4; /* users */		[case(5)] samr_DispInfoAscii info5; /* groups */	} samr_DispInfo;	NTSTATUS samr_QueryDisplayInfo(		[in,ref]    policy_handle *domain_handle,		[in]        uint16 level,		[in]        uint32 start_idx,		[in]        uint32 max_entries,		[in]        uint32 buf_size,		[out]       uint32 total_size,		[out]       uint32 returned_size,		[out,switch_is(level)] samr_DispInfo info		);	/************************/	/* Function    0x29     */	/*	  this seems to be an alphabetic search function. The returned index	  is the index for samr_QueryDisplayInfo needed to get names occurring	  after the specified name. The supplied name does not need to exist	  in the database (for example you can supply just a first letter for 	  searching starting at that letter)	  The level corresponds to the samr_QueryDisplayInfo level	*/	NTSTATUS samr_GetDisplayEnumerationIndex(		[in,ref]    policy_handle *domain_handle,		[in]        uint16 level,		[in]        lsa_String name,		[out]       uint32 idx		);	/************************/	/* Function    0x2a     */	/*	  w2k3 returns NT_STATUS_NOT_IMPLEMENTED for this	*/	NTSTATUS samr_TestPrivateFunctionsDomain(		[in,ref]    policy_handle *domain_handle		);	/************************/	/* Function    0x2b     */	/*	  w2k3 returns NT_STATUS_NOT_IMPLEMENTED for this	*/	NTSTATUS samr_TestPrivateFunctionsUser(		[in,ref]    policy_handle *user_handle		);	/************************/	/* Function    0x2c     */	typedef struct {		uint16 min_password_length;		samr_PasswordProperties password_properties;	} samr_PwInfo;	[public] NTSTATUS samr_GetUserPwInfo(		[in,ref]    policy_handle *user_handle,		[out]       samr_PwInfo info		);	/************************/	/* Function    0x2d     */	NTSTATUS samr_RemoveMemberFromForeignDomain(		[in,ref]    policy_handle *domain_handle,		[in,ref]    dom_sid2 *sid		);	/************************/	/* Function    0x2e     */	/*	  how is this different from QueryDomainInfo ??	*/	NTSTATUS samr_QueryDomainInfo2(		[in,ref]      policy_handle *domain_handle,		[in]          uint16 level,		[out,unique,switch_is(level)] samr_DomainInfo *info		);	/************************/	/* Function    0x2f     */	/*	  how is this different from QueryUserInfo ??	*/	NTSTATUS samr_QueryUserInfo2(		[in,ref]                  policy_handle *user_handle,		[in]                      uint16 level,		[out,unique,switch_is(level)]    samr_UserInfo *info		);	/************************/	/* Function    0x30     */	/*	  how is this different from QueryDisplayInfo??	*/	NTSTATUS samr_QueryDisplayInfo2(		[in,ref]    policy_handle *domain_handle,		[in]        uint16 level,		[in]        uint32 start_idx,		[in]        uint32 max_entries,		[in]        uint32 buf_size,		[out]       uint32 total_size,		[out]       uint32 returned_size,		[out,switch_is(level)] samr_DispInfo info		);	/************************/	/* Function    0x31     */	/*	  how is this different from GetDisplayEnumerationIndex ??	*/	NTSTATUS samr_GetDisplayEnumerationIndex2(		[in,ref]    policy_handle *domain_handle,		[in]        uint16 level,		[in]        lsa_String name,		[out]       uint32 idx		);	/************************/	/* Function    0x32     */	NTSTATUS samr_CreateUser2(		[in,ref]      policy_handle *domain_handle,		[in,ref]      lsa_String *account_name,		[in]          samr_AcctFlags acct_flags,		[in]          samr_UserAccessMask access_mask,		[out,ref]     policy_handle *user_handle,		[out,ref]     uint32 *access_granted,		[out,ref]     uint32 *rid		);	/************************/	/* Function    0x33     */	/*	  another duplicate. There must be a reason ....	*/	NTSTATUS samr_QueryDisplayInfo3(		[in,ref]    policy_handle *domain_handle,		[in]        uint16 level,		[in]        uint32 start_idx,		[in]        uint32 max_entries,		[in]        uint32 buf_size,		[out]       uint32 total_size,		[out]       uint32 returned_size,		[out,switch_is(level)] samr_DispInfo info		);	/************************/	/* Function    0x34     */	NTSTATUS samr_AddMultipleMembersToAlias(		[in,ref]    policy_handle *alias_handle,		[in,ref]    lsa_SidArray *sids		);	/************************/	/* Function    0x35     */	NTSTATUS samr_RemoveMultipleMembersFromAlias(		[in,ref]    policy_handle *alias_handle,		[in,ref]    lsa_SidArray *sids		);	/************************/	/* Function    0x36     */	NTSTATUS samr_OemChangePasswordUser2(		[in,unique]       lsa_AsciiString *server,		[in,ref]          lsa_AsciiString *account,		[in,unique]       samr_CryptPassword *password,		[in,unique]       samr_Password *hash		);	/************************/	/* Function    0x37     */	NTSTATUS samr_ChangePasswordUser2(		[in,unique]       lsa_String *server,		[in,ref]          lsa_String *account,		[in,unique]       samr_CryptPassword *nt_password,		[in,unique]       samr_Password *nt_verifier,		[in]              boolean8 lm_change,		[in,unique]       samr_CryptPassword *lm_password,		[in,unique]       samr_Password *lm_verifier		);	/************************/	/* Function    0x38     */	NTSTATUS samr_GetDomPwInfo(		[in,unique] lsa_String *domain_name,		[out]       samr_PwInfo info		);	/************************/	/* Function    0x39     */	NTSTATUS samr_Connect2(		[in,unique,string,charset(UTF16)] uint16 *system_name,		[in] samr_ConnectAccessMask access_mask,		[out,ref]  policy_handle *connect_handle		);	/************************/	/* Function    0x3a     */	/*	  seems to be an exact alias for samr_SetUserInfo() 	*/	[public] NTSTATUS samr_SetUserInfo2(		[in,ref]                   policy_handle *user_handle,		[in]                       uint16 level,		[in,ref,switch_is(level)]  samr_UserInfo *info		);	/************************/	/* Function    0x3b     */	/*	  this one is mysterious. I have a few guesses, but nothing working yet	*/	NTSTATUS samr_SetBootKeyInformation(		[in,ref]   policy_handle *connect_handle,		[in]       uint32 unknown1,		[in]       uint32 unknown2,		[in]       uint32 unknown3		);	/************************/	/* Function    0x3c     */	NTSTATUS samr_GetBootKeyInformation(		[in,ref]   policy_handle *domain_handle,		[out]      uint32 unknown		);	/************************/	/* Function    0x3d     */	NTSTATUS samr_Connect3(		[in,unique,string,charset(UTF16)] uint16 *system_name,		/* this unknown value seems to be completely ignored by w2k3 */		[in] uint32 unknown,		[in] samr_ConnectAccessMask access_mask,		[out,ref]  policy_handle *connect_handle		);	/************************/	/* Function    0x3e     */	NTSTATUS samr_Connect4(		[in,unique,string,charset(UTF16)] uint16 *system_name,		[in] uint32 unknown,		[in] samr_ConnectAccessMask access_mask,		[out,ref]  policy_handle *connect_handle		);	/************************/	/* Function    0x3f     */	typedef enum samr_RejectReason samr_RejectReason;	typedef struct {		samr_RejectReason reason;		uint32 unknown1;		uint32 unknown2;	} samr_ChangeReject;	NTSTATUS samr_ChangePasswordUser3(		[in,unique]       lsa_String *server,		[in,ref]          lsa_String *account,		[in,unique]       samr_CryptPassword *nt_password,		[in,unique]       samr_Password *nt_verifier,		[in]              boolean8 lm_change,		[in,unique]       samr_CryptPassword *lm_password,		[in,unique]       samr_Password *lm_verifier,		[in,unique]       samr_CryptPassword *password3,		[out,unique]      samr_DomInfo1 *dominfo,		[out,unique]      samr_ChangeReject *reject		);	/************************/	/* Function    0x40      */	typedef struct {		uint32         unknown1; /* w2k3 gives 3 */		uint32         unknown2; /* w2k3 gives 0 */	} samr_ConnectInfo1;	typedef union {		[case(1)]  samr_ConnectInfo1 info1;	} samr_ConnectInfo;	[public] NTSTATUS samr_Connect5(		[in,unique,string,charset(UTF16)] uint16 *system_name,		[in]       samr_ConnectAccessMask  access_mask,		[in,out]   uint32             level,		[in,out,switch_is(level),ref] samr_ConnectInfo *info,		[out,ref]  policy_handle      *connect_handle		);	/************************/	/* Function    0x41     */	NTSTATUS samr_RidToSid(		[in,ref]    policy_handle *domain_handle,		[in]        uint32        rid,		[out,unique] dom_sid2      *sid		);	/************************/	/* Function    0x42     */	/*	  this should set the DSRM password for the server, which is used	  when booting into Directory Services Recovery Mode on a DC. Win2003	  gives me NT_STATUS_NOT_SUPPORTED	*/	NTSTATUS samr_SetDsrmPassword(		[in,unique] lsa_String *name,		[in]       uint32 unknown,		[in,unique] samr_Password *hash		);	/************************/	/* Function    0x43     */	/************************/	typedef [bitmap32bit] bitmap {		SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET		= 0x00000001,		SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME		= 0x00000002,		SAMR_VALIDATE_FIELD_LOCKOUT_TIME		= 0x00000004,		SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT		= 0x00000008,		SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH	= 0x00000010,		SAMR_VALIDATE_FIELD_PASSWORD_HISTORY		= 0x00000020	} samr_ValidateFieldsPresent;	typedef enum {		NetValidateAuthentication = 1,		NetValidatePasswordChange= 2,		NetValidatePasswordReset = 3	} samr_ValidatePasswordLevel;	/* NetApi maps samr_ValidationStatus errors to WERRORs. Haven't	 * identified the mapping of	 * - NERR_PasswordFilterError	 * - NERR_PasswordExpired and	 * - NERR_PasswordCantChange	 * yet - Guenther	 */	typedef enum {		SAMR_VALIDATION_STATUS_SUCCESS = 0,		SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE = 1,		SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT = 2,		SAMR_VALIDATION_STATUS_BAD_PASSWORD = 4,		SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT = 5,		SAMR_VALIDATION_STATUS_PWD_TOO_SHORT = 6,		SAMR_VALIDATION_STATUS_PWD_TOO_LONG = 7,		SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH = 8,		SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT = 9	} samr_ValidationStatus;	typedef struct {		uint32 length;		[size_is(length)] uint8 *data;        } samr_ValidationBlob;	typedef struct {		samr_ValidateFieldsPresent fields_present;		NTTIME_hyper last_password_change;		NTTIME_hyper bad_password_time;		NTTIME_hyper lockout_time;		uint32 bad_pwd_count;		uint32 pwd_history_len;		[size_is(pwd_history_len)] samr_ValidationBlob *pwd_history;	} samr_ValidatePasswordInfo;	typedef struct {		samr_ValidatePasswordInfo info;		samr_ValidationStatus status;	} samr_ValidatePasswordRepCtr;	typedef [switch_type(uint16)] union {		[case(1)] samr_ValidatePasswordRepCtr ctr1;		[case(2)] samr_ValidatePasswordRepCtr ctr2;		[case(3)] samr_ValidatePasswordRepCtr ctr3;	} samr_ValidatePasswordRep;	typedef struct {		samr_ValidatePasswordInfo info;		lsa_StringLarge password;		lsa_StringLarge account;		samr_ValidationBlob hash;		boolean8 pwd_must_change_at_next_logon;		boolean8 clear_lockout;	} samr_ValidatePasswordReq3;	typedef struct {		samr_ValidatePasswordInfo info;		lsa_StringLarge password;		lsa_StringLarge account;		samr_ValidationBlob hash;		boolean8 password_matched;	} samr_ValidatePasswordReq2;	typedef struct {		samr_ValidatePasswordInfo info;		boolean8 password_matched;	} samr_ValidatePasswordReq1;	typedef [switch_type(uint16)] union {		[case(1)] samr_ValidatePasswordReq1 req1;		[case(2)] samr_ValidatePasswordReq2 req2;		[case(3)] samr_ValidatePasswordReq3 req3;	} samr_ValidatePasswordReq;	NTSTATUS samr_ValidatePassword(		[in] samr_ValidatePasswordLevel level,		[in,switch_is(level)] samr_ValidatePasswordReq req,		[out,unique,switch_is(level)] samr_ValidatePasswordRep *rep		);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -