Documentation
¶
Index ¶
- Variables
- func NewSamrServerHandle(o SamrServer) dcerpc.ServerHandle
- func RegisterSamrServer(conn dcerpc.Conn, o SamrServer, opts ...dcerpc.Option)
- func SamrServerHandle(ctx context.Context, o SamrServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- type AddMemberToAliasRequest
- type AddMemberToAliasResponse
- type AddMemberToGroupRequest
- type AddMemberToGroupResponse
- type AddMultipleMembersToAliasRequest
- type AddMultipleMembersToAliasResponse
- type AliasAdmCommentInformation
- type AliasGeneralInformation
- type AliasInfoBuffer
- type AliasInfoBuffer_AdminComment
- type AliasInfoBuffer_General
- type AliasInfoBuffer_Name
- type AliasInformationClass
- type AliasNameInformation
- type ChangePasswordUserRequest
- type ChangePasswordUserResponse
- type CleartextCredentials
- type CloseHandleRequest
- type CloseHandleResponse
- type Connect2Request
- type Connect2Response
- type Connect4Request
- type Connect4Response
- type Connect5Request
- type Connect5Response
- type ConnectRequest
- type ConnectResponse
- type CreateAliasInDomainRequest
- type CreateAliasInDomainResponse
- type CreateGroupInDomainRequest
- type CreateGroupInDomainResponse
- type CreateUser2InDomainRequest
- type CreateUser2InDomainResponse
- type CreateUserInDomainRequest
- type CreateUserInDomainResponse
- type DeleteAliasRequest
- type DeleteAliasResponse
- type DeleteGroupRequest
- type DeleteGroupResponse
- type DeleteUserRequest
- type DeleteUserResponse
- type DisplayInfoBuffer
- type DisplayInfoBuffer_GroupInformation
- type DisplayInfoBuffer_MachineInformation
- type DisplayInfoBuffer_OEMGroupInformation
- type DisplayInfoBuffer_OEMUserInformation
- type DisplayInfoBuffer_UserInformation
- type DomainDisplayGroup
- type DomainDisplayGroupBuffer
- type DomainDisplayInformation
- type DomainDisplayMachine
- type DomainDisplayMachineBuffer
- type DomainDisplayOEMGroup
- type DomainDisplayOEMGroupBuffer
- type DomainDisplayOEMUser
- type DomainDisplayOEMUserBuffer
- type DomainDisplayUser
- type DomainDisplayUserBuffer
- type DomainGeneralInformation
- type DomainGeneralInformation2
- type DomainInfoBuffer
- type DomainInfoBuffer_General
- type DomainInfoBuffer_General2
- type DomainInfoBuffer_Lockout
- type DomainInfoBuffer_Logoff
- type DomainInfoBuffer_Modified
- type DomainInfoBuffer_Modified2
- type DomainInfoBuffer_Name
- type DomainInfoBuffer_OEM
- type DomainInfoBuffer_Password
- type DomainInfoBuffer_Replication
- type DomainInfoBuffer_Role
- type DomainInfoBuffer_State
- type DomainInformationClass
- type DomainLockoutInformation
- type DomainLogoffInformation
- type DomainModifiedInformation
- type DomainModifiedInformation2
- type DomainNameInformation
- type DomainOEMInformation
- type DomainPasswordInformation
- type DomainReplicationInformation
- type DomainServerEnableState
- type DomainServerRole
- type DomainServerRoleInformation
- type DomainStateInformation
- type EncryptedLMOWFPassword
- type EncryptedNTOWFPassword
- type EncryptedUserPassword
- type EncryptedUserPasswordNew
- type EnumerateAliasesInDomainRequest
- type EnumerateAliasesInDomainResponse
- type EnumerateDomainsInSAMServerRequest
- type EnumerateDomainsInSAMServerResponse
- type EnumerateGroupsInDomainRequest
- type EnumerateGroupsInDomainResponse
- type EnumerateUsersInDomainRequest
- type EnumerateUsersInDomainResponse
- type EnumerationBuffer
- type GetAliasMembershipRequest
- type GetAliasMembershipResponse
- type GetDisplayEnumerationIndex2Request
- type GetDisplayEnumerationIndex2Response
- type GetDisplayEnumerationIndexRequest
- type GetDisplayEnumerationIndexResponse
- type GetDomainPasswordInformationRequest
- type GetDomainPasswordInformationResponse
- type GetGroupsBuffer
- type GetGroupsForUserRequest
- type GetGroupsForUserResponse
- type GetMembersBuffer
- type GetMembersInAliasRequest
- type GetMembersInAliasResponse
- type GetMembersInGroupRequest
- type GetMembersInGroupResponse
- type GetUserDomainPasswordInformationRequest
- type GetUserDomainPasswordInformationResponse
- type GroupAdmCommentInformation
- type GroupAttributeInformation
- type GroupGeneralInformation
- type GroupInfoBuffer
- type GroupInfoBuffer_AdminComment
- type GroupInfoBuffer_Attribute
- type GroupInfoBuffer_DoNotUse
- type GroupInfoBuffer_General
- type GroupInfoBuffer_Name
- type GroupInformationClass
- type GroupMembership
- type GroupNameInformation
- type Handle
- type KerberosKeyData
- type KerberosKeyDataNew
- type KerberosStoredCredential
- type KerberosStoredCredentialNew
- type LogonHours
- type LookupDomainInSAMServerRequest
- type LookupDomainInSAMServerResponse
- type LookupIDsInDomainRequest
- type LookupIDsInDomainResponse
- type LookupNamesInDomainRequest
- type LookupNamesInDomainResponse
- type NTLMStrongNTOWF
- type OEMChangePasswordUser2Request
- type OEMChangePasswordUser2Response
- type OldLargeInteger
- type OpenAliasRequest
- type OpenAliasResponse
- type OpenDomainRequest
- type OpenDomainResponse
- type OpenGroupRequest
- type OpenGroupResponse
- type OpenUserRequest
- type OpenUserResponse
- type PackagesCredentials
- type PasswordPolicyValidationType
- type QueryDisplayInformation2Request
- type QueryDisplayInformation2Response
- type QueryDisplayInformation3Request
- type QueryDisplayInformation3Response
- type QueryDisplayInformationRequest
- type QueryDisplayInformationResponse
- type QueryInformationAliasRequest
- type QueryInformationAliasResponse
- type QueryInformationDomain2Request
- type QueryInformationDomain2Response
- type QueryInformationDomainRequest
- type QueryInformationDomainResponse
- type QueryInformationGroupRequest
- type QueryInformationGroupResponse
- type QueryInformationUser2Request
- type QueryInformationUser2Response
- type QueryInformationUserRequest
- type QueryInformationUserResponse
- type QuerySecurityObjectRequest
- type QuerySecurityObjectResponse
- type RIDEnumeration
- type RIDToSIDRequest
- type RIDToSIDResponse
- type RawCredentials
- type RemoveMemberFromAliasRequest
- type RemoveMemberFromAliasResponse
- type RemoveMemberFromForeignDomainRequest
- type RemoveMemberFromForeignDomainResponse
- type RemoveMemberFromGroupRequest
- type RemoveMemberFromGroupResponse
- type RemoveMultipleMembersFromAliasRequest
- type RemoveMultipleMembersFromAliasResponse
- type ReturnedUstringArray
- type RevisionInfo
- type RevisionInfoV1
- type RevisionInfo_V1
- type SAMValidateAuthenticationInputArg
- type SAMValidateInputArg
- func (o *SAMValidateInputArg) GetValue() any
- func (o *SAMValidateInputArg) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error
- func (o *SAMValidateInputArg) NDRSwitchValue(sw uint16) uint16
- func (o *SAMValidateInputArg) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error
- type SAMValidateInputArg_ValidateAuthenticationInput
- type SAMValidateInputArg_ValidatePasswordChangeInput
- type SAMValidateInputArg_ValidatePasswordResetInput
- type SAMValidateOutputArg
- func (o *SAMValidateOutputArg) GetValue() any
- func (o *SAMValidateOutputArg) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error
- func (o *SAMValidateOutputArg) NDRSwitchValue(sw uint16) uint16
- func (o *SAMValidateOutputArg) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error
- type SAMValidateOutputArg_ValidateAuthenticationOutput
- type SAMValidateOutputArg_ValidatePasswordChangeOutput
- type SAMValidateOutputArg_ValidatePasswordResetOutput
- type SAMValidatePasswordChangeInputArg
- type SAMValidatePasswordHash
- type SAMValidatePasswordResetInputArg
- type SAMValidatePersistedFields
- type SAMValidateStandardOutputArg
- type SAMValidateValidationStatus
- type SIDArray
- type SIDArrayOut
- type SIDInformation
- type SIDNameUse
- type SamrClient
- type SamrServer
- type SetDSRMPasswordRequest
- type SetDSRMPasswordResponse
- type SetInformationAliasRequest
- type SetInformationAliasResponse
- type SetInformationDomainRequest
- type SetInformationDomainResponse
- type SetInformationGroupRequest
- type SetInformationGroupResponse
- type SetInformationUser2Request
- type SetInformationUser2Response
- type SetInformationUserRequest
- type SetInformationUserResponse
- type SetMemberAttributesOfGroupRequest
- type SetMemberAttributesOfGroupResponse
- type SetSecurityObjectRequest
- type SetSecurityObjectResponse
- type ShortBlob
- type SrSecurityDescriptor
- type String
- type Uint32Array
- type UnicodeChangePasswordUser2Request
- type UnicodeChangePasswordUser2Response
- type UserANameInformation
- type UserAccountInformation
- type UserAdminCommentInformation
- type UserAllInformation
- type UserControlInformation
- type UserDomainPasswordInformation
- type UserExpiresInformation
- type UserFNameInformation
- type UserGeneralInformation
- type UserHomeInformation
- type UserInfoBuffer
- type UserInfoBuffer_Account
- type UserInfoBuffer_AccountName
- type UserInfoBuffer_AdminComment
- type UserInfoBuffer_All
- type UserInfoBuffer_Control
- type UserInfoBuffer_Expires
- type UserInfoBuffer_FullName
- type UserInfoBuffer_General
- type UserInfoBuffer_Home
- type UserInfoBuffer_Internal1
- type UserInfoBuffer_Internal4
- type UserInfoBuffer_Internal4New
- type UserInfoBuffer_Internal5
- type UserInfoBuffer_Internal5New
- type UserInfoBuffer_Logon
- type UserInfoBuffer_LogonHours
- type UserInfoBuffer_Name
- type UserInfoBuffer_Parameters
- type UserInfoBuffer_Preferences
- type UserInfoBuffer_PrimaryGroup
- type UserInfoBuffer_Profile
- type UserInfoBuffer_Script
- type UserInfoBuffer_WorkStations
- type UserInformationClass
- type UserInternal1Information
- type UserInternal4Information
- type UserInternal4InformationNew
- type UserInternal5Information
- type UserInternal5InformationNew
- type UserLogonHoursInformation
- type UserLogonInformation
- type UserNameInformation
- type UserParametersInformation
- type UserPreferencesInformation
- type UserPrimaryGroupInformation
- type UserProfileInformation
- type UserProperties
- type UserProperty
- type UserProperty_PropertyValue
- func (o *UserProperty_PropertyValue) GetValue() any
- func (o *UserProperty_PropertyValue) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw string) error
- func (o *UserProperty_PropertyValue) NDRLayout()
- func (o *UserProperty_PropertyValue) NDRSwitchValue(sw string) string
- func (o *UserProperty_PropertyValue) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw string) error
- type UserProperty_PropertyValue_CleartextCredential
- type UserProperty_PropertyValue_KerberosStoredCredential
- type UserProperty_PropertyValue_KerberosStoredCredentialNew
- type UserProperty_PropertyValue_NTLMStrongNTOWF
- type UserProperty_PropertyValue_PackagesCredential
- type UserProperty_PropertyValue_RawCredential
- type UserProperty_PropertyValue_WDigestCredential
- type UserScriptInformation
- type UserWorkstationsInformation
- type ValidatePasswordRequest
- type ValidatePasswordResponse
- type WdigestCredentials
Constants ¶
This section is empty.
Variables ¶
var ( // Syntax UUID SamrSyntaxUUID = &uuid.UUID{TimeLow: 0x12345778, TimeMid: 0x1234, TimeHiAndVersion: 0xabcd, ClockSeqHiAndReserved: 0xef, ClockSeqLow: 0x0, Node: [6]uint8{0x1, 0x23, 0x45, 0x67, 0x89, 0xac}} // Syntax ID SamrSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: SamrSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0} )
var CleartextCredentialsName = "Primary:CLEARTEXT"
CleartextCredentialsName represents the CLEARTEXT_CREDENTIALS_NAME RPC constant
var (
// import guard
GoPackage = "samr"
)
var KerberosStoredCredentialName = "Primary:Kerberos"
KerberosStoredCredentialName represents the KERB_STORED_CREDENTIAL_NAME RPC constant
var KerberosStoredCredentialNewName = "Primary:Kerberos-Newer-Keys"
KerberosStoredCredentialNewName represents the KERB_STORED_CREDENTIAL_NEW_NAME RPC constant
var NTLMStrongNTOWFName = "Primary:NTLM-Strong-NTOWF"
NTLMStrongNTOWFName represents the NTLM_STRONG_NTOWF_NAME RPC constant
var PackagesCredentialsName = "Packages"
PackagesCredentialsName represents the PACKAGES_CREDENTIALS_NAME RPC constant
var WdigestCredentialsName = "Primary:WDigest"
WdigestCredentialsName represents the WDIGEST_CREDENTIALS_NAME RPC constant
Functions ¶
func NewSamrServerHandle ¶
func NewSamrServerHandle(o SamrServer) dcerpc.ServerHandle
func RegisterSamrServer ¶
func RegisterSamrServer(conn dcerpc.Conn, o SamrServer, opts ...dcerpc.Option)
Types ¶
type AddMemberToAliasRequest ¶
type AddMemberToAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // MemberId: The SID of an account to add to the alias. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MemberID *dtyp.SID `idl:"name:MemberId" json:"member_id"` }
AddMemberToAliasRequest structure represents the SamrAddMemberToAlias operation request
func (*AddMemberToAliasRequest) MarshalNDR ¶
func (*AddMemberToAliasRequest) UnmarshalNDR ¶
type AddMemberToAliasResponse ¶
type AddMemberToAliasResponse struct { // Return: The SamrAddMemberToAlias return value. Return int32 `idl:"name:Return" json:"return"` }
AddMemberToAliasResponse structure represents the SamrAddMemberToAlias operation response
func (*AddMemberToAliasResponse) MarshalNDR ¶
func (*AddMemberToAliasResponse) UnmarshalNDR ¶
type AddMemberToGroupRequest ¶
type AddMemberToGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // MemberId: A RID representing an account to add to the group's membership list. MemberID uint32 `idl:"name:MemberId" json:"member_id"` // Attributes: The characteristics of the membership relationship. See section 2.2.1.10 // for legal values and semantics. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Attributes uint32 `idl:"name:Attributes" json:"attributes"` }
AddMemberToGroupRequest structure represents the SamrAddMemberToGroup operation request
func (*AddMemberToGroupRequest) MarshalNDR ¶
func (*AddMemberToGroupRequest) UnmarshalNDR ¶
type AddMemberToGroupResponse ¶
type AddMemberToGroupResponse struct { // Return: The SamrAddMemberToGroup return value. Return int32 `idl:"name:Return" json:"return"` }
AddMemberToGroupResponse structure represents the SamrAddMemberToGroup operation response
func (*AddMemberToGroupResponse) MarshalNDR ¶
func (*AddMemberToGroupResponse) UnmarshalNDR ¶
type AddMultipleMembersToAliasRequest ¶
type AddMultipleMembersToAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // MembersBuffer: A structure containing a list of SIDs to add as members to the alias. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MembersBuffer *SIDArray `idl:"name:MembersBuffer" json:"members_buffer"` }
AddMultipleMembersToAliasRequest structure represents the SamrAddMultipleMembersToAlias operation request
func (*AddMultipleMembersToAliasRequest) MarshalNDR ¶
func (*AddMultipleMembersToAliasRequest) UnmarshalNDR ¶
type AddMultipleMembersToAliasResponse ¶
type AddMultipleMembersToAliasResponse struct { // Return: The SamrAddMultipleMembersToAlias return value. Return int32 `idl:"name:Return" json:"return"` }
AddMultipleMembersToAliasResponse structure represents the SamrAddMultipleMembersToAlias operation response
func (*AddMultipleMembersToAliasResponse) MarshalNDR ¶
func (*AddMultipleMembersToAliasResponse) UnmarshalNDR ¶
type AliasAdmCommentInformation ¶
type AliasAdmCommentInformation struct {
AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"`
}
AliasAdmCommentInformation structure represents SAMPR_ALIAS_ADM_COMMENT_INFORMATION RPC structure.
The SAMPR_ALIAS_ADM_COMMENT_INFORMATION structure contains alias fields.
For information on each field, see section 2.2.5.1.
func (*AliasAdmCommentInformation) MarshalNDR ¶
func (*AliasAdmCommentInformation) UnmarshalNDR ¶
type AliasGeneralInformation ¶
type AliasGeneralInformation struct { Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` MemberCount uint32 `idl:"name:MemberCount" json:"member_count"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` }
AliasGeneralInformation structure represents SAMPR_ALIAS_GENERAL_INFORMATION RPC structure.
The SAMPR_ALIAS_GENERAL_INFORMATION structure contains alias fields.
For information on each field, see section 2.2.5.1.
func (*AliasGeneralInformation) MarshalNDR ¶
func (*AliasGeneralInformation) UnmarshalNDR ¶
type AliasInfoBuffer ¶
type AliasInfoBuffer struct { // Types that are assignable to Value // // *AliasInfoBuffer_General // *AliasInfoBuffer_Name // *AliasInfoBuffer_AdminComment Value is_AliasInfoBuffer `json:"value"` }
AliasInfoBuffer structure represents SAMPR_ALIAS_INFO_BUFFER RPC union.
The SAMPR_ALIAS_INFO_BUFFER union combines all possible structures used in the SamrSetInformationAlias and SamrQueryInformationAlias methods. For information on each field, see the associated section for the field structure.
func (*AliasInfoBuffer) GetValue ¶
func (o *AliasInfoBuffer) GetValue() any
func (*AliasInfoBuffer) MarshalUnionNDR ¶
func (*AliasInfoBuffer) NDRSwitchValue ¶
func (o *AliasInfoBuffer) NDRSwitchValue(sw uint16) uint16
func (*AliasInfoBuffer) UnmarshalUnionNDR ¶
type AliasInfoBuffer_AdminComment ¶
type AliasInfoBuffer_AdminComment struct {
AdminComment *AliasAdmCommentInformation `idl:"name:AdminComment" json:"admin_comment"`
}
AliasInfoBuffer_AdminComment structure represents SAMPR_ALIAS_INFO_BUFFER RPC union arm.
It has following labels: 3
func (*AliasInfoBuffer_AdminComment) MarshalNDR ¶
func (*AliasInfoBuffer_AdminComment) UnmarshalNDR ¶
type AliasInfoBuffer_General ¶
type AliasInfoBuffer_General struct {
General *AliasGeneralInformation `idl:"name:General" json:"general"`
}
AliasInfoBuffer_General structure represents SAMPR_ALIAS_INFO_BUFFER RPC union arm.
It has following labels: 1
func (*AliasInfoBuffer_General) MarshalNDR ¶
func (*AliasInfoBuffer_General) UnmarshalNDR ¶
type AliasInfoBuffer_Name ¶
type AliasInfoBuffer_Name struct {
Name *AliasNameInformation `idl:"name:Name" json:"name"`
}
AliasInfoBuffer_Name structure represents SAMPR_ALIAS_INFO_BUFFER RPC union arm.
It has following labels: 2
func (*AliasInfoBuffer_Name) MarshalNDR ¶
func (*AliasInfoBuffer_Name) UnmarshalNDR ¶
type AliasInformationClass ¶
type AliasInformationClass uint16
AliasInformationClass type represents ALIAS_INFORMATION_CLASS RPC enumeration.
The ALIAS_INFORMATION_CLASS enumeration indicates how to interpret the Buffer parameter for SamrQueryInformationAlias and SamrSetInformationAlias. For a list of the structures associated with each enumeration, see section 2.2.5.6.
var ( // AliasGeneralInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_ALIAS_GENERAL_INFORMATION structure (see section 2.2.5.2). AliasInformationClassGeneralInformation AliasInformationClass = 1 // AliasNameInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_ALIAS_NAME_INFORMATION structure (see section 2.2.5.3). AliasInformationClassNameInformation AliasInformationClass = 2 // AliasAdminCommentInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_ALIAS_ADM_COMMENT_INFORMATION structure (see section 2.2.5.4). AliasInformationClassAdminCommentInformation AliasInformationClass = 3 )
func (AliasInformationClass) String ¶
func (o AliasInformationClass) String() string
type AliasNameInformation ¶
type AliasNameInformation struct {
Name *dtyp.UnicodeString `idl:"name:Name" json:"name"`
}
AliasNameInformation structure represents SAMPR_ALIAS_NAME_INFORMATION RPC structure.
The SAMPR_ALIAS_NAME_INFORMATION structure contains alias fields.
For information on each field, see section 2.2.5.1.
func (*AliasNameInformation) MarshalNDR ¶
func (*AliasNameInformation) UnmarshalNDR ¶
type ChangePasswordUserRequest ¶
type ChangePasswordUserRequest struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // LmPresent: If this parameter is zero, the OldLmEncryptedWithNewLm and NewLmEncryptedWithOldLm // fields MUST be ignored by the server; otherwise these fields MUST be processed. LMPresent uint8 `idl:"name:LmPresent" json:"lm_present"` // OldLmEncryptedWithNewLm: The LM hash of the target user's existing password (as presented // by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD // (section 2.2.7.3), where the key is the LM hash of the new password for the target // user (as presented by the client in the NewLmEncryptedWithOldLm parameter). OldLMEncryptedWithNewLM *EncryptedLMOWFPassword `idl:"name:OldLmEncryptedWithNewLm;pointer:unique" json:"old_lm_encrypted_with_new_lm"` // NewLmEncryptedWithOldLm: The LM hash of the target user's new password (as presented // by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD, // where the key is the LM hash of the existing password for the target user (as presented // by the client in the OldLmEncryptedWithNewLm parameter). NewLMEncryptedWithOldLM *EncryptedLMOWFPassword `idl:"name:NewLmEncryptedWithOldLm;pointer:unique" json:"new_lm_encrypted_with_old_lm"` // NtPresent: If this parameter is zero, OldNtEncryptedWithNewNt and NewNtEncryptedWithOldNt // MUST be ignored by the server; otherwise these fields MUST be processed. NTPresent uint8 `idl:"name:NtPresent" json:"nt_present"` // OldNtEncryptedWithNewNt: The NT hash of the target user's existing password (as presented // by the client) encrypted according to the specification of ENCRYPTED_NT_OWF_PASSWORD // (section 2.2.7.3), where the key is the NT hash of the new password for the target // user (as presented by the client). OldNTEncryptedWithNewNT *EncryptedNTOWFPassword `idl:"name:OldNtEncryptedWithNewNt;pointer:unique" json:"old_nt_encrypted_with_new_nt"` // NewNtEncryptedWithOldNt: The NT hash of the target user's new password (as presented // by the client) encrypted according to the specification of ENCRYPTED_NT_OWF_PASSWORD, // where the key is the NT hash of the existing password for the target user (as presented // by the client). NewNTEncryptedWithOldNT *EncryptedNTOWFPassword `idl:"name:NewNtEncryptedWithOldNt;pointer:unique" json:"new_nt_encrypted_with_old_nt"` // NtCrossEncryptionPresent: If this parameter is zero, NewNtEncryptedWithNewLm MUST // be ignored; otherwise, this field MUST be processed. NTCrossEncryptionPresent uint8 `idl:"name:NtCrossEncryptionPresent" json:"nt_cross_encryption_present"` // NewNtEncryptedWithNewLm: The NT hash of the target user's new password (as presented // by the client) encrypted according to the specification of ENCRYPTED_NT_OWF_PASSWORD, // where the key is the LM hash of the new password for the target user (as presented // by the client). NewNTEncryptedWithNewLM *EncryptedNTOWFPassword `idl:"name:NewNtEncryptedWithNewLm;pointer:unique" json:"new_nt_encrypted_with_new_lm"` // LmCrossEncryptionPresent: If this parameter is zero, NewLmEncryptedWithNewNt MUST // be ignored; otherwise, this field MUST be processed. LMCrossEncryptionPresent uint8 `idl:"name:LmCrossEncryptionPresent" json:"lm_cross_encryption_present"` // NewLmEncryptedWithNewNt: The LM hash of the target user's new password (as presented // by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD, // where the key is the NT hash of the new password for the target user (as presented // by the client). NewLMEncryptedWithNewNT *EncryptedLMOWFPassword `idl:"name:NewLmEncryptedWithNewNt;pointer:unique" json:"new_lm_encrypted_with_new_nt"` }
ChangePasswordUserRequest structure represents the SamrChangePasswordUser operation request
func (*ChangePasswordUserRequest) MarshalNDR ¶
func (*ChangePasswordUserRequest) UnmarshalNDR ¶
type ChangePasswordUserResponse ¶
type ChangePasswordUserResponse struct { // Return: The SamrChangePasswordUser return value. Return int32 `idl:"name:Return" json:"return"` }
ChangePasswordUserResponse structure represents the SamrChangePasswordUser operation response
func (*ChangePasswordUserResponse) MarshalNDR ¶
func (*ChangePasswordUserResponse) UnmarshalNDR ¶
type CleartextCredentials ¶ added in v1.0.2
type CleartextCredentials struct {
CleartextCredentials string `idl:"name:CleartextCredentials" json:"cleartext_credentials"`
}
CleartextCredentials structure represents CLEARTEXT_CREDENTIALS RPC structure.
func (*CleartextCredentials) MarshalNDR ¶ added in v1.0.2
func (*CleartextCredentials) UnmarshalNDR ¶ added in v1.0.2
type CloseHandleRequest ¶
type CloseHandleRequest struct { // SamHandle: An RPC context handle, as specified in section 2.2.7.2, representing any // context handle returned from this interface. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SAMHandle *Handle `idl:"name:SamHandle" json:"sam_handle"` }
CloseHandleRequest structure represents the SamrCloseHandle operation request
func (*CloseHandleRequest) MarshalNDR ¶
func (*CloseHandleRequest) UnmarshalNDR ¶
type CloseHandleResponse ¶
type CloseHandleResponse struct { // SamHandle: An RPC context handle, as specified in section 2.2.7.2, representing any // context handle returned from this interface. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SAMHandle *Handle `idl:"name:SamHandle" json:"sam_handle"` // Return: The SamrCloseHandle return value. Return int32 `idl:"name:Return" json:"return"` }
CloseHandleResponse structure represents the SamrCloseHandle operation response
func (*CloseHandleResponse) MarshalNDR ¶
func (*CloseHandleResponse) UnmarshalNDR ¶
type Connect2Request ¶
type Connect2Request struct { // ServerName: The null-terminated NETBIOS name of the server; this parameter MAY<46> // be ignored on receipt. ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"` // DesiredAccess: An ACCESS_MASK that indicates the access requested for ServerHandle // on output. See section 2.2.1.3 for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
Connect2Request structure represents the SamrConnect2 operation request
func (*Connect2Request) MarshalNDR ¶
func (*Connect2Request) UnmarshalNDR ¶
type Connect2Response ¶
type Connect2Response struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2. Server *Handle `idl:"name:ServerHandle" json:"server"` // Return: The SamrConnect2 return value. Return int32 `idl:"name:Return" json:"return"` }
Connect2Response structure represents the SamrConnect2 operation response
func (*Connect2Response) MarshalNDR ¶
func (*Connect2Response) UnmarshalNDR ¶
type Connect4Request ¶
type Connect4Request struct { // ServerName: The null-terminated NETBIOS name of the server; this parameter MAY<45> // be ignored on receipt. ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"` // ClientRevision: Indicates the revision (for this protocol) of the client. The value // MUST be set to 2 and MUST be ignored. ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` // DesiredAccess: An ACCESS_MASK that indicates the access requested for ServerHandle // on output. See section 2.2.1.3 for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
Connect4Request structure represents the SamrConnect4 operation request
func (*Connect4Request) MarshalNDR ¶
func (*Connect4Request) UnmarshalNDR ¶
type Connect4Response ¶
type Connect4Response struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2. Server *Handle `idl:"name:ServerHandle" json:"server"` // Return: The SamrConnect4 return value. Return int32 `idl:"name:Return" json:"return"` }
Connect4Response structure represents the SamrConnect4 operation response
func (*Connect4Response) MarshalNDR ¶
func (*Connect4Response) UnmarshalNDR ¶
type Connect5Request ¶
type Connect5Request struct { // ServerName: The null-terminated NETBIOS name of the server; this parameter MAY<44> // be ignored on receipt. ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"` // DesiredAccess: An ACCESS_MASK that indicates the access requested for ServerHandle // on output. For a listing of possible values, see section 2.2.1.3. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` // InVersion: Indicates which field of the InRevisionInfo union is used. InVersion uint32 `idl:"name:InVersion" json:"in_version"` // InRevisionInfo: Revision information. For details, see the definition of the SAMPR_REVISION_INFO_V1 // structure, which is contained in the SAMPR_REVISION_INFO union. InRevisionInfo *RevisionInfo `idl:"name:InRevisionInfo;switch_is:InVersion" json:"in_revision_info"` }
Connect5Request structure represents the SamrConnect5 operation request
func (*Connect5Request) MarshalNDR ¶
func (*Connect5Request) UnmarshalNDR ¶
type Connect5Response ¶
type Connect5Response struct { // OutVersion: Indicates which field of the OutRevisionInfo union is used. OutVersion uint32 `idl:"name:OutVersion" json:"out_version"` // OutRevisionInfo: Revision information. For details, see the definition of the SAMPR_REVISION_INFO_V1 // structure, which is contained in the SAMPR_REVISION_INFO union. OutRevisionInfo *RevisionInfo `idl:"name:OutRevisionInfo;switch_is:*OutVersion" json:"out_revision_info"` // ServerHandle: An RPC context handle, as specified in section 2.2.7.2. Server *Handle `idl:"name:ServerHandle" json:"server"` // Return: The SamrConnect5 return value. Return int32 `idl:"name:Return" json:"return"` }
Connect5Response structure represents the SamrConnect5 operation response
func (*Connect5Response) MarshalNDR ¶
func (*Connect5Response) UnmarshalNDR ¶
type ConnectRequest ¶
type ConnectRequest struct { // ServerName: The first character of the NETBIOS name of the server; this parameter // MAY<47> be ignored on receipt. ServerName string `idl:"name:ServerName;pointer:unique" json:"server_name"` // DesiredAccess: An ACCESS_MASK that indicates the access requested for ServerHandle // upon output. See section 2.2.1.3 for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
ConnectRequest structure represents the SamrConnect operation request
func (*ConnectRequest) MarshalNDR ¶
func (*ConnectRequest) UnmarshalNDR ¶
type ConnectResponse ¶
type ConnectResponse struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2. Server *Handle `idl:"name:ServerHandle" json:"server"` // Return: The SamrConnect return value. Return int32 `idl:"name:Return" json:"return"` }
ConnectResponse structure represents the SamrConnect operation response
func (*ConnectResponse) MarshalNDR ¶
func (*ConnectResponse) UnmarshalNDR ¶
type CreateAliasInDomainRequest ¶
type CreateAliasInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // AccountName: The value to use as the name of the alias. Details on how this value // maps to the data model are provided later in this section. AccountName *dtyp.UnicodeString `idl:"name:AccountName" json:"account_name"` // DesiredAccess: The access requested on the AliasHandle on output. See section 2.2.1.6 // for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
CreateAliasInDomainRequest structure represents the SamrCreateAliasInDomain operation request
func (*CreateAliasInDomainRequest) MarshalNDR ¶
func (*CreateAliasInDomainRequest) UnmarshalNDR ¶
type CreateAliasInDomainResponse ¶
type CreateAliasInDomainResponse struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // RelativeId: The RID of the newly created alias. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. // // This method MUST be processed per the specifications in section 3.1.5.4.1, using // a group type of GROUP_TYPE_SECURITY_RESOURCE and using access mask values from section // 2.2.1.6. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Return: The SamrCreateAliasInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
CreateAliasInDomainResponse structure represents the SamrCreateAliasInDomain operation response
func (*CreateAliasInDomainResponse) MarshalNDR ¶
func (*CreateAliasInDomainResponse) UnmarshalNDR ¶
type CreateGroupInDomainRequest ¶
type CreateGroupInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Name: The value to use as the name of the group. Details on how this value maps to // the data model are provided later in this section. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` // DesiredAccess: The access requested on the GroupHandle on output. See section 2.2.1.5 // for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
CreateGroupInDomainRequest structure represents the SamrCreateGroupInDomain operation request
func (*CreateGroupInDomainRequest) MarshalNDR ¶
func (*CreateGroupInDomainRequest) UnmarshalNDR ¶
type CreateGroupInDomainResponse ¶
type CreateGroupInDomainResponse struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // RelativeId: The RID of the newly created group. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. // // This method MUST be processed per the specifications in section 3.1.5.4.1, using // a group type of GROUP_TYPE_SECURITY_ACCOUNT and using access mask values from section // 2.2.1.5. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Return: The SamrCreateGroupInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
CreateGroupInDomainResponse structure represents the SamrCreateGroupInDomain operation response
func (*CreateGroupInDomainResponse) MarshalNDR ¶
func (*CreateGroupInDomainResponse) UnmarshalNDR ¶
type CreateUser2InDomainRequest ¶
type CreateUser2InDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Name: The value to use as the name of the user. See the message processing shown // later in this section for details on how this value maps to the data model. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` // AccountType: A 32-bit value indicating the type of account to create. See the message // processing shown later in this section for possible values. AccountType uint32 `idl:"name:AccountType" json:"account_type"` // DesiredAccess: The access requested on the UserHandle on output. See section 2.2.1.7 // for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
CreateUser2InDomainRequest structure represents the SamrCreateUser2InDomain operation request
func (*CreateUser2InDomainRequest) MarshalNDR ¶
func (*CreateUser2InDomainRequest) UnmarshalNDR ¶
type CreateUser2InDomainResponse ¶
type CreateUser2InDomainResponse struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // GrantedAccess: The access granted on UserHandle. GrantedAccess uint32 `idl:"name:GrantedAccess" json:"granted_access"` // RelativeId: The RID of the newly created user. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Return: The SamrCreateUser2InDomain return value. Return int32 `idl:"name:Return" json:"return"` }
CreateUser2InDomainResponse structure represents the SamrCreateUser2InDomain operation response
func (*CreateUser2InDomainResponse) MarshalNDR ¶
func (*CreateUser2InDomainResponse) UnmarshalNDR ¶
type CreateUserInDomainRequest ¶
type CreateUserInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Name: The value to use as the name of the user. See the message processing shown // later in this section for details on how this value maps to the data model. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` // DesiredAccess: The access requested on the UserHandle on output. See section 2.2.1.7 // for a listing of possible values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
CreateUserInDomainRequest structure represents the SamrCreateUserInDomain operation request
func (*CreateUserInDomainRequest) MarshalNDR ¶
func (*CreateUserInDomainRequest) UnmarshalNDR ¶
type CreateUserInDomainResponse ¶
type CreateUserInDomainResponse struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // RelativeId: The RID of the newly created user. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Return: The SamrCreateUserInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
CreateUserInDomainResponse structure represents the SamrCreateUserInDomain operation response
func (*CreateUserInDomainResponse) MarshalNDR ¶
func (*CreateUserInDomainResponse) UnmarshalNDR ¶
type DeleteAliasRequest ¶
type DeleteAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` }
DeleteAliasRequest structure represents the SamrDeleteAlias operation request
func (*DeleteAliasRequest) MarshalNDR ¶
func (*DeleteAliasRequest) UnmarshalNDR ¶
type DeleteAliasResponse ¶
type DeleteAliasResponse struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // Return: The SamrDeleteAlias return value. Return int32 `idl:"name:Return" json:"return"` }
DeleteAliasResponse structure represents the SamrDeleteAlias operation response
func (*DeleteAliasResponse) MarshalNDR ¶
func (*DeleteAliasResponse) UnmarshalNDR ¶
type DeleteGroupRequest ¶
type DeleteGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` }
DeleteGroupRequest structure represents the SamrDeleteGroup operation request
func (*DeleteGroupRequest) MarshalNDR ¶
func (*DeleteGroupRequest) UnmarshalNDR ¶
type DeleteGroupResponse ¶
type DeleteGroupResponse struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // Return: The SamrDeleteGroup return value. Return int32 `idl:"name:Return" json:"return"` }
DeleteGroupResponse structure represents the SamrDeleteGroup operation response
func (*DeleteGroupResponse) MarshalNDR ¶
func (*DeleteGroupResponse) UnmarshalNDR ¶
type DeleteUserRequest ¶
type DeleteUserRequest struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` }
DeleteUserRequest structure represents the SamrDeleteUser operation request
func (*DeleteUserRequest) MarshalNDR ¶
func (*DeleteUserRequest) UnmarshalNDR ¶
type DeleteUserResponse ¶
type DeleteUserResponse struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // Return: The SamrDeleteUser return value. Return int32 `idl:"name:Return" json:"return"` }
DeleteUserResponse structure represents the SamrDeleteUser operation response
func (*DeleteUserResponse) MarshalNDR ¶
func (*DeleteUserResponse) UnmarshalNDR ¶
type DisplayInfoBuffer ¶
type DisplayInfoBuffer struct { // Types that are assignable to Value // // *DisplayInfoBuffer_UserInformation // *DisplayInfoBuffer_MachineInformation // *DisplayInfoBuffer_GroupInformation // *DisplayInfoBuffer_OEMUserInformation // *DisplayInfoBuffer_OEMGroupInformation Value is_DisplayInfoBuffer `json:"value"` }
DisplayInfoBuffer structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union.
The SAMPR_DISPLAY_INFO_BUFFER union is a union of display structures returned by the SamrQueryDisplayInformation family of methods (see section 3.1.5.3). For details on each field, see the associated section for the field structure.
func (*DisplayInfoBuffer) GetValue ¶
func (o *DisplayInfoBuffer) GetValue() any
func (*DisplayInfoBuffer) MarshalUnionNDR ¶
func (*DisplayInfoBuffer) NDRSwitchValue ¶
func (o *DisplayInfoBuffer) NDRSwitchValue(sw uint16) uint16
func (*DisplayInfoBuffer) UnmarshalUnionNDR ¶
type DisplayInfoBuffer_GroupInformation ¶
type DisplayInfoBuffer_GroupInformation struct {
GroupInformation *DomainDisplayGroupBuffer `idl:"name:GroupInformation" json:"group_information"`
}
DisplayInfoBuffer_GroupInformation structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union arm.
It has following labels: 3
func (*DisplayInfoBuffer_GroupInformation) MarshalNDR ¶
func (*DisplayInfoBuffer_GroupInformation) UnmarshalNDR ¶
type DisplayInfoBuffer_MachineInformation ¶
type DisplayInfoBuffer_MachineInformation struct {
MachineInformation *DomainDisplayMachineBuffer `idl:"name:MachineInformation" json:"machine_information"`
}
DisplayInfoBuffer_MachineInformation structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union arm.
It has following labels: 2
func (*DisplayInfoBuffer_MachineInformation) MarshalNDR ¶
func (*DisplayInfoBuffer_MachineInformation) UnmarshalNDR ¶
type DisplayInfoBuffer_OEMGroupInformation ¶
type DisplayInfoBuffer_OEMGroupInformation struct {
OEMGroupInformation *DomainDisplayOEMGroupBuffer `idl:"name:OemGroupInformation" json:"oem_group_information"`
}
DisplayInfoBuffer_OEMGroupInformation structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union arm.
It has following labels: 5
func (*DisplayInfoBuffer_OEMGroupInformation) MarshalNDR ¶
func (*DisplayInfoBuffer_OEMGroupInformation) UnmarshalNDR ¶
type DisplayInfoBuffer_OEMUserInformation ¶
type DisplayInfoBuffer_OEMUserInformation struct {
OEMUserInformation *DomainDisplayOEMUserBuffer `idl:"name:OemUserInformation" json:"oem_user_information"`
}
DisplayInfoBuffer_OEMUserInformation structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union arm.
It has following labels: 4
func (*DisplayInfoBuffer_OEMUserInformation) MarshalNDR ¶
func (*DisplayInfoBuffer_OEMUserInformation) UnmarshalNDR ¶
type DisplayInfoBuffer_UserInformation ¶
type DisplayInfoBuffer_UserInformation struct {
UserInformation *DomainDisplayUserBuffer `idl:"name:UserInformation" json:"user_information"`
}
DisplayInfoBuffer_UserInformation structure represents SAMPR_DISPLAY_INFO_BUFFER RPC union arm.
It has following labels: 1
func (*DisplayInfoBuffer_UserInformation) MarshalNDR ¶
func (*DisplayInfoBuffer_UserInformation) UnmarshalNDR ¶
type DomainDisplayGroup ¶
type DomainDisplayGroup struct { Index uint32 `idl:"name:Index" json:"index"` RID uint32 `idl:"name:Rid" json:"rid"` Attributes uint32 `idl:"name:Attributes" json:"attributes"` AccountName *dtyp.UnicodeString `idl:"name:AccountName" json:"account_name"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` }
DomainDisplayGroup structure represents SAMPR_DOMAIN_DISPLAY_GROUP RPC structure.
The SAMPR_DOMAIN_DISPLAY_GROUP structure contains a subset of group information sufficient to show a summary of the account for an account management application.
For information on each field, see section 2.2.8.1.
func (*DomainDisplayGroup) MarshalNDR ¶
func (*DomainDisplayGroup) UnmarshalNDR ¶
type DomainDisplayGroupBuffer ¶
type DomainDisplayGroupBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead number of elements. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_DOMAIN_DISPLAY_GROUP elements. Buffer []*DomainDisplayGroup `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
DomainDisplayGroupBuffer structure represents SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER RPC structure.
The SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER structure holds an array of SAMPR_DOMAIN_DISPLAY_GROUP elements used to return a list of groups through the SamrQueryDisplayInformation family of methods (see section 3.1.5.3).
func (*DomainDisplayGroupBuffer) MarshalNDR ¶
func (*DomainDisplayGroupBuffer) UnmarshalNDR ¶
type DomainDisplayInformation ¶
type DomainDisplayInformation uint16
DomainDisplayInformation type represents DOMAIN_DISPLAY_INFORMATION RPC enumeration.
The DOMAIN_DISPLAY_INFORMATION enumeration indicates how to interpret the Buffer parameter for SamrQueryDisplayInformation, SamrQueryDisplayInformation2, SamrQueryDisplayInformation3, SamrGetDisplayEnumerationIndex, and SamrGetDisplayEnumerationIndex2. See section 2.2.8.13 for the list of the structures that are associated with each enumeration.
*PDOMAIN_DISPLAY_INFORMATION;
var ( // DomainDisplayUser: Indicates the Buffer parameter is to be interpreted as a SAMPR_DOMAIN_DISPLAY_USER_BUFFER // structure (see section 2.2.8.7). DomainDisplayInformationUser DomainDisplayInformation = 1 // DomainDisplayMachine: Indicates the Buffer parameter is to be interpreted as a SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER // structure (see section 2.2.8.8). DomainDisplayInformationMachine DomainDisplayInformation = 2 // DomainDisplayGroup: Indicates the Buffer parameter is to be interpreted as a SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER // structure (see section 2.2.8.9). DomainDisplayInformationGroup DomainDisplayInformation = 3 // DomainDisplayOemUser: Indicates the Buffer parameter is to be interpreted as a SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER // structure (see section 2.2.8.10). DomainDisplayInformationOEMUser DomainDisplayInformation = 4 // DomainDisplayOemGroup: Indicates the Buffer parameter is to be interpreted as a SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER // structure (see section 2.2.8.11). DomainDisplayInformationOEMGroup DomainDisplayInformation = 5 )
func (DomainDisplayInformation) String ¶
func (o DomainDisplayInformation) String() string
type DomainDisplayMachine ¶
type DomainDisplayMachine struct { Index uint32 `idl:"name:Index" json:"index"` RID uint32 `idl:"name:Rid" json:"rid"` AccountControl uint32 `idl:"name:AccountControl" json:"account_control"` AccountName *dtyp.UnicodeString `idl:"name:AccountName" json:"account_name"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` }
DomainDisplayMachine structure represents SAMPR_DOMAIN_DISPLAY_MACHINE RPC structure.
The SAMPR_DOMAIN_DISPLAY_MACHINE structure contains a subset of machine account information sufficient to show a summary of the account for an account management application.
For information on each field, see section 2.2.8.1.
func (*DomainDisplayMachine) MarshalNDR ¶
func (*DomainDisplayMachine) UnmarshalNDR ¶
type DomainDisplayMachineBuffer ¶
type DomainDisplayMachineBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead number of elements. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_DOMAIN_DISPLAY_MACHINE elements. Buffer []*DomainDisplayMachine `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
DomainDisplayMachineBuffer structure represents SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER RPC structure.
The SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER structure holds an array of SAMPR_DOMAIN_DISPLAY_MACHINE elements used to return a list of machine accounts through the SamrQueryDisplayInformation family of methods (see section 3.1.5.3).
func (*DomainDisplayMachineBuffer) MarshalNDR ¶
func (*DomainDisplayMachineBuffer) UnmarshalNDR ¶
type DomainDisplayOEMGroup ¶
type DomainDisplayOEMGroup struct { Index uint32 `idl:"name:Index" json:"index"` OEMAccountName *String `idl:"name:OemAccountName" json:"oem_account_name"` }
DomainDisplayOEMGroup structure represents SAMPR_DOMAIN_DISPLAY_OEM_GROUP RPC structure.
The SAMPR_DOMAIN_DISPLAY_OEM_GROUP structure contains a subset of group information sufficient to show a summary of the account for an account management application. This structure exists to support non–Unicode-based systems.
For information on each field, see section 2.2.8.1.
func (*DomainDisplayOEMGroup) MarshalNDR ¶
func (*DomainDisplayOEMGroup) UnmarshalNDR ¶
type DomainDisplayOEMGroupBuffer ¶
type DomainDisplayOEMGroupBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead number of elements. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_DOMAIN_DISPLAY_OEM_GROUP elements. Buffer []*DomainDisplayOEMGroup `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
DomainDisplayOEMGroupBuffer structure represents SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER RPC structure.
The SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER structure holds an array of SAMPR_DOMAIN_DISPLAY_OEM_GROUP elements used to return a list of user accounts through the SamrQueryDisplayInformation family of methods (see section 3.1.5.3).
func (*DomainDisplayOEMGroupBuffer) MarshalNDR ¶
func (*DomainDisplayOEMGroupBuffer) UnmarshalNDR ¶
type DomainDisplayOEMUser ¶
type DomainDisplayOEMUser struct { Index uint32 `idl:"name:Index" json:"index"` OEMAccountName *String `idl:"name:OemAccountName" json:"oem_account_name"` }
DomainDisplayOEMUser structure represents SAMPR_DOMAIN_DISPLAY_OEM_USER RPC structure.
The SAMPR_DOMAIN_DISPLAY_OEM_USER structure contains a subset of user account information sufficient to show a summary of the account for an account management application. This structure exists to support non–Unicode-based systems.
For information on each field, see section 2.2.8.1.
func (*DomainDisplayOEMUser) MarshalNDR ¶
func (*DomainDisplayOEMUser) UnmarshalNDR ¶
type DomainDisplayOEMUserBuffer ¶
type DomainDisplayOEMUserBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead number of elements. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_DOMAIN_DISPLAY_OEM_USER elements. Buffer []*DomainDisplayOEMUser `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
DomainDisplayOEMUserBuffer structure represents SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER RPC structure.
The SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER structure holds an array of SAMPR_DOMAIN_DISPLAY_OEM_USER elements used to return a list of users through the SamrQueryDisplayInformation family of methods (see section 3.1.5.3).
func (*DomainDisplayOEMUserBuffer) MarshalNDR ¶
func (*DomainDisplayOEMUserBuffer) UnmarshalNDR ¶
type DomainDisplayUser ¶
type DomainDisplayUser struct { Index uint32 `idl:"name:Index" json:"index"` RID uint32 `idl:"name:Rid" json:"rid"` AccountControl uint32 `idl:"name:AccountControl" json:"account_control"` AccountName *dtyp.UnicodeString `idl:"name:AccountName" json:"account_name"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` }
DomainDisplayUser structure represents SAMPR_DOMAIN_DISPLAY_USER RPC structure.
The SAMPR_DOMAIN_DISPLAY_USER structure contains a subset of user account information sufficient to show a summary of the account for an account management application.
For information on each field, see section 2.2.8.1.
func (*DomainDisplayUser) MarshalNDR ¶
func (*DomainDisplayUser) UnmarshalNDR ¶
type DomainDisplayUserBuffer ¶
type DomainDisplayUserBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead number of elements. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_DOMAIN_DISPLAY_USER elements. Buffer []*DomainDisplayUser `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
DomainDisplayUserBuffer structure represents SAMPR_DOMAIN_DISPLAY_USER_BUFFER RPC structure.
The SAMPR_DOMAIN_DISPLAY_USER_BUFFER structure holds an array of SAMPR_DOMAIN_DISPLAY_USER elements used to return a list of users through the SamrQueryDisplayInformation family of methods (see section 3.1.5.3).
func (*DomainDisplayUserBuffer) MarshalNDR ¶
func (*DomainDisplayUserBuffer) UnmarshalNDR ¶
type DomainGeneralInformation ¶
type DomainGeneralInformation struct { ForceLogoff *OldLargeInteger `idl:"name:ForceLogoff" json:"force_logoff"` OEMInformation *dtyp.UnicodeString `idl:"name:OemInformation" json:"oem_information"` DomainName *dtyp.UnicodeString `idl:"name:DomainName" json:"domain_name"` SourceNodeNameReplica *dtyp.UnicodeString `idl:"name:ReplicaSourceNodeName" json:"source_node_name_replica"` DomainModifiedCount *OldLargeInteger `idl:"name:DomainModifiedCount" json:"domain_modified_count"` // For DomainServerState: // // +----------------------------------------------+---------------------+ // | ENUMERATION DOMAIN SERVER ENABLE STATE | UNSIGNED LONG | // | VALUE | VALUE | // +----------------------------------------------+---------------------+ // +----------------------------------------------+---------------------+ // | DomainServerEnabled | 1 | // +----------------------------------------------+---------------------+ // | DomainServerDisabled | 2 | // +----------------------------------------------+---------------------+ DomainServerState uint32 `idl:"name:DomainServerState" json:"domain_server_state"` // For DomainServerRole: // // +--------------------------------------+---------------------+ // | ENUMERATION DOMAIN SERVER ROLE | UNSIGNED LONG | // | VALUE | VALUE | // +--------------------------------------+---------------------+ // +--------------------------------------+---------------------+ // | DomainServerRoleBackup | 2 | // +--------------------------------------+---------------------+ // | DomainServerRolePrimary | 3 | // +--------------------------------------+---------------------+ DomainServerRole uint32 `idl:"name:DomainServerRole" json:"domain_server_role"` UASCompatibilityRequired uint8 `idl:"name:UasCompatibilityRequired" json:"uas_compatibility_required"` UserCount uint32 `idl:"name:UserCount" json:"user_count"` GroupCount uint32 `idl:"name:GroupCount" json:"group_count"` AliasCount uint32 `idl:"name:AliasCount" json:"alias_count"` }
DomainGeneralInformation structure represents SAMPR_DOMAIN_GENERAL_INFORMATION RPC structure.
The SAMPR_DOMAIN_GENERAL_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
Note In section 2.2.3.1, the types for the DomainServerState and DomainServerRole members are the DOMAIN_SERVER_ENABLE_STATE and DOMAIN_SERVER_ROLE enumerations, respectively. These fields have the same purpose as the enumeration values, but the data types are different. The following tables show the corresponding mappings.
func (*DomainGeneralInformation) MarshalNDR ¶
func (*DomainGeneralInformation) UnmarshalNDR ¶
type DomainGeneralInformation2 ¶
type DomainGeneralInformation2 struct { I1 *DomainGeneralInformation `idl:"name:I1" json:"i1"` LockoutDuration *dtyp.LargeInteger `idl:"name:LockoutDuration" json:"lockout_duration"` LockoutObservationWindow *dtyp.LargeInteger `idl:"name:LockoutObservationWindow" json:"lockout_observation_window"` LockoutThreshold uint16 `idl:"name:LockoutThreshold" json:"lockout_threshold"` }
DomainGeneralInformation2 structure represents SAMPR_DOMAIN_GENERAL_INFORMATION2 RPC structure.
The SAMPR_DOMAIN_GENERAL_INFORMATION2 structure contains domain fields.
For information on each field, see section 2.2.3.1, except for I1, which is specified in section 2.2.3.10.
func (*DomainGeneralInformation2) MarshalNDR ¶
func (*DomainGeneralInformation2) UnmarshalNDR ¶
type DomainInfoBuffer ¶
type DomainInfoBuffer struct { // Types that are assignable to Value // // *DomainInfoBuffer_Password // *DomainInfoBuffer_General // *DomainInfoBuffer_Logoff // *DomainInfoBuffer_OEM // *DomainInfoBuffer_Name // *DomainInfoBuffer_Role // *DomainInfoBuffer_Replication // *DomainInfoBuffer_Modified // *DomainInfoBuffer_State // *DomainInfoBuffer_General2 // *DomainInfoBuffer_Lockout // *DomainInfoBuffer_Modified2 Value is_DomainInfoBuffer `json:"value"` }
DomainInfoBuffer structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union.
The SAMPR_DOMAIN_INFO_BUFFER union combines all possible structures used in the SamrSetInformationDomain and SamrQueryInformationDomain methods. For details on each field, see the associated section for each field structure.
func (*DomainInfoBuffer) GetValue ¶
func (o *DomainInfoBuffer) GetValue() any
func (*DomainInfoBuffer) MarshalUnionNDR ¶
func (*DomainInfoBuffer) NDRSwitchValue ¶
func (o *DomainInfoBuffer) NDRSwitchValue(sw uint16) uint16
func (*DomainInfoBuffer) UnmarshalUnionNDR ¶
type DomainInfoBuffer_General ¶
type DomainInfoBuffer_General struct {
General *DomainGeneralInformation `idl:"name:General" json:"general"`
}
DomainInfoBuffer_General structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 2
func (*DomainInfoBuffer_General) MarshalNDR ¶
func (*DomainInfoBuffer_General) UnmarshalNDR ¶
type DomainInfoBuffer_General2 ¶
type DomainInfoBuffer_General2 struct {
General2 *DomainGeneralInformation2 `idl:"name:General2" json:"general2"`
}
DomainInfoBuffer_General2 structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 11
func (*DomainInfoBuffer_General2) MarshalNDR ¶
func (*DomainInfoBuffer_General2) UnmarshalNDR ¶
type DomainInfoBuffer_Lockout ¶
type DomainInfoBuffer_Lockout struct {
Lockout *DomainLockoutInformation `idl:"name:Lockout" json:"lockout"`
}
DomainInfoBuffer_Lockout structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 12
func (*DomainInfoBuffer_Lockout) MarshalNDR ¶
func (*DomainInfoBuffer_Lockout) UnmarshalNDR ¶
type DomainInfoBuffer_Logoff ¶
type DomainInfoBuffer_Logoff struct {
Logoff *DomainLogoffInformation `idl:"name:Logoff" json:"logoff"`
}
DomainInfoBuffer_Logoff structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 3
func (*DomainInfoBuffer_Logoff) MarshalNDR ¶
func (*DomainInfoBuffer_Logoff) UnmarshalNDR ¶
type DomainInfoBuffer_Modified ¶
type DomainInfoBuffer_Modified struct {
Modified *DomainModifiedInformation `idl:"name:Modified" json:"modified"`
}
DomainInfoBuffer_Modified structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 8
func (*DomainInfoBuffer_Modified) MarshalNDR ¶
func (*DomainInfoBuffer_Modified) UnmarshalNDR ¶
type DomainInfoBuffer_Modified2 ¶
type DomainInfoBuffer_Modified2 struct {
Modified2 *DomainModifiedInformation2 `idl:"name:Modified2" json:"modified2"`
}
DomainInfoBuffer_Modified2 structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 13
func (*DomainInfoBuffer_Modified2) MarshalNDR ¶
func (*DomainInfoBuffer_Modified2) UnmarshalNDR ¶
type DomainInfoBuffer_Name ¶
type DomainInfoBuffer_Name struct {
Name *DomainNameInformation `idl:"name:Name" json:"name"`
}
DomainInfoBuffer_Name structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 5
func (*DomainInfoBuffer_Name) MarshalNDR ¶
func (*DomainInfoBuffer_Name) UnmarshalNDR ¶
type DomainInfoBuffer_OEM ¶
type DomainInfoBuffer_OEM struct {
OEM *DomainOEMInformation `idl:"name:Oem" json:"oem"`
}
DomainInfoBuffer_OEM structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 4
func (*DomainInfoBuffer_OEM) MarshalNDR ¶
func (*DomainInfoBuffer_OEM) UnmarshalNDR ¶
type DomainInfoBuffer_Password ¶
type DomainInfoBuffer_Password struct {
Password *DomainPasswordInformation `idl:"name:Password" json:"password"`
}
DomainInfoBuffer_Password structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 1
func (*DomainInfoBuffer_Password) MarshalNDR ¶
func (*DomainInfoBuffer_Password) UnmarshalNDR ¶
type DomainInfoBuffer_Replication ¶
type DomainInfoBuffer_Replication struct {
Replication *DomainReplicationInformation `idl:"name:Replication" json:"replication"`
}
DomainInfoBuffer_Replication structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 6
func (*DomainInfoBuffer_Replication) MarshalNDR ¶
func (*DomainInfoBuffer_Replication) UnmarshalNDR ¶
type DomainInfoBuffer_Role ¶
type DomainInfoBuffer_Role struct {
Role *DomainServerRoleInformation `idl:"name:Role" json:"role"`
}
DomainInfoBuffer_Role structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 7
func (*DomainInfoBuffer_Role) MarshalNDR ¶
func (*DomainInfoBuffer_Role) UnmarshalNDR ¶
type DomainInfoBuffer_State ¶
type DomainInfoBuffer_State struct {
State *DomainStateInformation `idl:"name:State" json:"state"`
}
DomainInfoBuffer_State structure represents SAMPR_DOMAIN_INFO_BUFFER RPC union arm.
It has following labels: 9
func (*DomainInfoBuffer_State) MarshalNDR ¶
func (*DomainInfoBuffer_State) UnmarshalNDR ¶
type DomainInformationClass ¶
type DomainInformationClass uint16
DomainInformationClass type represents DOMAIN_INFORMATION_CLASS RPC enumeration.
The DOMAIN_INFORMATION_CLASS enumeration indicates how to interpret the Buffer parameter for SamrSetInformationDomain and SamrQueryInformationDomain. For a list of associated structures, see section 2.2.3.17.
var ( // DomainPasswordInformation: Indicates the Buffer parameter is to be interpreted // as a DOMAIN_PASSWORD_INFORMATION structure (see section 2.2.3.5). DomainInformationClassPasswordInformation DomainInformationClass = 1 // DomainGeneralInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_DOMAIN_GENERAL_INFORMATION structure (see section 2.2.3.10). DomainInformationClassGeneralInformation DomainInformationClass = 2 // DomainLogoffInformation: Indicates the Buffer parameter is to be interpreted as // a DOMAIN_LOGOFF_INFORMATION structure (see section 2.2.3.6). DomainInformationClassLogoffInformation DomainInformationClass = 3 // DomainOemInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_DOMAIN_OEM_INFORMATION structure (see section 2.2.3.12). DomainInformationClassOEMInformation DomainInformationClass = 4 // DomainNameInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_DOMAIN_NAME_INFORMATION structure (see section 2.2.3.13). DomainInformationClassNameInformation DomainInformationClass = 5 // DomainReplicationInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_DOMAIN_REPLICATION_INFORMATION structure (see section 2.2.3.14). DomainInformationClassReplicationInformation DomainInformationClass = 6 // DomainServerRoleInformation: Indicates the Buffer parameter is to be interpreted // as a DOMAIN_SERVER_ROLE_INFORMATION structure (see section 2.2.3.7). DomainInformationClassServerRoleInformation DomainInformationClass = 7 // DomainModifiedInformation: Indicates the Buffer parameter is to be interpreted // as a DOMAIN_MODIFIED_INFORMATION structure (see section 2.2.3.8). DomainInformationClassModifiedInformation DomainInformationClass = 8 // DomainStateInformation: Indicates the Buffer parameter is to be interpreted as // a DOMAIN_STATE_INFORMATION structure (see section 2.2.3.3). DomainInformationClassStateInformation DomainInformationClass = 9 // DomainGeneralInformation2: Indicates the Buffer parameter is to be interpreted // as a SAMPR_DOMAIN_GENERAL_INFORMATION2 structure (see section 2.2.3.11). DomainInformationClassGeneralInformation2 DomainInformationClass = 11 // DomainLockoutInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_DOMAIN_LOCKOUT_INFORMATION structure (see section 2.2.3.15). DomainInformationClassLockoutInformation DomainInformationClass = 12 // DomainModifiedInformation2: Indicates the Buffer parameter is to be interpreted // as a DOMAIN_MODIFIED_INFORMATION2 structure (see section 2.2.3.9). DomainInformationClassModifiedInformation2 DomainInformationClass = 13 )
func (DomainInformationClass) String ¶
func (o DomainInformationClass) String() string
type DomainLockoutInformation ¶
type DomainLockoutInformation struct { LockoutDuration *dtyp.LargeInteger `idl:"name:LockoutDuration" json:"lockout_duration"` LockoutObservationWindow *dtyp.LargeInteger `idl:"name:LockoutObservationWindow" json:"lockout_observation_window"` LockoutThreshold uint16 `idl:"name:LockoutThreshold" json:"lockout_threshold"` }
DomainLockoutInformation structure represents SAMPR_DOMAIN_LOCKOUT_INFORMATION RPC structure.
The SAMPR_DOMAIN_LOCKOUT_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainLockoutInformation) MarshalNDR ¶
func (*DomainLockoutInformation) UnmarshalNDR ¶
type DomainLogoffInformation ¶
type DomainLogoffInformation struct {
ForceLogoff *OldLargeInteger `idl:"name:ForceLogoff" json:"force_logoff"`
}
DomainLogoffInformation structure represents DOMAIN_LOGOFF_INFORMATION RPC structure.
The DOMAIN_LOGOFF_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainLogoffInformation) MarshalNDR ¶
func (*DomainLogoffInformation) UnmarshalNDR ¶
type DomainModifiedInformation ¶
type DomainModifiedInformation struct { DomainModifiedCount *OldLargeInteger `idl:"name:DomainModifiedCount" json:"domain_modified_count"` CreationTime *OldLargeInteger `idl:"name:CreationTime" json:"creation_time"` }
DomainModifiedInformation structure represents DOMAIN_MODIFIED_INFORMATION RPC structure.
The DOMAIN_MODIFIED_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainModifiedInformation) MarshalNDR ¶
func (*DomainModifiedInformation) UnmarshalNDR ¶
type DomainModifiedInformation2 ¶
type DomainModifiedInformation2 struct { DomainModifiedCount *OldLargeInteger `idl:"name:DomainModifiedCount" json:"domain_modified_count"` CreationTime *OldLargeInteger `idl:"name:CreationTime" json:"creation_time"` ModifiedCountATLastPromotion *OldLargeInteger `idl:"name:ModifiedCountAtLastPromotion" json:"modified_count_at_last_promotion"` }
DomainModifiedInformation2 structure represents DOMAIN_MODIFIED_INFORMATION2 RPC structure.
The DOMAIN_MODIFIED_INFORMATION2 structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainModifiedInformation2) MarshalNDR ¶
func (*DomainModifiedInformation2) UnmarshalNDR ¶
type DomainNameInformation ¶
type DomainNameInformation struct {
DomainName *dtyp.UnicodeString `idl:"name:DomainName" json:"domain_name"`
}
DomainNameInformation structure represents SAMPR_DOMAIN_NAME_INFORMATION RPC structure.
The SAMPR_DOMAIN_NAME_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainNameInformation) MarshalNDR ¶
func (*DomainNameInformation) UnmarshalNDR ¶
type DomainOEMInformation ¶
type DomainOEMInformation struct {
OEMInformation *dtyp.UnicodeString `idl:"name:OemInformation" json:"oem_information"`
}
DomainOEMInformation structure represents SAMPR_DOMAIN_OEM_INFORMATION RPC structure.
The SAMPR_DOMAIN_OEM_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainOEMInformation) MarshalNDR ¶
func (*DomainOEMInformation) UnmarshalNDR ¶
type DomainPasswordInformation ¶
type DomainPasswordInformation struct { MinPasswordLength uint16 `idl:"name:MinPasswordLength" json:"min_password_length"` PasswordHistoryLength uint16 `idl:"name:PasswordHistoryLength" json:"password_history_length"` PasswordProperties uint32 `idl:"name:PasswordProperties" json:"password_properties"` MaxPasswordAge *OldLargeInteger `idl:"name:MaxPasswordAge" json:"max_password_age"` MinPasswordAge *OldLargeInteger `idl:"name:MinPasswordAge" json:"min_password_age"` }
DomainPasswordInformation structure represents DOMAIN_PASSWORD_INFORMATION RPC structure.
The DOMAIN_PASSWORD_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainPasswordInformation) MarshalNDR ¶
func (*DomainPasswordInformation) UnmarshalNDR ¶
type DomainReplicationInformation ¶
type DomainReplicationInformation struct {
SourceNodeNameReplica *dtyp.UnicodeString `idl:"name:ReplicaSourceNodeName" json:"source_node_name_replica"`
}
DomainReplicationInformation structure represents SAMPR_DOMAIN_REPLICATION_INFORMATION RPC structure.
The SAMPR_DOMAIN_REPLICATION_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainReplicationInformation) MarshalNDR ¶
func (*DomainReplicationInformation) UnmarshalNDR ¶
type DomainServerEnableState ¶
type DomainServerEnableState uint16
DomainServerEnableState type represents DOMAIN_SERVER_ENABLE_STATE RPC enumeration.
The DOMAIN_SERVER_ENABLE_STATE enumeration describes the enabled or disabled state of a server.
var ( // DomainServerEnabled: The server is considered "enabled" to the client. DomainServerEnableStateEnabled DomainServerEnableState = 1 // DomainServerDisabled: This field is not used. DomainServerEnableStateDisabled DomainServerEnableState = 2 )
func (DomainServerEnableState) String ¶
func (o DomainServerEnableState) String() string
type DomainServerRole ¶
type DomainServerRole uint16
DomainServerRole type represents DOMAIN_SERVER_ROLE RPC enumeration.
The DOMAIN_SERVER_ROLE enumeration indicates whether a server is a PDC.
var ( // DomainServerRoleBackup: The DC is not the PDC. DomainServerRoleBackup DomainServerRole = 2 // DomainServerRolePrimary: The DC is the PDC. DomainServerRolePrimary DomainServerRole = 3 )
func (DomainServerRole) String ¶
func (o DomainServerRole) String() string
type DomainServerRoleInformation ¶
type DomainServerRoleInformation struct {
DomainServerRole DomainServerRole `idl:"name:DomainServerRole" json:"domain_server_role"`
}
DomainServerRoleInformation structure represents DOMAIN_SERVER_ROLE_INFORMATION RPC structure.
The DOMAIN_SERVER_ROLE_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*DomainServerRoleInformation) MarshalNDR ¶
func (*DomainServerRoleInformation) UnmarshalNDR ¶
type DomainStateInformation ¶
type DomainStateInformation struct {
DomainServerState DomainServerEnableState `idl:"name:DomainServerState" json:"domain_server_state"`
}
DomainStateInformation structure represents DOMAIN_STATE_INFORMATION RPC structure.
The DOMAIN_STATE_INFORMATION structure holds the enabled/disabled state of the server.
For information on each field, see section 2.2.3.1.
func (*DomainStateInformation) MarshalNDR ¶
func (*DomainStateInformation) UnmarshalNDR ¶
type EncryptedLMOWFPassword ¶
type EncryptedLMOWFPassword struct { // data: 16 bytes of unstructured data used to hold an encrypted 16-byte hash (either // an LM hash or an NT hash). The encryption algorithm is specified in section 2.2.11.1. // The methods specified in sections 3.1.5.10 and 3.1.5.13.6 use this structure and // specify the type of hash and the encryption key. Data []byte `idl:"name:data" json:"data"` }
EncryptedLMOWFPassword structure represents ENCRYPTED_LM_OWF_PASSWORD RPC structure.
The ENCRYPTED_LM_OWF_PASSWORD structure defines a block of encrypted data used in various methods to communicate sensitive information.
func (*EncryptedLMOWFPassword) MarshalNDR ¶
func (*EncryptedLMOWFPassword) UnmarshalNDR ¶
type EncryptedNTOWFPassword ¶
type EncryptedNTOWFPassword struct {
Data []byte `idl:"name:data" json:"data"`
}
EncryptedNTOWFPassword structure represents ENCRYPTED_NT_OWF_PASSWORD RPC structure.
func (*EncryptedNTOWFPassword) MarshalNDR ¶
func (*EncryptedNTOWFPassword) UnmarshalNDR ¶
type EncryptedUserPassword ¶
type EncryptedUserPassword struct { // Buffer: An array to carry encrypted cleartext password data. The encryption key // is method-specific, while the algorithm specified in section 3.2.2.1 is common for // all methods that use this structure. See the message syntax for SamrOemChangePasswordUser2 // (section 3.1.5.10.2) and SamrUnicodeChangePasswordUser2 (section 3.1.5.10.3), and // the message processing for SamrSetInformationUser2 (section 3.1.5.6.4), for details // on the encryption key selection. The size of (256 * 2) + 4 for Buffer is determined // by the size of the structure that is encrypted, SAMPR_USER_PASSWORD; see below for // more details. // // For all protocol uses, the decrypted format of Buffer is the following structure. // // typedef struct _SAMPR_USER_PASSWORD { wchar_t Buffer[256]; unsigned long // Length; } SAMPR_USER_PASSWORD, *PSAMPR_USER_PASSWORD; // // Buffer: This array contains the cleartext value at the end of the buffer. The start // of the string is Length number of bytes from the end of the buffer. The cleartext // value can be no more than 512 bytes. The unused portions of SAMPR_USER_PASSWORD.Buffer // SHOULD be filled with random bytes by the client. The value 512 is chosen because // that is the longest password allowed by this protocol (and enforced by the server). // // Implementations of this protocol MUST protect the SAMPR_ENCRYPTED_USER_PASSWORD structure // by encrypting the 516 bytes of data referenced in its Buffer field on request (and // reply), and decrypting on receipt. See section 3.2.2.1 for the specification of the // algorithm performing encryption and decryption. Buffer []byte `idl:"name:Buffer" json:"buffer"` }
EncryptedUserPassword structure represents SAMPR_ENCRYPTED_USER_PASSWORD RPC structure.
The SAMPR_ENCRYPTED_USER_PASSWORD structure carries an encrypted string.
func (*EncryptedUserPassword) MarshalNDR ¶
func (*EncryptedUserPassword) UnmarshalNDR ¶
type EncryptedUserPasswordNew ¶
type EncryptedUserPasswordNew struct { // Buffer: An array to carry encrypted cleartext password data. // // For all protocol uses, the decrypted format of Buffer is the following structure. // // typedef struct _SAMPR_USER_PASSWORD_NEW { WCHAR Buffer[256]; ULONG Length; UCHAR // ClearSalt[16]; } SAMPR_USER_PASSWORD_NEW, *PSAMPR_USER_PASSWORD_NEW; // // Buffer: This array contains the cleartext value at the end of the buffer. The cleartext // value can be no more than 512 bytes. The start of the string is Length number of // bytes from the end of the buffer. The unused portions of SAMPR_USER_PASSWORD_NEW.Buffer // SHOULD be filled with random bytes by the client. // // Length: An unsigned integer, in little-endian byte order, that indicates the number // of bytes of the cleartext value (located in SAMPR_USER_PASSWORD_NEW.Buffer). // // Implementations of this protocol MUST protect the SAMPR_ENCRYPTED_USER_PASSWORD_NEW // structure by encrypting the first 516 bytes of data referenced in its Buffer field // on request (and reply) and by decrypting on receipt. See section 3.2.2.1 for the // specification of the algorithm performing encryption and decryption. // // The first 516 bytes are defined as the first 516 bytes of the SAMPR_USER_PASSWORD_NEW // structure defined previously. The last 16 bytes of the SAMPR_ENCRYPTED_USER_PASSWORD_NEW // structure are defined as the last 16 bytes of the SAMPR_USER_PASSWORD_NEW structure // and MUST NOT be encrypted or decrypted. Buffer []byte `idl:"name:Buffer" json:"buffer"` }
EncryptedUserPasswordNew structure represents SAMPR_ENCRYPTED_USER_PASSWORD_NEW RPC structure.
The SAMPR_ENCRYPTED_USER_PASSWORD_NEW structure carries an encrypted string.
func (*EncryptedUserPasswordNew) MarshalNDR ¶
func (*EncryptedUserPasswordNew) UnmarshalNDR ¶
type EnumerateAliasesInDomainRequest ¶
type EnumerateAliasesInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // PreferedMaximumLength: The requested maximum number of bytes to return in Buffer. PreferredMaximumLength uint32 `idl:"name:PreferedMaximumLength" json:"preferred_maximum_length"` }
EnumerateAliasesInDomainRequest structure represents the SamrEnumerateAliasesInDomain operation request
func (*EnumerateAliasesInDomainRequest) MarshalNDR ¶
func (*EnumerateAliasesInDomainRequest) UnmarshalNDR ¶
type EnumerateAliasesInDomainResponse ¶
type EnumerateAliasesInDomainResponse struct { // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // Buffer: A list of alias information, as specified in section 2.2.7.10. Buffer *EnumerationBuffer `idl:"name:Buffer" json:"buffer"` // CountReturned: The count of domain elements returned in Buffer. // // This method asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. // // This method MUST be processed per the specifications in section 3.1.5.2.2 using the // following object selection filter: // // * // // The *objectClass* attribute value MUST be group or derived from group. // // * // // The *groupType* attribute value MUST be GROUP_TYPE_SECURITY_RESOURCE. // // * // // The *objectSid* attribute value MUST have the domain prefix ( 7b2aeb27-92fc-41f6-8437-deb65d950921#gt_9066e9dc-8275-4452-9073-daab5fd427c5 // ) of the domain referenced by DomainHandle. CountReturned uint32 `idl:"name:CountReturned" json:"count_returned"` // Return: The SamrEnumerateAliasesInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
EnumerateAliasesInDomainResponse structure represents the SamrEnumerateAliasesInDomain operation response
func (*EnumerateAliasesInDomainResponse) MarshalNDR ¶
func (*EnumerateAliasesInDomainResponse) UnmarshalNDR ¶
type EnumerateDomainsInSAMServerRequest ¶
type EnumerateDomainsInSAMServerRequest struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a server object. Server *Handle `idl:"name:ServerHandle" json:"server"` // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration, the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // PreferedMaximumLength: The requested maximum number of bytes to return in Buffer. PreferredMaximumLength uint32 `idl:"name:PreferedMaximumLength" json:"preferred_maximum_length"` }
EnumerateDomainsInSAMServerRequest structure represents the SamrEnumerateDomainsInSamServer operation request
func (*EnumerateDomainsInSAMServerRequest) MarshalNDR ¶
func (*EnumerateDomainsInSAMServerRequest) UnmarshalNDR ¶
type EnumerateDomainsInSAMServerResponse ¶
type EnumerateDomainsInSAMServerResponse struct { // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration, the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // Buffer: A listing of domain information, as described in section 2.2.7.10. Buffer *EnumerationBuffer `idl:"name:Buffer" json:"buffer"` // CountReturned: The count of domain elements returned in Buffer. // // This method asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. CountReturned uint32 `idl:"name:CountReturned" json:"count_returned"` // Return: The SamrEnumerateDomainsInSamServer return value. Return int32 `idl:"name:Return" json:"return"` }
EnumerateDomainsInSAMServerResponse structure represents the SamrEnumerateDomainsInSamServer operation response
func (*EnumerateDomainsInSAMServerResponse) MarshalNDR ¶
func (*EnumerateDomainsInSAMServerResponse) UnmarshalNDR ¶
type EnumerateGroupsInDomainRequest ¶
type EnumerateGroupsInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration, the client sets EnumerationContext to zero. Otherwise, the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // PreferedMaximumLength: The requested maximum number of bytes to return in Buffer. PreferredMaximumLength uint32 `idl:"name:PreferedMaximumLength" json:"preferred_maximum_length"` }
EnumerateGroupsInDomainRequest structure represents the SamrEnumerateGroupsInDomain operation request
func (*EnumerateGroupsInDomainRequest) MarshalNDR ¶
func (*EnumerateGroupsInDomainRequest) UnmarshalNDR ¶
type EnumerateGroupsInDomainResponse ¶
type EnumerateGroupsInDomainResponse struct { // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration, the client sets EnumerationContext to zero. Otherwise, the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // Buffer: A list of group information, as specified in section 2.2.7.10. Buffer *EnumerationBuffer `idl:"name:Buffer" json:"buffer"` // CountReturned: The count of domain elements returned in Buffer. // // This method asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. // // This method MUST be processed per the specifications in section 3.1.5.2.2 using the // following object selection filter: // // * // // The *objectClass* attribute value MUST be group or derived from group. // // * // // The *groupType* attribute value MUST be one of GROUP_TYPE_SECURITY_UNIVERSAL or GROUP_TYPE_SECURITY_ACCOUNT. // // * // // The *objectSid* attribute value MUST have the domain prefix ( 7b2aeb27-92fc-41f6-8437-deb65d950921#gt_9066e9dc-8275-4452-9073-daab5fd427c5 // ) of the domain referenced by DomainHandle. CountReturned uint32 `idl:"name:CountReturned" json:"count_returned"` // Return: The SamrEnumerateGroupsInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
EnumerateGroupsInDomainResponse structure represents the SamrEnumerateGroupsInDomain operation response
func (*EnumerateGroupsInDomainResponse) MarshalNDR ¶
func (*EnumerateGroupsInDomainResponse) UnmarshalNDR ¶
type EnumerateUsersInDomainRequest ¶
type EnumerateUsersInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // UserAccountControl: A filter value to be used on the userAccountControl attribute. UserAccountControl uint32 `idl:"name:UserAccountControl" json:"user_account_control"` // PreferedMaximumLength: The requested maximum number of bytes to return in Buffer. PreferredMaximumLength uint32 `idl:"name:PreferedMaximumLength" json:"preferred_maximum_length"` }
EnumerateUsersInDomainRequest structure represents the SamrEnumerateUsersInDomain operation request
func (*EnumerateUsersInDomainRequest) MarshalNDR ¶
func (*EnumerateUsersInDomainRequest) UnmarshalNDR ¶
type EnumerateUsersInDomainResponse ¶
type EnumerateUsersInDomainResponse struct { // EnumerationContext: This value is a cookie that the server can use to continue an // enumeration on a subsequent call. It is an opaque value to the client. To initiate // a new enumeration the client sets EnumerationContext to zero. Otherwise the client // sets EnumerationContext to a value returned by a previous call to the method. EnumerationContext uint32 `idl:"name:EnumerationContext" json:"enumeration_context"` // Buffer: A list of user information, as specified in section 2.2.7.10. Buffer *EnumerationBuffer `idl:"name:Buffer" json:"buffer"` // CountReturned: The count of domain elements returned in Buffer. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. // // This method MUST be processed per the specifications in section 3.1.5.2.2, using // the following object selection filter: // // * // // The *objectClass* attribute value MUST be user or derived from user. // // * // // The *userAccountControl* attribute value MUST contain all the bits in the method // parameter UserAccountControl. // // * // // The *objectSid* attribute value MUST have the domain prefix ( 7b2aeb27-92fc-41f6-8437-deb65d950921#gt_9066e9dc-8275-4452-9073-daab5fd427c5 // ) of the domain referenced by DomainHandle. // // In addition, all of the following constraints MUST be satisfied before the constraints // of section 3.1.5.2.2 are satisfied: // // * // // If DomainHandle.Object is a reference to the account domain and the configuration // is DC ( 7b2aeb27-92fc-41f6-8437-deb65d950921#gt_76a05049-3531-4abd-aec8-30e19954b4bd // ) , the client MUST have the SAM-Enumerate-Entire-Domain control access right ( 7b2aeb27-92fc-41f6-8437-deb65d950921#gt_42f6c9e0-a2b3-4bc3-9b87-fdb902e5505e // ) ( [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a ) section 5.1.3.2.1 // ( ../ms-adts/1522b774-6464-41a3-87a5-1e5633c3fbbb ) ) on the domain's *ntSecurityDescriptor* // attribute value. // // * // // The server MUST ignore the UF_LOCKOUT and UF_PASSWORD_EXPIRED bits in the UserAccountControl // parameter. CountReturned uint32 `idl:"name:CountReturned" json:"count_returned"` // Return: The SamrEnumerateUsersInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
EnumerateUsersInDomainResponse structure represents the SamrEnumerateUsersInDomain operation response
func (*EnumerateUsersInDomainResponse) MarshalNDR ¶
func (*EnumerateUsersInDomainResponse) UnmarshalNDR ¶
type EnumerationBuffer ¶
type EnumerationBuffer struct { // EntriesRead: The number of elements in Buffer. If zero, Buffer MUST be ignored. // If nonzero, Buffer MUST point to at least EntriesRead * sizeof(SAMPR_RID_ENUMERATION) // bytes of memory. EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"` // Buffer: An array of SAMPR_RID_ENUMERATION elements. Buffer []*RIDEnumeration `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"` }
EnumerationBuffer structure represents SAMPR_ENUMERATION_BUFFER RPC structure.
The SAMPR_ENUMERATION_BUFFER structure holds an array of SAMPR_RID_ENUMERATION elements.
func (*EnumerationBuffer) MarshalNDR ¶
func (*EnumerationBuffer) UnmarshalNDR ¶
type GetAliasMembershipRequest ¶
type GetAliasMembershipRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // SidArray: A list of SIDs. SIDArray *SIDArray `idl:"name:SidArray" json:"sid_array"` }
GetAliasMembershipRequest structure represents the SamrGetAliasMembership operation request
func (*GetAliasMembershipRequest) MarshalNDR ¶
func (*GetAliasMembershipRequest) UnmarshalNDR ¶
type GetAliasMembershipResponse ¶
type GetAliasMembershipResponse struct { // Membership: The union of all aliases (represented by RIDs) that all SIDs in SidArray // are a member of. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Membership *Uint32Array `idl:"name:Membership" json:"membership"` // Return: The SamrGetAliasMembership return value. Return int32 `idl:"name:Return" json:"return"` }
GetAliasMembershipResponse structure represents the SamrGetAliasMembership operation response
func (*GetAliasMembershipResponse) MarshalNDR ¶
func (*GetAliasMembershipResponse) UnmarshalNDR ¶
type GetDisplayEnumerationIndex2Request ¶
type GetDisplayEnumerationIndex2Request struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DisplayInformationClass: An enumeration indicating which set of objects to return // an index into (for a subsequent SamrQueryDisplayInformation3 method call). DisplayInformationClass DomainDisplayInformation `idl:"name:DisplayInformationClass" json:"display_information_class"` // Prefix: A string matched against the account name to find a starting point for an // enumeration. The Prefix parameter enables the client to obtain a listing of an account // from SamrQueryDisplayInformation3 such that the accounts are returned in alphabetical // order with respect to their account name, starting with the account name that most // closely matches Prefix. See details later in this section. Prefix *dtyp.UnicodeString `idl:"name:Prefix" json:"prefix"` }
GetDisplayEnumerationIndex2Request structure represents the SamrGetDisplayEnumerationIndex2 operation request
func (*GetDisplayEnumerationIndex2Request) MarshalNDR ¶
func (*GetDisplayEnumerationIndex2Request) UnmarshalNDR ¶
type GetDisplayEnumerationIndex2Response ¶
type GetDisplayEnumerationIndex2Response struct { // Index: A value to use as input to SamrQueryDisplayInformation3 in order to control // the accounts that are returned from that method. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Index uint32 `idl:"name:Index" json:"index"` // Return: The SamrGetDisplayEnumerationIndex2 return value. Return int32 `idl:"name:Return" json:"return"` }
GetDisplayEnumerationIndex2Response structure represents the SamrGetDisplayEnumerationIndex2 operation response
func (*GetDisplayEnumerationIndex2Response) MarshalNDR ¶
func (*GetDisplayEnumerationIndex2Response) UnmarshalNDR ¶
type GetDisplayEnumerationIndexRequest ¶
type GetDisplayEnumerationIndexRequest struct { Domain *Handle `idl:"name:DomainHandle" json:"domain"` DisplayInformationClass DomainDisplayInformation `idl:"name:DisplayInformationClass" json:"display_information_class"` Prefix *dtyp.UnicodeString `idl:"name:Prefix" json:"prefix"` }
GetDisplayEnumerationIndexRequest structure represents the SamrGetDisplayEnumerationIndex operation request
func (*GetDisplayEnumerationIndexRequest) MarshalNDR ¶
func (*GetDisplayEnumerationIndexRequest) UnmarshalNDR ¶
type GetDisplayEnumerationIndexResponse ¶
type GetDisplayEnumerationIndexResponse struct { Index uint32 `idl:"name:Index" json:"index"` // Return: The SamrGetDisplayEnumerationIndex return value. Return int32 `idl:"name:Return" json:"return"` }
GetDisplayEnumerationIndexResponse structure represents the SamrGetDisplayEnumerationIndex operation response
func (*GetDisplayEnumerationIndexResponse) MarshalNDR ¶
func (*GetDisplayEnumerationIndexResponse) UnmarshalNDR ¶
type GetDomainPasswordInformationRequest ¶
type GetDomainPasswordInformationRequest struct { }
GetDomainPasswordInformationRequest structure represents the SamrGetDomainPasswordInformation operation request
func (*GetDomainPasswordInformationRequest) MarshalNDR ¶
func (*GetDomainPasswordInformationRequest) UnmarshalNDR ¶
type GetDomainPasswordInformationResponse ¶
type GetDomainPasswordInformationResponse struct { // PasswordInformation: Password policy information from the account domain. // // There is no security enforced for this method beyond the server-wide access check // specified in section 3.1.2.1. PasswordInformation *UserDomainPasswordInformation `idl:"name:PasswordInformation" json:"password_information"` // Return: The SamrGetDomainPasswordInformation return value. Return int32 `idl:"name:Return" json:"return"` }
GetDomainPasswordInformationResponse structure represents the SamrGetDomainPasswordInformation operation response
func (*GetDomainPasswordInformationResponse) MarshalNDR ¶
func (*GetDomainPasswordInformationResponse) UnmarshalNDR ¶
type GetGroupsBuffer ¶
type GetGroupsBuffer struct { // MembershipCount: The number of elements in Groups. If zero, Groups MUST be ignored. // If nonzero, Groups MUST point to at least MembershipCount * sizeof(GROUP_MEMBERSHIP) // bytes of memory. MembershipCount uint32 `idl:"name:MembershipCount" json:"membership_count"` // Groups: An array to hold information about the members of the group. Groups []*GroupMembership `idl:"name:Groups;size_is:(MembershipCount)" json:"groups"` }
GetGroupsBuffer structure represents SAMPR_GET_GROUPS_BUFFER RPC structure.
The SAMPR_GET_GROUPS_BUFFER structure represents the members of a group.
func (*GetGroupsBuffer) MarshalNDR ¶
func (*GetGroupsBuffer) UnmarshalNDR ¶
type GetGroupsForUserRequest ¶
type GetGroupsForUserRequest struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` }
GetGroupsForUserRequest structure represents the SamrGetGroupsForUser operation request
func (*GetGroupsForUserRequest) MarshalNDR ¶
func (*GetGroupsForUserRequest) UnmarshalNDR ¶
type GetGroupsForUserResponse ¶
type GetGroupsForUserResponse struct { // Groups: An array of RIDs of the groups that the user referenced by UserHandle is // a member of. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Groups *GetGroupsBuffer `idl:"name:Groups" json:"groups"` // Return: The SamrGetGroupsForUser return value. Return int32 `idl:"name:Return" json:"return"` }
GetGroupsForUserResponse structure represents the SamrGetGroupsForUser operation response
func (*GetGroupsForUserResponse) MarshalNDR ¶
func (*GetGroupsForUserResponse) UnmarshalNDR ¶
type GetMembersBuffer ¶
type GetMembersBuffer struct { // MemberCount: The number of elements in Members and Attributes. If zero, Members // and Attributes MUST be ignored. If nonzero, Members and Attributes MUST point to // at least MemberCount * sizeof(unsigned long) bytes of memory. MemberCount uint32 `idl:"name:MemberCount" json:"member_count"` // Members: An array of RIDs. Members []uint32 `idl:"name:Members;size_is:(MemberCount)" json:"members"` // Attributes: Characteristics about the membership, represented as a bitmask. Values // are defined in section 2.2.1.10. Attributes []uint32 `idl:"name:Attributes;size_is:(MemberCount)" json:"attributes"` }
GetMembersBuffer structure represents SAMPR_GET_MEMBERS_BUFFER RPC structure.
The SAMPR_GET_MEMBERS_BUFFER structure represents the membership of a group.
func (*GetMembersBuffer) MarshalNDR ¶
func (*GetMembersBuffer) UnmarshalNDR ¶
type GetMembersInAliasRequest ¶
type GetMembersInAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` }
GetMembersInAliasRequest structure represents the SamrGetMembersInAlias operation request
func (*GetMembersInAliasRequest) MarshalNDR ¶
func (*GetMembersInAliasRequest) UnmarshalNDR ¶
type GetMembersInAliasResponse ¶
type GetMembersInAliasResponse struct { // Members: A structure containing an array of SIDs that represent the membership list // of the alias referenced by AliasHandle. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Members *SIDArrayOut `idl:"name:Members" json:"members"` // Return: The SamrGetMembersInAlias return value. Return int32 `idl:"name:Return" json:"return"` }
GetMembersInAliasResponse structure represents the SamrGetMembersInAlias operation response
func (*GetMembersInAliasResponse) MarshalNDR ¶
func (*GetMembersInAliasResponse) UnmarshalNDR ¶
type GetMembersInGroupRequest ¶
type GetMembersInGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` }
GetMembersInGroupRequest structure represents the SamrGetMembersInGroup operation request
func (*GetMembersInGroupRequest) MarshalNDR ¶
func (*GetMembersInGroupRequest) UnmarshalNDR ¶
type GetMembersInGroupResponse ¶
type GetMembersInGroupResponse struct { // Members: A structure containing an array of RIDs, as well as an array of attribute // values. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Members *GetMembersBuffer `idl:"name:Members" json:"members"` // Return: The SamrGetMembersInGroup return value. Return int32 `idl:"name:Return" json:"return"` }
GetMembersInGroupResponse structure represents the SamrGetMembersInGroup operation response
func (*GetMembersInGroupResponse) MarshalNDR ¶
func (*GetMembersInGroupResponse) UnmarshalNDR ¶
type GetUserDomainPasswordInformationRequest ¶
type GetUserDomainPasswordInformationRequest struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` }
GetUserDomainPasswordInformationRequest structure represents the SamrGetUserDomainPasswordInformation operation request
func (*GetUserDomainPasswordInformationRequest) MarshalNDR ¶
func (*GetUserDomainPasswordInformationRequest) UnmarshalNDR ¶
type GetUserDomainPasswordInformationResponse ¶
type GetUserDomainPasswordInformationResponse struct { // PasswordInformation: Password policy information from the user's domain. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. PasswordInformation *UserDomainPasswordInformation `idl:"name:PasswordInformation" json:"password_information"` // Return: The SamrGetUserDomainPasswordInformation return value. Return int32 `idl:"name:Return" json:"return"` }
GetUserDomainPasswordInformationResponse structure represents the SamrGetUserDomainPasswordInformation operation response
func (*GetUserDomainPasswordInformationResponse) MarshalNDR ¶
func (*GetUserDomainPasswordInformationResponse) UnmarshalNDR ¶
type GroupAdmCommentInformation ¶
type GroupAdmCommentInformation struct {
AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"`
}
GroupAdmCommentInformation structure represents SAMPR_GROUP_ADM_COMMENT_INFORMATION RPC structure.
The SAMPR_GROUP_ADM_COMMENT_INFORMATION structure contains group fields.
For information on each field, see section 2.2.4.1.
func (*GroupAdmCommentInformation) MarshalNDR ¶
func (*GroupAdmCommentInformation) UnmarshalNDR ¶
type GroupAttributeInformation ¶
type GroupAttributeInformation struct {
Attributes uint32 `idl:"name:Attributes" json:"attributes"`
}
GroupAttributeInformation structure represents GROUP_ATTRIBUTE_INFORMATION RPC structure.
The GROUP_ATTRIBUTE_INFORMATION structure contains group fields.
For information on each field, see section 2.2.4.1.
func (*GroupAttributeInformation) MarshalNDR ¶
func (*GroupAttributeInformation) UnmarshalNDR ¶
type GroupGeneralInformation ¶
type GroupGeneralInformation struct { Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` Attributes uint32 `idl:"name:Attributes" json:"attributes"` MemberCount uint32 `idl:"name:MemberCount" json:"member_count"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` }
GroupGeneralInformation structure represents SAMPR_GROUP_GENERAL_INFORMATION RPC structure.
The SAMPR_GROUP_GENERAL_INFORMATION structure contains group fields.
For information on each field, see section 2.2.4.1.
func (*GroupGeneralInformation) MarshalNDR ¶
func (*GroupGeneralInformation) UnmarshalNDR ¶
type GroupInfoBuffer ¶
type GroupInfoBuffer struct { // Types that are assignable to Value // // *GroupInfoBuffer_General // *GroupInfoBuffer_Name // *GroupInfoBuffer_Attribute // *GroupInfoBuffer_AdminComment // *GroupInfoBuffer_DoNotUse Value is_GroupInfoBuffer `json:"value"` }
GroupInfoBuffer structure represents SAMPR_GROUP_INFO_BUFFER RPC union.
The SAMPR_GROUP_INFO_BUFFER union combines all possible structures used in the SamrSetInformationGroup and SamrQueryInformationGroup methods. For information on each field, with the exception of the DoNotUse field, see the associated section for the field structure.
func (*GroupInfoBuffer) GetValue ¶
func (o *GroupInfoBuffer) GetValue() any
func (*GroupInfoBuffer) MarshalUnionNDR ¶
func (*GroupInfoBuffer) NDRSwitchValue ¶
func (o *GroupInfoBuffer) NDRSwitchValue(sw uint16) uint16
func (*GroupInfoBuffer) UnmarshalUnionNDR ¶
type GroupInfoBuffer_AdminComment ¶
type GroupInfoBuffer_AdminComment struct {
AdminComment *GroupAdmCommentInformation `idl:"name:AdminComment" json:"admin_comment"`
}
GroupInfoBuffer_AdminComment structure represents SAMPR_GROUP_INFO_BUFFER RPC union arm.
It has following labels: 4
func (*GroupInfoBuffer_AdminComment) MarshalNDR ¶
func (*GroupInfoBuffer_AdminComment) UnmarshalNDR ¶
type GroupInfoBuffer_Attribute ¶
type GroupInfoBuffer_Attribute struct {
Attribute *GroupAttributeInformation `idl:"name:Attribute" json:"attribute"`
}
GroupInfoBuffer_Attribute structure represents SAMPR_GROUP_INFO_BUFFER RPC union arm.
It has following labels: 3
func (*GroupInfoBuffer_Attribute) MarshalNDR ¶
func (*GroupInfoBuffer_Attribute) UnmarshalNDR ¶
type GroupInfoBuffer_DoNotUse ¶
type GroupInfoBuffer_DoNotUse struct { // DoNotUse: This field exists to allow the GroupReplicationInformation enumeration // to be specified by the client. DoNotUse *GroupGeneralInformation `idl:"name:DoNotUse" json:"do_not_use"` }
GroupInfoBuffer_DoNotUse structure represents SAMPR_GROUP_INFO_BUFFER RPC union arm.
It has following labels: 5
func (*GroupInfoBuffer_DoNotUse) MarshalNDR ¶
func (*GroupInfoBuffer_DoNotUse) UnmarshalNDR ¶
type GroupInfoBuffer_General ¶
type GroupInfoBuffer_General struct {
General *GroupGeneralInformation `idl:"name:General" json:"general"`
}
GroupInfoBuffer_General structure represents SAMPR_GROUP_INFO_BUFFER RPC union arm.
It has following labels: 1
func (*GroupInfoBuffer_General) MarshalNDR ¶
func (*GroupInfoBuffer_General) UnmarshalNDR ¶
type GroupInfoBuffer_Name ¶
type GroupInfoBuffer_Name struct {
Name *GroupNameInformation `idl:"name:Name" json:"name"`
}
GroupInfoBuffer_Name structure represents SAMPR_GROUP_INFO_BUFFER RPC union arm.
It has following labels: 2
func (*GroupInfoBuffer_Name) MarshalNDR ¶
func (*GroupInfoBuffer_Name) UnmarshalNDR ¶
type GroupInformationClass ¶
type GroupInformationClass uint16
GroupInformationClass type represents GROUP_INFORMATION_CLASS RPC enumeration.
The GROUP_INFORMATION_CLASS enumeration indicates how to interpret the Buffer parameter for SamrSetInformationGroup and SamrQueryInformationGroup. For a list of associated structures, see section 2.2.4.7.
var ( // GroupGeneralInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_GROUP_GENERAL_INFORMATION structure (see section 2.2.4.3). GroupInformationClassGeneralInformation GroupInformationClass = 1 // GroupNameInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_GROUP_NAME_INFORMATION structure (see section 2.2.4.4). GroupInformationClassNameInformation GroupInformationClass = 2 // GroupAttributeInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_GROUP_ATTRIBUTE_INFORMATION structure (see section 2.2.4.2). GroupInformationClassAttributeInformation GroupInformationClass = 3 // GroupAdminCommentInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_GROUP_ADM_COMMENT_INFORMATION structure (see section 2.2.4.5). GroupInformationClassAdminCommentInformation GroupInformationClass = 4 // GroupReplicationInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_GROUP_GENERAL_INFORMATION structure (see section 2.2.4.3). GroupInformationClassReplicationInformation GroupInformationClass = 5 )
func (GroupInformationClass) String ¶
func (o GroupInformationClass) String() string
type GroupMembership ¶
type GroupMembership struct { // RelativeId: A RID that represents one membership value. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Attributes: Characteristics about the membership represented as a bitmask. Values // are defined in section 2.2.1.10. Attributes uint32 `idl:"name:Attributes" json:"attributes"` }
GroupMembership structure represents GROUP_MEMBERSHIP RPC structure.
The GROUP_MEMBERSHIP structure holds information on a group membership.
func (*GroupMembership) MarshalNDR ¶
func (*GroupMembership) UnmarshalNDR ¶
type GroupNameInformation ¶
type GroupNameInformation struct {
Name *dtyp.UnicodeString `idl:"name:Name" json:"name"`
}
GroupNameInformation structure represents SAMPR_GROUP_NAME_INFORMATION RPC structure.
The SAMPR_GROUP_NAME_INFORMATION structure contains group fields.
For information on each field, see section 2.2.4.1.
func (*GroupNameInformation) MarshalNDR ¶
func (*GroupNameInformation) UnmarshalNDR ¶
type Handle ¶
type Handle dcetypes.ContextHandle
Handle structure represents SAMPR_HANDLE RPC structure.
func (*Handle) ContextHandle ¶
func (o *Handle) ContextHandle() *dcetypes.ContextHandle
type KerberosKeyData ¶ added in v1.0.2
type KerberosKeyData struct { // KeyType (4 bytes): Indicates the type of key, stored as a 32-bit unsigned integer // in little-endian byte order. This MUST be set to one of the following values, which // are defined in section 2.2.10.8. // // +-------+-------------+ // | | | // | VALUE | MEANING | // | | | // +-------+-------------+ // +-------+-------------+ // | 1 | dec-cbc-crc | // +-------+-------------+ // | 3 | des-cbc-md5 | // +-------+-------------+ KeyType uint32 `idl:"name:KeyType" json:"key_type"` // KeyLength (4 bytes): The length, in bytes, of the value beginning at KeyOffset. The // value of this field is stored in little-endian byte order. KeyLength uint32 `idl:"name:KeyLength" json:"key_length"` // KeyOffset (4 bytes): An offset, in little-endian byte order, from the beginning of // the property value (that is, from the beginning of the Revision field of KERB_STORED_CREDENTIAL) // to where the key value starts. The key value is the hash value specified according // to the KeyType. KeyOffset uint32 `idl:"name:KeyOffset" json:"key_offset"` KeyData []byte `idl:"name:KeyData" json:"key_data"` // contains filtered or unexported fields }
KerberosKeyData structure represents KERB_KEY_DATA RPC structure.
The KERB_KEY_DATA structure holds a cryptographic key. This structure is used in conjunction with KERB_STORED_CREDENTIAL. For more information, see section 3.1.1.8.11.4.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved1 | Reserved2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyType | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyOffset | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*KerberosKeyData) MarshalNDR ¶ added in v1.0.2
func (*KerberosKeyData) UnmarshalNDR ¶ added in v1.0.2
type KerberosKeyDataNew ¶ added in v1.0.2
type KerberosKeyDataNew struct { // IterationCount (4 bytes): Indicates the iteration count used to calculate the password // hashes. IterationCount uint32 `idl:"name:IterationCount" json:"iteration_count"` // KeyType (4 bytes): Indicates the type of key, stored as a 32-bit unsigned integer // in little-endian byte order. This MUST be one of the values listed in section 2.2.10.8. KeyType uint32 `idl:"name:KeyType" json:"key_type"` // KeyLength (4 bytes): The length, in bytes, of the value beginning at KeyOffset. The // value of this field is stored in little-endian byte order. KeyLength uint32 `idl:"name:KeyLength" json:"key_length"` // KeyOffset (4 bytes): An offset, in little-endian byte order, from the beginning of // the property value (that is, from the beginning of the Revision field of KERB_STORED_CREDENTIAL_NEW) // to where the key value starts. KeyOffset uint32 `idl:"name:KeyOffset" json:"key_offset"` KeyData []byte `idl:"name:KeyData" json:"key_data"` // contains filtered or unexported fields }
KerberosKeyDataNew structure represents KERB_KEY_DATA_NEW RPC structure.
The KERB_KEY_DATA_NEW structure holds a cryptographic key. This structure is used in conjunction with KERB_STORED_CREDENTIAL_NEW. For more information, see section 3.1.1.8.11.6.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved1 | Reserved2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | IterationCount | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyType | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyOffset | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*KerberosKeyDataNew) MarshalNDR ¶ added in v1.0.2
func (*KerberosKeyDataNew) UnmarshalNDR ¶ added in v1.0.2
type KerberosStoredCredential ¶ added in v1.0.2
type KerberosStoredCredential struct { // Revision (2 bytes): This value MUST be set to 3. Revision uint16 `idl:"name:Revision" json:"revision"` // Flags (2 bytes): This value MUST be zero and ignored on read. Flags uint16 `idl:"name:Flags" json:"flags"` // CredentialCount (2 bytes): This is the count of elements in the Credentials array. // This value MUST be set to 2. CredentialCount uint16 `idl:"name:CredentialCount" json:"credential_count"` // OldCredentialCount (2 bytes): This is the count of elements in the OldCredentials // array that contain the keys for the previous password. This value MUST be set to // 0 or 2. OldCredentialCount uint16 `idl:"name:OldCredentialCount" json:"old_credential_count"` // DefaultSaltLength (2 bytes): The length, in bytes, of a salt value. DefaultSaltLength uint16 `idl:"name:DefaultSaltLength" json:"default_salt_length"` // DefaultSaltMaximumLength (2 bytes): The length, in bytes, of the buffer containing // the salt value. DefaultSaltMaximumLength uint16 `idl:"name:DefaultSaltMaximumLength" json:"default_salt_maximum_length"` // DefaultSaltOffset (4 bytes): An offset, in little-endian byte order, from the beginning // of the attribute value (that is, from the beginning of the Revision field of KERB_STORED_CREDENTIAL) // to where the salt value starts. This value SHOULD be ignored on read. DefaultSaltOffset uint32 `idl:"name:DefaultSaltOffset" json:"default_salt_offset"` // Credentials (variable): An array of CredentialCount KERB_KEY_DATA (section 2.2.10.5) // elements. Credentials []*KerberosKeyData `idl:"name:Credentials;size_is:(CredentialCount)" json:"credentials"` // OldCredentials (variable): An array of OldCredentialCount KERB_KEY_DATA elements. OldCredentials []*KerberosKeyData `idl:"name:OldCredentials;size_is:(OldCredentialCount)" json:"old_credentials"` // DefaultSalt (variable): The default salt value. DefaultSalt []byte `idl:"name:DefaultSalt;size_is:(DefaultSaltMaximumLength)" json:"default_salt"` // KeyValues (variable): An array of CredentialCount + OldCredentialCount key values. // Each key value MUST be located at the offset specified by the corresponding KeyOffset // values specified in Credentials and OldCredentials. KeyValues []byte `idl:"name:KeyValues" json:"key_values"` }
KerberosStoredCredential structure represents KERB_STORED_CREDENTIAL RPC structure.
The KERB_STORED_CREDENTIAL structure is a variable-length structure that defines the format of the Primary:Kerberos property within the supplementalCredentials attribute. For information on how this structure is created, see section 3.1.1.8.11.4.
This structure is stored as a property value in a USER_PROPERTY structure.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Revision | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | CredentialCount | OldCredentialCount | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSaltLength | DefaultSaltMaximumLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSaltOffset | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Credentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OldCredentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSalt (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyValues (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*KerberosStoredCredential) MarshalNDR ¶ added in v1.0.2
func (*KerberosStoredCredential) UnmarshalNDR ¶ added in v1.0.2
type KerberosStoredCredentialNew ¶ added in v1.0.2
type KerberosStoredCredentialNew struct { // Revision (2 bytes): This value MUST be set to 4. Revision uint16 `idl:"name:Revision" json:"revision"` // Flags (2 bytes): This value MUST be zero and ignored on read. Flags uint16 `idl:"name:Flags" json:"flags"` // CredentialCount (2 bytes): This is the count of elements in the Credentials field. CredentialCount uint16 `idl:"name:CredentialCount" json:"credential_count"` // ServiceCredentialCount (2 bytes): This is the count of elements in the ServiceCredentials // field. It MUST be zero. ServiceCredentialCount uint16 `idl:"name:ServiceCredentialCount" json:"service_credential_count"` // OldCredentialCount (2 bytes): This is the count of elements in the OldCredentials // field that contain the keys for the previous password. OldCredentialCount uint16 `idl:"name:OldCredentialCount" json:"old_credential_count"` // OlderCredentialCount (2 bytes): This is the count of elements in the OlderCredentials // field that contain the keys for the previous password. OlderCredentialCount uint16 `idl:"name:OlderCredentialCount" json:"older_credential_count"` // DefaultSaltLength (2 bytes): The length, in bytes, of a salt value. DefaultSaltLength uint16 `idl:"name:DefaultSaltLength" json:"default_salt_length"` // DefaultSaltMaximumLength (2 bytes): The length, in bytes, of the buffer containing // the salt value. DefaultSaltMaximumLength uint16 `idl:"name:DefaultSaltMaximumLength" json:"default_salt_maximum_length"` // DefaultSaltOffset (4 bytes): An offset, in little-endian byte order, from the beginning // of the attribute value (that is, from the beginning of the Revision field of KERB_STORED_CREDENTIAL) // to where DefaultSalt starts. This value SHOULD be ignored on read. DefaultSaltOffset uint32 `idl:"name:DefaultSaltOffset" json:"default_salt_offset"` // DefaultIterationCount (4 bytes): The default iteration count used to calculate the // password hashes. DefaultIterationCount uint32 `idl:"name:DefaultIterationCount" json:"default_iteration_count"` // Credentials (variable): An array of CredentialCount KERB_KEY_DATA_NEW (section 2.2.10.7) // elements. Credentials []*KerberosKeyDataNew `idl:"name:Credentials;size_is:(CredentialCount)" json:"credentials"` // ServiceCredentials (variable): (This field is optional.) An array of ServiceCredentialCount // KERB_KEY_DATA_NEW elements. ServiceCredentials []*KerberosKeyDataNew `idl:"name:ServiceCredentials;size_is:(ServiceCredentialCount)" json:"service_credentials"` // OldCredentials (variable): (This field is optional.) An array of OldCredentialCount // KERB_KEY_DATA_NEW elements. OldCredentials []*KerberosKeyDataNew `idl:"name:OldCredentials;size_is:(OldCredentialCount)" json:"old_credentials"` // OlderCredentials (variable): (This field is optional.) An array of OlderCredentialCount // KERB_KEY_DATA_NEW elements. OlderCredentials []*KerberosKeyDataNew `idl:"name:OlderCredentials;size_is:(OlderCredentialCount)" json:"older_credentials"` // DefaultSalt (variable): The default salt value. DefaultSalt []byte `idl:"name:DefaultSalt;size_is:(DefaultSaltMaximumLength)" json:"default_salt"` // KeyValues (variable): An array of CredentialCount + ServiceCredentialCount + OldCredentialCount // + OlderCredentialCount key values. Each key value MUST be located at the offset specified // by the corresponding KeyOffset values specified in Credentials, ServiceCredentials, // OldCredentials, and OlderCredentials. KeyValues []byte `idl:"name:KeyValues" json:"key_values"` }
KerberosStoredCredentialNew structure represents KERB_STORED_CREDENTIAL_NEW RPC structure.
The KERB_STORED_CREDENTIAL_NEW structure is a variable-length structure that defines the format of the Primary:Kerberos-Newer-Keys property within the supplementalCredentials attribute. For information on how this structure is created, see section 3.1.1.8.11.6.
This structure is stored as a property value in a USER_PROPERTY structure.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Revision | Flags | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | CredentialCount | ServiceCredentialCount | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OldCredentialCount | OlderCredentialCount | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSaltLength | DefaultSaltMaximumLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSaltOffset | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultIterationCount | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Credentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ServiceCredentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OldCredentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | OlderCredentials (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | DefaultSalt (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | KeyValues (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*KerberosStoredCredentialNew) MarshalNDR ¶ added in v1.0.2
func (*KerberosStoredCredentialNew) UnmarshalNDR ¶ added in v1.0.2
type LogonHours ¶
type LogonHours struct { // UnitsPerWeek: A division of the week (7 days). For example, the value 7 means that // each unit is a day; a value of (7*24) means that the units are hours. The minimum // granularity of time is one minute, where the UnitsPerWeek would be 10080; therefore, // the maximum size of LogonHours is 10080/8, or 1,260 bytes. UnitsPerWeek uint16 `idl:"name:UnitsPerWeek" json:"units_per_week"` // LogonHours: A pointer to a bit field containing at least UnitsPerWeek number of // bits. The leftmost bit represents the first unit, starting at Sunday, 12 A.M. If // a bit is set, authentication is allowed to occur; otherwise, authentication is not // allowed to occur. LogonHours []byte `idl:"name:LogonHours;size_is:(1260);length_is:(((UnitsPerWeek+7)/8))" json:"logon_hours"` }
LogonHours structure represents SAMPR_LOGON_HOURS RPC structure.
The SAMPR_LOGON_HOURS structure contains logon policy information that describes when a user account is permitted to authenticate.
func (*LogonHours) MarshalNDR ¶
func (*LogonHours) UnmarshalNDR ¶
type LookupDomainInSAMServerRequest ¶
type LookupDomainInSAMServerRequest struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a server object. Server *Handle `idl:"name:ServerHandle" json:"server"` // Name: A UTF-16 encoded string. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` }
LookupDomainInSAMServerRequest structure represents the SamrLookupDomainInSamServer operation request
func (*LookupDomainInSAMServerRequest) MarshalNDR ¶
func (*LookupDomainInSAMServerRequest) UnmarshalNDR ¶
type LookupDomainInSAMServerResponse ¶
type LookupDomainInSAMServerResponse struct { // DomainId: A SID value of a domain that corresponds to the Name passed in. The match // MUST be exact (no wildcard characters are permitted). See message processing later // in this section for more details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. DomainID *dtyp.SID `idl:"name:DomainId" json:"domain_id"` // Return: The SamrLookupDomainInSamServer return value. Return int32 `idl:"name:Return" json:"return"` }
LookupDomainInSAMServerResponse structure represents the SamrLookupDomainInSamServer operation response
func (*LookupDomainInSAMServerResponse) MarshalNDR ¶
func (*LookupDomainInSAMServerResponse) UnmarshalNDR ¶
type LookupIDsInDomainRequest ¶
type LookupIDsInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Count: The number of elements in RelativeIds. The maximum value of 1,000 is chosen // to limit the amount of memory that the client can force the server to allocate. Count uint32 `idl:"name:Count" json:"count"` // RelativeIds: An array of RIDs that are to be mapped to account names. RelativeIDs []uint32 `idl:"name:RelativeIds;size_is:(1000);length_is:(Count)" json:"relative_ids"` }
LookupIDsInDomainRequest structure represents the SamrLookupIdsInDomain operation request
func (*LookupIDsInDomainRequest) MarshalNDR ¶
func (*LookupIDsInDomainRequest) UnmarshalNDR ¶
type LookupIDsInDomainResponse ¶
type LookupIDsInDomainResponse struct { // Names: A structure containing an array of account names that correspond to the elements // in RelativeIds. Names *ReturnedUstringArray `idl:"name:Names" json:"names"` // Use: A structure containing an array of SID_NAME_USE enumeration values that describe // the type of account for each entry in RelativeIds. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Use *Uint32Array `idl:"name:Use" json:"use"` // Return: The SamrLookupIdsInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
LookupIDsInDomainResponse structure represents the SamrLookupIdsInDomain operation response
func (*LookupIDsInDomainResponse) MarshalNDR ¶
func (*LookupIDsInDomainResponse) UnmarshalNDR ¶
type LookupNamesInDomainRequest ¶
type LookupNamesInDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Count: The number of elements in Names. The maximum value of 1,000 is chosen to limit // the amount of memory that the client can force the server to allocate. Count uint32 `idl:"name:Count" json:"count"` // Names: An array of strings that are to be mapped to RIDs. Names []*dtyp.UnicodeString `idl:"name:Names;size_is:(1000);length_is:(Count)" json:"names"` }
LookupNamesInDomainRequest structure represents the SamrLookupNamesInDomain operation request
func (*LookupNamesInDomainRequest) MarshalNDR ¶
func (*LookupNamesInDomainRequest) UnmarshalNDR ¶
type LookupNamesInDomainResponse ¶
type LookupNamesInDomainResponse struct { // RelativeIds: An array of RIDs of accounts that correspond to the elements in Names. RelativeIDs *Uint32Array `idl:"name:RelativeIds" json:"relative_ids"` // Use: An array of SID_NAME_USE enumeration values that describe the type of account // for each entry in RelativeIds. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Use *Uint32Array `idl:"name:Use" json:"use"` // Return: The SamrLookupNamesInDomain return value. Return int32 `idl:"name:Return" json:"return"` }
LookupNamesInDomainResponse structure represents the SamrLookupNamesInDomain operation response
func (*LookupNamesInDomainResponse) MarshalNDR ¶
func (*LookupNamesInDomainResponse) UnmarshalNDR ¶
type NTLMStrongNTOWF ¶ added in v1.0.2
type NTLMStrongNTOWF struct {
NTLMStrongNTOWF []byte `idl:"name:NTLMStrongNTOWF" json:"ntlm_strong_ntowf"`
}
NTLMStrongNTOWF structure represents NTLM_STRONG_NTOWF RPC structure.
func (*NTLMStrongNTOWF) MarshalNDR ¶ added in v1.0.2
func (*NTLMStrongNTOWF) UnmarshalNDR ¶ added in v1.0.2
type OEMChangePasswordUser2Request ¶
type OEMChangePasswordUser2Request struct { // ServerName: A counted string, encoded in the OEM character set, containing the NETBIOS // name of the server; this parameter MAY<65> be ignored by the server. ServerName *String `idl:"name:ServerName;pointer:unique" json:"server_name"` // UserName: A counted string, encoded in the OEM character set, containing the name // of the user whose password is to be changed; see message processing later in this // section for details on how this value is used as a database key to locate the account // that is the target of this password change operation. UserName *String `idl:"name:UserName" json:"user_name"` // NewPasswordEncryptedWithOldLm: A cleartext password encrypted according to the specification // of SAMPR_ENCRYPTED_USER_PASSWORD (section 2.2.6.21), where the key is the LM hash // of the existing password for the target user (as presented by the client). The cleartext // password MUST be encoded in an OEM code page character set (as opposed to UTF-16). NewPasswordEncryptedWithOldLM *EncryptedUserPassword `idl:"name:NewPasswordEncryptedWithOldLm;pointer:unique" json:"new_password_encrypted_with_old_lm"` // OldLmOwfPasswordEncryptedWithNewLm: The LM hash of the target user's existing password // (as presented by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD // (section 2.2.7.3), where the key is the LM hash of the cleartext password obtained // from decrypting NewPasswordEncryptedWithOldLm (see the preceding description for // decryption details). OldLMOWFPasswordEncryptedWithNewLM *EncryptedLMOWFPassword `idl:"name:OldLmOwfPasswordEncryptedWithNewLm;pointer:unique" json:"old_lm_owf_password_encrypted_with_new_lm"` }
OEMChangePasswordUser2Request structure represents the SamrOemChangePasswordUser2 operation request
func (*OEMChangePasswordUser2Request) MarshalNDR ¶
func (*OEMChangePasswordUser2Request) UnmarshalNDR ¶
type OEMChangePasswordUser2Response ¶
type OEMChangePasswordUser2Response struct { // Return: The SamrOemChangePasswordUser2 return value. Return int32 `idl:"name:Return" json:"return"` }
OEMChangePasswordUser2Response structure represents the SamrOemChangePasswordUser2 operation response
func (*OEMChangePasswordUser2Response) MarshalNDR ¶
func (*OEMChangePasswordUser2Response) UnmarshalNDR ¶
type OldLargeInteger ¶
type OldLargeInteger struct { // LowPart: The least-significant portion of a 64-bit value. LowPart uint32 `idl:"name:LowPart" json:"low_part"` // HighPart: The most-significant portion of a 64-bit value. HighPart int32 `idl:"name:HighPart" json:"high_part"` }
OldLargeInteger structure represents OLD_LARGE_INTEGER RPC structure.
The OLD_LARGE_INTEGER structure defines a 64-bit value that is accessible in two 4-byte chunks.
func (*OldLargeInteger) MarshalJSON ¶ added in v1.1.0
func (o *OldLargeInteger) MarshalJSON() ([]byte, error)
func (*OldLargeInteger) MarshalNDR ¶
func (*OldLargeInteger) Uint64 ¶ added in v1.1.0
func (o *OldLargeInteger) Uint64() uint64
func (*OldLargeInteger) UnmarshalNDR ¶
type OpenAliasRequest ¶
type OpenAliasRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DesiredAccess: An ACCESS_MASK that indicates the requested access for the returned // handle. See section 2.2.1.6 for a list of alias access values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` // AliasId: A RID of an alias. AliasID uint32 `idl:"name:AliasId" json:"alias_id"` }
OpenAliasRequest structure represents the SamrOpenAlias operation request
func (*OpenAliasRequest) MarshalNDR ¶
func (*OpenAliasRequest) UnmarshalNDR ¶
type OpenAliasResponse ¶
type OpenAliasResponse struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // Return: The SamrOpenAlias return value. Return int32 `idl:"name:Return" json:"return"` }
OpenAliasResponse structure represents the SamrOpenAlias operation response
func (*OpenAliasResponse) MarshalNDR ¶
func (*OpenAliasResponse) UnmarshalNDR ¶
type OpenDomainRequest ¶
type OpenDomainRequest struct { // ServerHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a server object. Server *Handle `idl:"name:ServerHandle" json:"server"` // DesiredAccess: An ACCESS_MASK. See section 2.2.1.4 for a list of domain access values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` // DomainId: A SID value of a domain hosted by the server side of this protocol. DomainID *dtyp.SID `idl:"name:DomainId" json:"domain_id"` }
OpenDomainRequest structure represents the SamrOpenDomain operation request
func (*OpenDomainRequest) MarshalNDR ¶
func (*OpenDomainRequest) UnmarshalNDR ¶
type OpenDomainResponse ¶
type OpenDomainResponse struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // Return: The SamrOpenDomain return value. Return int32 `idl:"name:Return" json:"return"` }
OpenDomainResponse structure represents the SamrOpenDomain operation response
func (*OpenDomainResponse) MarshalNDR ¶
func (*OpenDomainResponse) UnmarshalNDR ¶
type OpenGroupRequest ¶
type OpenGroupRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DesiredAccess: An ACCESS_MASK that indicates the requested access for the returned // handle. See section 2.2.1.5 for a list of group access values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` // GroupId: A RID of a group. GroupID uint32 `idl:"name:GroupId" json:"group_id"` }
OpenGroupRequest structure represents the SamrOpenGroup operation request
func (*OpenGroupRequest) MarshalNDR ¶
func (*OpenGroupRequest) UnmarshalNDR ¶
type OpenGroupResponse ¶
type OpenGroupResponse struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // Return: The SamrOpenGroup return value. Return int32 `idl:"name:Return" json:"return"` }
OpenGroupResponse structure represents the SamrOpenGroup operation response
func (*OpenGroupResponse) MarshalNDR ¶
func (*OpenGroupResponse) UnmarshalNDR ¶
type OpenUserRequest ¶
type OpenUserRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DesiredAccess: An ACCESS_MASK that indicates the requested access for the returned // handle. See section 2.2.1.7 for a list of user access values. DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` // UserId: A RID of a user account. UserID uint32 `idl:"name:UserId" json:"user_id"` }
OpenUserRequest structure represents the SamrOpenUser operation request
func (*OpenUserRequest) MarshalNDR ¶
func (*OpenUserRequest) UnmarshalNDR ¶
type OpenUserResponse ¶
type OpenUserResponse struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // Return: The SamrOpenUser return value. Return int32 `idl:"name:Return" json:"return"` }
OpenUserResponse structure represents the SamrOpenUser operation response
func (*OpenUserResponse) MarshalNDR ¶
func (*OpenUserResponse) UnmarshalNDR ¶
type PackagesCredentials ¶ added in v1.0.2
type PackagesCredentials struct {
Packages []string `idl:"name:Packages" json:"packages"`
}
PackagesCredentials structure represents PACKAGES_CREDENTIALS RPC structure.
func (*PackagesCredentials) MarshalNDR ¶ added in v1.0.2
func (*PackagesCredentials) UnmarshalNDR ¶ added in v1.0.2
type PasswordPolicyValidationType ¶
type PasswordPolicyValidationType uint16
PasswordPolicyValidationType type represents PASSWORD_POLICY_VALIDATION_TYPE RPC enumeration.
The PASSWORD_POLICY_VALIDATION_TYPE enumeration indicates the type of policy validation that is being requested.
var ( // SamValidateAuthentication: Indicates a request to execute the password policy validation // performed at logon. PasswordPolicyValidationTypeSAMValidateAuthentication PasswordPolicyValidationType = 1 // SamValidatePasswordChange: Indicates a request to execute the password policy validation // performed during a password change request. PasswordPolicyValidationTypeSAMValidatePasswordChange PasswordPolicyValidationType = 2 // SamValidatePasswordReset: Indicates a request to execute the password policy validation // performed during a password reset. PasswordPolicyValidationTypeSAMValidatePasswordReset PasswordPolicyValidationType = 3 )
func (PasswordPolicyValidationType) String ¶
func (o PasswordPolicyValidationType) String() string
type QueryDisplayInformation2Request ¶
type QueryDisplayInformation2Request struct { Domain *Handle `idl:"name:DomainHandle" json:"domain"` DisplayInformationClass DomainDisplayInformation `idl:"name:DisplayInformationClass" json:"display_information_class"` Index uint32 `idl:"name:Index" json:"index"` EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"` PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"` }
QueryDisplayInformation2Request structure represents the SamrQueryDisplayInformation2 operation request
func (*QueryDisplayInformation2Request) MarshalNDR ¶
func (*QueryDisplayInformation2Request) UnmarshalNDR ¶
type QueryDisplayInformation2Response ¶
type QueryDisplayInformation2Response struct { TotalAvailable uint32 `idl:"name:TotalAvailable" json:"total_available"` TotalReturned uint32 `idl:"name:TotalReturned" json:"total_returned"` Buffer *DisplayInfoBuffer `idl:"name:Buffer;switch_is:DisplayInformationClass" json:"buffer"` // Return: The SamrQueryDisplayInformation2 return value. Return int32 `idl:"name:Return" json:"return"` }
QueryDisplayInformation2Response structure represents the SamrQueryDisplayInformation2 operation response
func (*QueryDisplayInformation2Response) MarshalNDR ¶
func (*QueryDisplayInformation2Response) UnmarshalNDR ¶
type QueryDisplayInformation3Request ¶
type QueryDisplayInformation3Request struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DisplayInformationClass: An enumeration (see section 2.2.8.12) that indicates the // type of accounts, as well as the type of attributes on the accounts, to return via // the Buffer parameter. DisplayInformationClass DomainDisplayInformation `idl:"name:DisplayInformationClass" json:"display_information_class"` // Index: A cursor into an account-name–sorted list of accounts. Index uint32 `idl:"name:Index" json:"index"` // EntryCount: The number of accounts that the client is requesting on output. EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"` // PreferredMaximumLength: The requested maximum number of bytes to return in Buffer; // this value overrides EntryCount if this value is reached before EntryCount is reached. PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"` }
QueryDisplayInformation3Request structure represents the SamrQueryDisplayInformation3 operation request
func (*QueryDisplayInformation3Request) MarshalNDR ¶
func (*QueryDisplayInformation3Request) UnmarshalNDR ¶
type QueryDisplayInformation3Response ¶
type QueryDisplayInformation3Response struct { // TotalAvailable: The number of bytes required to see a complete listing of accounts // specified by the DisplayInformationClass parameter. TotalAvailable uint32 `idl:"name:TotalAvailable" json:"total_available"` // TotalReturned: The number of bytes returned.<53> TotalReturned uint32 `idl:"name:TotalReturned" json:"total_returned"` // Buffer: The accounts that are returned. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *DisplayInfoBuffer `idl:"name:Buffer;switch_is:DisplayInformationClass" json:"buffer"` // Return: The SamrQueryDisplayInformation3 return value. Return int32 `idl:"name:Return" json:"return"` }
QueryDisplayInformation3Response structure represents the SamrQueryDisplayInformation3 operation response
func (*QueryDisplayInformation3Response) MarshalNDR ¶
func (*QueryDisplayInformation3Response) UnmarshalNDR ¶
type QueryDisplayInformationRequest ¶
type QueryDisplayInformationRequest struct { Domain *Handle `idl:"name:DomainHandle" json:"domain"` DisplayInformationClass DomainDisplayInformation `idl:"name:DisplayInformationClass" json:"display_information_class"` Index uint32 `idl:"name:Index" json:"index"` EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"` PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"` }
QueryDisplayInformationRequest structure represents the SamrQueryDisplayInformation operation request
func (*QueryDisplayInformationRequest) MarshalNDR ¶
func (*QueryDisplayInformationRequest) UnmarshalNDR ¶
type QueryDisplayInformationResponse ¶
type QueryDisplayInformationResponse struct { TotalAvailable uint32 `idl:"name:TotalAvailable" json:"total_available"` TotalReturned uint32 `idl:"name:TotalReturned" json:"total_returned"` Buffer *DisplayInfoBuffer `idl:"name:Buffer;switch_is:DisplayInformationClass" json:"buffer"` // Return: The SamrQueryDisplayInformation return value. Return int32 `idl:"name:Return" json:"return"` }
QueryDisplayInformationResponse structure represents the SamrQueryDisplayInformation operation response
func (*QueryDisplayInformationResponse) MarshalNDR ¶
func (*QueryDisplayInformationResponse) UnmarshalNDR ¶
type QueryInformationAliasRequest ¶
type QueryInformationAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // AliasInformationClass: An enumeration indicating which attributes to return. See // section 2.2.5.5 for a listing of possible values. AliasInformationClass AliasInformationClass `idl:"name:AliasInformationClass" json:"alias_information_class"` }
QueryInformationAliasRequest structure represents the SamrQueryInformationAlias operation request
func (*QueryInformationAliasRequest) MarshalNDR ¶
func (*QueryInformationAliasRequest) UnmarshalNDR ¶
type QueryInformationAliasResponse ¶
type QueryInformationAliasResponse struct { // Buffer: The requested attributes on output. See section 2.2.5.6 for structure details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *AliasInfoBuffer `idl:"name:Buffer;switch_is:AliasInformationClass" json:"buffer"` // Return: The SamrQueryInformationAlias return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationAliasResponse structure represents the SamrQueryInformationAlias operation response
func (*QueryInformationAliasResponse) MarshalNDR ¶
func (*QueryInformationAliasResponse) UnmarshalNDR ¶
type QueryInformationDomain2Request ¶
type QueryInformationDomain2Request struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DomainInformationClass: An enumeration indicating which attributes to return. See // section 2.2.3.16 for a listing of possible values. DomainInformationClass DomainInformationClass `idl:"name:DomainInformationClass" json:"domain_information_class"` }
QueryInformationDomain2Request structure represents the SamrQueryInformationDomain2 operation request
func (*QueryInformationDomain2Request) MarshalNDR ¶
func (*QueryInformationDomain2Request) UnmarshalNDR ¶
type QueryInformationDomain2Response ¶
type QueryInformationDomain2Response struct { // Buffer: The requested attributes on output. See section 2.2.3.17 for structure details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *DomainInfoBuffer `idl:"name:Buffer;switch_is:DomainInformationClass" json:"buffer"` // Return: The SamrQueryInformationDomain2 return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationDomain2Response structure represents the SamrQueryInformationDomain2 operation response
func (*QueryInformationDomain2Response) MarshalNDR ¶
func (*QueryInformationDomain2Response) UnmarshalNDR ¶
type QueryInformationDomainRequest ¶
type QueryInformationDomainRequest struct { Domain *Handle `idl:"name:DomainHandle" json:"domain"` DomainInformationClass DomainInformationClass `idl:"name:DomainInformationClass" json:"domain_information_class"` }
QueryInformationDomainRequest structure represents the SamrQueryInformationDomain operation request
func (*QueryInformationDomainRequest) MarshalNDR ¶
func (*QueryInformationDomainRequest) UnmarshalNDR ¶
type QueryInformationDomainResponse ¶
type QueryInformationDomainResponse struct { Buffer *DomainInfoBuffer `idl:"name:Buffer;switch_is:DomainInformationClass" json:"buffer"` // Return: The SamrQueryInformationDomain return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationDomainResponse structure represents the SamrQueryInformationDomain operation response
func (*QueryInformationDomainResponse) MarshalNDR ¶
func (*QueryInformationDomainResponse) UnmarshalNDR ¶
type QueryInformationGroupRequest ¶
type QueryInformationGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // GroupInformationClass: An enumeration indicating which attributes to return. See // section 2.2.4.6 for a listing of possible values. GroupInformationClass GroupInformationClass `idl:"name:GroupInformationClass" json:"group_information_class"` }
QueryInformationGroupRequest structure represents the SamrQueryInformationGroup operation request
func (*QueryInformationGroupRequest) MarshalNDR ¶
func (*QueryInformationGroupRequest) UnmarshalNDR ¶
type QueryInformationGroupResponse ¶
type QueryInformationGroupResponse struct { // Buffer: The requested attributes on output. See section 2.2.4.7 for structure details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *GroupInfoBuffer `idl:"name:Buffer;switch_is:GroupInformationClass" json:"buffer"` // Return: The SamrQueryInformationGroup return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationGroupResponse structure represents the SamrQueryInformationGroup operation response
func (*QueryInformationGroupResponse) MarshalNDR ¶
func (*QueryInformationGroupResponse) UnmarshalNDR ¶
type QueryInformationUser2Request ¶
type QueryInformationUser2Request struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // UserInformationClass: An enumeration indicating which attributes to return. See section // 2.2.6.28 for a list of possible values. UserInformationClass UserInformationClass `idl:"name:UserInformationClass" json:"user_information_class"` }
QueryInformationUser2Request structure represents the SamrQueryInformationUser2 operation request
func (*QueryInformationUser2Request) MarshalNDR ¶
func (*QueryInformationUser2Request) UnmarshalNDR ¶
type QueryInformationUser2Response ¶
type QueryInformationUser2Response struct { // Buffer: The requested attributes on output. See section 2.2.6.29 for structure details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *UserInfoBuffer `idl:"name:Buffer;switch_is:UserInformationClass" json:"buffer"` // Return: The SamrQueryInformationUser2 return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationUser2Response structure represents the SamrQueryInformationUser2 operation response
func (*QueryInformationUser2Response) MarshalNDR ¶
func (*QueryInformationUser2Response) UnmarshalNDR ¶
type QueryInformationUserRequest ¶
type QueryInformationUserRequest struct { UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` UserInformationClass UserInformationClass `idl:"name:UserInformationClass" json:"user_information_class"` }
QueryInformationUserRequest structure represents the SamrQueryInformationUser operation request
func (*QueryInformationUserRequest) MarshalNDR ¶
func (*QueryInformationUserRequest) UnmarshalNDR ¶
type QueryInformationUserResponse ¶
type QueryInformationUserResponse struct { Buffer *UserInfoBuffer `idl:"name:Buffer;switch_is:UserInformationClass" json:"buffer"` // Return: The SamrQueryInformationUser return value. Return int32 `idl:"name:Return" json:"return"` }
QueryInformationUserResponse structure represents the SamrQueryInformationUser operation response
func (*QueryInformationUserResponse) MarshalNDR ¶
func (*QueryInformationUserResponse) UnmarshalNDR ¶
type QuerySecurityObjectRequest ¶
type QuerySecurityObjectRequest struct { // ObjectHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a server, domain, user, group, or alias object. Object *Handle `idl:"name:ObjectHandle" json:"object"` // SecurityInformation: A bit field that specifies which fields of SecurityDescriptor // the client is requesting to be returned. // // The SECURITY_INFORMATION type is defined in [MS-DTYP] section 2.4.7. The following // bits are valid; all other bits MUST be zero when sent and ignored on receipt. // // +---------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------+----------------------------------------------------------------------------------+ // | OWNER_SECURITY_INFORMATION 0x00000001 | If this bit is set, the client requests that the Owner member be returned. If | // | | this bit is not set, the client requests that the Owner member not be returned. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | GROUP_SECURITY_INFORMATION 0x00000002 | If this bit is set, the client requests that the Group member be returned. If | // | | this bit is not set, the client requests that the Group member not be returned. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DACL_SECURITY_INFORMATION 0x00000004 | If this bit is set, the client requests that the DACL be returned. If this bit | // | | is not set, the client requests that the DACL not be returned. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | SACL_SECURITY_INFORMATION 0x00000008 | If this bit is set, the client requests that the SACL be returned. If this bit | // | | is not set, the client requests that the SACL not be returned. | // +---------------------------------------+----------------------------------------------------------------------------------+ SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"` }
QuerySecurityObjectRequest structure represents the SamrQuerySecurityObject operation request
func (*QuerySecurityObjectRequest) MarshalNDR ¶
func (*QuerySecurityObjectRequest) UnmarshalNDR ¶
type QuerySecurityObjectResponse ¶
type QuerySecurityObjectResponse struct { // SecurityDescriptor: A security descriptor expressing accesses that are specific to // the ObjectHandle and the owner and group of the object. [MS-DTYP] section 2.4.6 contains // the specification for a valid security descriptor. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SecurityDescriptor *SrSecurityDescriptor `idl:"name:SecurityDescriptor" json:"security_descriptor"` // Return: The SamrQuerySecurityObject return value. Return int32 `idl:"name:Return" json:"return"` }
QuerySecurityObjectResponse structure represents the SamrQuerySecurityObject operation response
func (*QuerySecurityObjectResponse) MarshalNDR ¶
func (*QuerySecurityObjectResponse) UnmarshalNDR ¶
type RIDEnumeration ¶
type RIDEnumeration struct { // RelativeId: A RID. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // Name: The UTF-16 encoded name of the account that is associated with RelativeId. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` }
RIDEnumeration structure represents SAMPR_RID_ENUMERATION RPC structure.
The SAMPR_RID_ENUMERATION structure holds the name and RID information about an account.
func (*RIDEnumeration) MarshalNDR ¶
func (*RIDEnumeration) UnmarshalNDR ¶
type RIDToSIDRequest ¶
type RIDToSIDRequest struct { // ObjectHandle: An RPC context handle, as specified in section 2.2.7.2. The message // processing shown later in this section contains details on which types of ObjectHandle // are accepted by the server. Object *Handle `idl:"name:ObjectHandle" json:"object"` // Rid: A RID of an account. RID uint32 `idl:"name:Rid" json:"rid"` }
RIDToSIDRequest structure represents the SamrRidToSid operation request
func (*RIDToSIDRequest) MarshalNDR ¶
func (*RIDToSIDRequest) UnmarshalNDR ¶
type RIDToSIDResponse ¶
type RIDToSIDResponse struct { // Sid: The SID of the account referenced by Rid. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SID *dtyp.SID `idl:"name:Sid" json:"sid"` // Return: The SamrRidToSid return value. Return int32 `idl:"name:Return" json:"return"` }
RIDToSIDResponse structure represents the SamrRidToSid operation response
func (*RIDToSIDResponse) MarshalNDR ¶
func (*RIDToSIDResponse) UnmarshalNDR ¶
type RawCredentials ¶ added in v1.0.2
type RawCredentials struct {
RawCredentials []byte `idl:"name:RawCredentials" json:"raw_credentials"`
}
RawCredentials structure represents RAW_CREDENTIALS RPC structure.
func (*RawCredentials) MarshalNDR ¶ added in v1.0.2
func (*RawCredentials) UnmarshalNDR ¶ added in v1.0.2
type RemoveMemberFromAliasRequest ¶
type RemoveMemberFromAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // MemberId: The SID of an account to remove from the alias. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MemberID *dtyp.SID `idl:"name:MemberId" json:"member_id"` }
RemoveMemberFromAliasRequest structure represents the SamrRemoveMemberFromAlias operation request
func (*RemoveMemberFromAliasRequest) MarshalNDR ¶
func (*RemoveMemberFromAliasRequest) UnmarshalNDR ¶
type RemoveMemberFromAliasResponse ¶
type RemoveMemberFromAliasResponse struct { // Return: The SamrRemoveMemberFromAlias return value. Return int32 `idl:"name:Return" json:"return"` }
RemoveMemberFromAliasResponse structure represents the SamrRemoveMemberFromAlias operation response
func (*RemoveMemberFromAliasResponse) MarshalNDR ¶
func (*RemoveMemberFromAliasResponse) UnmarshalNDR ¶
type RemoveMemberFromForeignDomainRequest ¶
type RemoveMemberFromForeignDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // MemberSid: The SID to remove from the membership. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MemberSID *dtyp.SID `idl:"name:MemberSid" json:"member_sid"` }
RemoveMemberFromForeignDomainRequest structure represents the SamrRemoveMemberFromForeignDomain operation request
func (*RemoveMemberFromForeignDomainRequest) MarshalNDR ¶
func (*RemoveMemberFromForeignDomainRequest) UnmarshalNDR ¶
type RemoveMemberFromForeignDomainResponse ¶
type RemoveMemberFromForeignDomainResponse struct { // Return: The SamrRemoveMemberFromForeignDomain return value. Return int32 `idl:"name:Return" json:"return"` }
RemoveMemberFromForeignDomainResponse structure represents the SamrRemoveMemberFromForeignDomain operation response
func (*RemoveMemberFromForeignDomainResponse) MarshalNDR ¶
func (*RemoveMemberFromForeignDomainResponse) UnmarshalNDR ¶
type RemoveMemberFromGroupRequest ¶
type RemoveMemberFromGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // MemberId: A RID representing an account to remove from the group's membership list. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MemberID uint32 `idl:"name:MemberId" json:"member_id"` }
RemoveMemberFromGroupRequest structure represents the SamrRemoveMemberFromGroup operation request
func (*RemoveMemberFromGroupRequest) MarshalNDR ¶
func (*RemoveMemberFromGroupRequest) UnmarshalNDR ¶
type RemoveMemberFromGroupResponse ¶
type RemoveMemberFromGroupResponse struct { // Return: The SamrRemoveMemberFromGroup return value. Return int32 `idl:"name:Return" json:"return"` }
RemoveMemberFromGroupResponse structure represents the SamrRemoveMemberFromGroup operation response
func (*RemoveMemberFromGroupResponse) MarshalNDR ¶
func (*RemoveMemberFromGroupResponse) UnmarshalNDR ¶
type RemoveMultipleMembersFromAliasRequest ¶
type RemoveMultipleMembersFromAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // MembersBuffer: A structure containing a list of SIDs to remove from the alias's membership // list. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. MembersBuffer *SIDArray `idl:"name:MembersBuffer" json:"members_buffer"` }
RemoveMultipleMembersFromAliasRequest structure represents the SamrRemoveMultipleMembersFromAlias operation request
func (*RemoveMultipleMembersFromAliasRequest) MarshalNDR ¶
func (*RemoveMultipleMembersFromAliasRequest) UnmarshalNDR ¶
type RemoveMultipleMembersFromAliasResponse ¶
type RemoveMultipleMembersFromAliasResponse struct { // Return: The SamrRemoveMultipleMembersFromAlias return value. Return int32 `idl:"name:Return" json:"return"` }
RemoveMultipleMembersFromAliasResponse structure represents the SamrRemoveMultipleMembersFromAlias operation response
func (*RemoveMultipleMembersFromAliasResponse) MarshalNDR ¶
func (*RemoveMultipleMembersFromAliasResponse) UnmarshalNDR ¶
type ReturnedUstringArray ¶
type ReturnedUstringArray struct { // Count: The number of elements in Element. If zero, Element MUST be ignored. If nonzero, // Element MUST point to at least Count * sizeof(RPC_UNICODE_STRING) bytes of memory. Count uint32 `idl:"name:Count" json:"count"` // Element: Array of counted strings (see RPC_UNICODE_STRING in [MS-DTYP] section 2.3.10). // The semantic meaning is method-dependent. Element []*dtyp.UnicodeString `idl:"name:Element;size_is:(Count)" json:"element"` }
ReturnedUstringArray structure represents SAMPR_RETURNED_USTRING_ARRAY RPC structure.
The SAMPR_RETURNED_USTRING_ARRAY structure holds an array of counted UTF-16 encoded strings.
func (*ReturnedUstringArray) MarshalNDR ¶
func (*ReturnedUstringArray) UnmarshalNDR ¶
type RevisionInfo ¶
type RevisionInfo struct { // Types that are assignable to Value // // *RevisionInfo_V1 Value is_RevisionInfo `json:"value"` }
RevisionInfo structure represents SAMPR_REVISION_INFO RPC union.
The SAMPR_REVISION_INFO union holds revision information structures that are used in the SamrConnect5 method.
func (*RevisionInfo) GetValue ¶
func (o *RevisionInfo) GetValue() any
func (*RevisionInfo) MarshalUnionNDR ¶
func (*RevisionInfo) NDRSwitchValue ¶
func (o *RevisionInfo) NDRSwitchValue(sw uint32) uint32
func (*RevisionInfo) UnmarshalUnionNDR ¶
type RevisionInfoV1 ¶
type RevisionInfoV1 struct { // Revision: The revision of the client or server side of this protocol (depending // on which side sends the structure). The value MUST be set to 3 and MUST be ignored. Revision uint32 `idl:"name:Revision" json:"revision"` // SupportedFeatures: A bit field. When sent from the client, this field MUST be zero // and ignored on receipt by the server. When returned from the server, the following // fields are handled by the client; all other bits are ignored by the client and MUST // be zero when returned from the server. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | On receipt by the client, this value, when set, indicates that RID values | // | | returned from the server MUST NOT be concatenated with the domain SID to create | // | | the SID for the account referenced by the RID. Instead, the client MUST call | // | | SamrRidToSid to obtain the SID. This field can be combined with other bits using | // | | a logical OR. See the product behavior citation at the end of this section for | // | | more information (about Windows implementations). | // +------------+----------------------------------------------------------------------------------+ // | 0x00000002 | Reserved. See the product behavior citation at the end of this section for | // | | additional details. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000004 | Reserved. See the product behavior citation at the end of this section for | // | | additional details. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000010 | On receipt by the client, this value, when set, indicates that the client should | // | | use AES Encryption with the SAMPR_ENCRYPTED_PASSWORD_AES structure to encrypt | // | | password buffers when sent over the wire. See AES Cipher Usage (section 3.2.2.4) | // | | and SAMPR_ENCRYPTED_PASSWORD_AES (section 2.2.6.32). | // +------------+----------------------------------------------------------------------------------+ // | 0x00000020 | On receipt of this value by the client, when set, indicates that the server | // | | supports the validation of computer account re-use through client calls to the | // | | SamrValidateComputerAccountReuseAttempt method.<19> | // +------------+----------------------------------------------------------------------------------+ // | 0x00000040 | On receipt of this value by the client, when set, indicates that the server | // | | supports the validation of computer account re-use through client calls to the | // | | SamrValidateComputerAccountReuseAttempt method.<20> | // +------------+----------------------------------------------------------------------------------+ SupportedFeatures uint32 `idl:"name:SupportedFeatures" json:"supported_features"` }
RevisionInfoV1 structure represents SAMPR_REVISION_INFO_V1 RPC structure.
The SAMPR_REVISION_INFO_V1 structure is used to communicate the revision and capabilities of client and server. For more information, see SamrConnect5.
func (*RevisionInfoV1) MarshalNDR ¶
func (*RevisionInfoV1) UnmarshalNDR ¶
type RevisionInfo_V1 ¶
type RevisionInfo_V1 struct { // V1: Version 1 revision information, as described in SAMPR_REVISION_INFO_V1 (section // 2.2.7.15). V1 *RevisionInfoV1 `idl:"name:V1" json:"v1"` }
RevisionInfo_V1 structure represents SAMPR_REVISION_INFO RPC union arm.
It has following labels: 1
func (*RevisionInfo_V1) MarshalNDR ¶
func (*RevisionInfo_V1) UnmarshalNDR ¶
type SAMValidateAuthenticationInputArg ¶
type SAMValidateAuthenticationInputArg struct { // InputPersistedFields: Password state. InputPersistedFields *SAMValidatePersistedFields `idl:"name:InputPersistedFields" json:"input_persisted_fields"` // PasswordMatched: A nonzero value indicates that a valid password was presented to // the change-password request. PasswordMatched uint8 `idl:"name:PasswordMatched" json:"password_matched"` }
SAMValidateAuthenticationInputArg structure represents SAM_VALIDATE_AUTHENTICATION_INPUT_ARG RPC structure.
The SAM_VALIDATE_AUTHENTICATION_INPUT_ARG structure holds information about an authentication request.
func (*SAMValidateAuthenticationInputArg) MarshalNDR ¶
func (*SAMValidateAuthenticationInputArg) UnmarshalNDR ¶
type SAMValidateInputArg ¶
type SAMValidateInputArg struct { // Types that are assignable to Value // // *SAMValidateInputArg_ValidateAuthenticationInput // *SAMValidateInputArg_ValidatePasswordChangeInput // *SAMValidateInputArg_ValidatePasswordResetInput Value is_SAMValidateInputArg `json:"value"` }
SAMValidateInputArg structure represents SAM_VALIDATE_INPUT_ARG RPC union.
func (*SAMValidateInputArg) GetValue ¶
func (o *SAMValidateInputArg) GetValue() any
func (*SAMValidateInputArg) MarshalUnionNDR ¶
func (*SAMValidateInputArg) NDRSwitchValue ¶
func (o *SAMValidateInputArg) NDRSwitchValue(sw uint16) uint16
func (*SAMValidateInputArg) UnmarshalUnionNDR ¶
type SAMValidateInputArg_ValidateAuthenticationInput ¶
type SAMValidateInputArg_ValidateAuthenticationInput struct {
ValidateAuthenticationInput *SAMValidateAuthenticationInputArg `idl:"name:ValidateAuthenticationInput" json:"validate_authentication_input"`
}
SAMValidateInputArg_ValidateAuthenticationInput structure represents SAM_VALIDATE_INPUT_ARG RPC union arm.
It has following labels: 1
func (*SAMValidateInputArg_ValidateAuthenticationInput) MarshalNDR ¶
func (*SAMValidateInputArg_ValidateAuthenticationInput) UnmarshalNDR ¶
type SAMValidateInputArg_ValidatePasswordChangeInput ¶
type SAMValidateInputArg_ValidatePasswordChangeInput struct {
ValidatePasswordChangeInput *SAMValidatePasswordChangeInputArg `idl:"name:ValidatePasswordChangeInput" json:"validate_password_change_input"`
}
SAMValidateInputArg_ValidatePasswordChangeInput structure represents SAM_VALIDATE_INPUT_ARG RPC union arm.
It has following labels: 2
func (*SAMValidateInputArg_ValidatePasswordChangeInput) MarshalNDR ¶
func (*SAMValidateInputArg_ValidatePasswordChangeInput) UnmarshalNDR ¶
type SAMValidateInputArg_ValidatePasswordResetInput ¶
type SAMValidateInputArg_ValidatePasswordResetInput struct {
ValidatePasswordResetInput *SAMValidatePasswordResetInputArg `idl:"name:ValidatePasswordResetInput" json:"validate_password_reset_input"`
}
SAMValidateInputArg_ValidatePasswordResetInput structure represents SAM_VALIDATE_INPUT_ARG RPC union arm.
It has following labels: 3
func (*SAMValidateInputArg_ValidatePasswordResetInput) MarshalNDR ¶
func (*SAMValidateInputArg_ValidatePasswordResetInput) UnmarshalNDR ¶
type SAMValidateOutputArg ¶
type SAMValidateOutputArg struct { // Types that are assignable to Value // // *SAMValidateOutputArg_ValidateAuthenticationOutput // *SAMValidateOutputArg_ValidatePasswordChangeOutput // *SAMValidateOutputArg_ValidatePasswordResetOutput Value is_SAMValidateOutputArg `json:"value"` }
SAMValidateOutputArg structure represents SAM_VALIDATE_OUTPUT_ARG RPC union.
func (*SAMValidateOutputArg) GetValue ¶
func (o *SAMValidateOutputArg) GetValue() any
func (*SAMValidateOutputArg) MarshalUnionNDR ¶
func (*SAMValidateOutputArg) NDRSwitchValue ¶
func (o *SAMValidateOutputArg) NDRSwitchValue(sw uint16) uint16
func (*SAMValidateOutputArg) UnmarshalUnionNDR ¶
type SAMValidateOutputArg_ValidateAuthenticationOutput ¶
type SAMValidateOutputArg_ValidateAuthenticationOutput struct {
ValidateAuthenticationOutput *SAMValidateStandardOutputArg `idl:"name:ValidateAuthenticationOutput" json:"validate_authentication_output"`
}
SAMValidateOutputArg_ValidateAuthenticationOutput structure represents SAM_VALIDATE_OUTPUT_ARG RPC union arm.
It has following labels: 1
func (*SAMValidateOutputArg_ValidateAuthenticationOutput) MarshalNDR ¶
func (*SAMValidateOutputArg_ValidateAuthenticationOutput) UnmarshalNDR ¶
type SAMValidateOutputArg_ValidatePasswordChangeOutput ¶
type SAMValidateOutputArg_ValidatePasswordChangeOutput struct {
ValidatePasswordChangeOutput *SAMValidateStandardOutputArg `idl:"name:ValidatePasswordChangeOutput" json:"validate_password_change_output"`
}
SAMValidateOutputArg_ValidatePasswordChangeOutput structure represents SAM_VALIDATE_OUTPUT_ARG RPC union arm.
It has following labels: 2
func (*SAMValidateOutputArg_ValidatePasswordChangeOutput) MarshalNDR ¶
func (*SAMValidateOutputArg_ValidatePasswordChangeOutput) UnmarshalNDR ¶
type SAMValidateOutputArg_ValidatePasswordResetOutput ¶
type SAMValidateOutputArg_ValidatePasswordResetOutput struct {
ValidatePasswordResetOutput *SAMValidateStandardOutputArg `idl:"name:ValidatePasswordResetOutput" json:"validate_password_reset_output"`
}
SAMValidateOutputArg_ValidatePasswordResetOutput structure represents SAM_VALIDATE_OUTPUT_ARG RPC union arm.
It has following labels: 3
func (*SAMValidateOutputArg_ValidatePasswordResetOutput) MarshalNDR ¶
func (*SAMValidateOutputArg_ValidatePasswordResetOutput) UnmarshalNDR ¶
type SAMValidatePasswordChangeInputArg ¶
type SAMValidatePasswordChangeInputArg struct { // InputPersistedFields: Password state. See section 2.2.9.2. InputPersistedFields *SAMValidatePersistedFields `idl:"name:InputPersistedFields" json:"input_persisted_fields"` // ClearPassword: The cleartext password of the change-password operation. ClearPassword *dtyp.UnicodeString `idl:"name:ClearPassword" json:"clear_password"` // UserAccountName: The application-specific logon name of an account performing the // change-password operation. UserAccountName *dtyp.UnicodeString `idl:"name:UserAccountName" json:"user_account_name"` // HashedPassword: A binary value containing a hashed form of the value contained in // the ClearPassword field. The structure of this binary value is specified in section // 2.2.9.1. The hash function used to generate this value is chosen by the client. An // example hash function might be MD5 (as specified in [RFC1321]). The server implementation // is independent of that choice; that is, through this protocol, the server is exposed // to a sequence of bytes formatted per section 2.2.9.1 and is, therefore, not exposed // to the hash function chosen by the client. Furthermore, there is no processing by // the server that requires knowledge of the specific hash function chosen. Section // 2.2.9 contains more information about a scenario in which this field is used. HashedPassword *SAMValidatePasswordHash `idl:"name:HashedPassword" json:"hashed_password"` // PasswordMatch: A nonzero value indicates that a valid password was presented to // the change-password request. PasswordMatch uint8 `idl:"name:PasswordMatch" json:"password_match"` }
SAMValidatePasswordChangeInputArg structure represents SAM_VALIDATE_PASSWORD_CHANGE_INPUT_ARG RPC structure.
The SAM_VALIDATE_PASSWORD_CHANGE_INPUT_ARG structure holds information about a password change request.
func (*SAMValidatePasswordChangeInputArg) MarshalNDR ¶
func (*SAMValidatePasswordChangeInputArg) UnmarshalNDR ¶
type SAMValidatePasswordHash ¶
type SAMValidatePasswordHash struct { // Length: The size, in bytes, of Hash. If zero, Hash MUST be ignored. Length uint32 `idl:"name:Length" json:"length"` // Hash: A binary value. Hash []byte `idl:"name:Hash;size_is:(Length);pointer:unique" json:"hash"` }
SAMValidatePasswordHash structure represents SAM_VALIDATE_PASSWORD_HASH RPC structure.
The SAM_VALIDATE_PASSWORD_HASH structure holds a binary value that represents a cryptographic hash.
func (*SAMValidatePasswordHash) MarshalNDR ¶
func (*SAMValidatePasswordHash) UnmarshalNDR ¶
type SAMValidatePasswordResetInputArg ¶
type SAMValidatePasswordResetInputArg struct { // InputPersistedFields: Password state. See section 2.2.9.2. InputPersistedFields *SAMValidatePersistedFields `idl:"name:InputPersistedFields" json:"input_persisted_fields"` // ClearPassword: The cleartext password of the reset-password operation. ClearPassword *dtyp.UnicodeString `idl:"name:ClearPassword" json:"clear_password"` // UserAccountName: The application-specific logon name of the account performing the // reset-password operation. UserAccountName *dtyp.UnicodeString `idl:"name:UserAccountName" json:"user_account_name"` // HashedPassword: See the specification for SAM_VALIDATE_PASSWORD_CHANGE_INPUT_ARG // (section 2.2.9.6) for the field with the same name. HashedPassword *SAMValidatePasswordHash `idl:"name:HashedPassword" json:"hashed_password"` // PasswordMustChangeAtNextLogon: Nonzero indicates that a password change MUST occur // before an authentication request can succeed. PasswordMustChangeATNextLogon uint8 `idl:"name:PasswordMustChangeAtNextLogon" json:"password_must_change_at_next_logon"` // ClearLockout: Nonzero indicates that the lockout state is to be reset. ClearLockout uint8 `idl:"name:ClearLockout" json:"clear_lockout"` }
SAMValidatePasswordResetInputArg structure represents SAM_VALIDATE_PASSWORD_RESET_INPUT_ARG RPC structure.
The SAM_VALIDATE_PASSWORD_RESET_INPUT_ARG structure holds various information about a password reset request.
func (*SAMValidatePasswordResetInputArg) MarshalNDR ¶
func (*SAMValidatePasswordResetInputArg) UnmarshalNDR ¶
type SAMValidatePersistedFields ¶
type SAMValidatePersistedFields struct { // PresentFields: A bitmask to indicate which of the fields are valid. The following // table shows the defined values. If a bit is set, the corresponding field is valid; // if a bit is not set, the field is not valid. // // +-------------------------------------------------+-----------------------+ // | | | // | VALUE | MEANING | // | | | // +-------------------------------------------------+-----------------------+ // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_PASSWORD_LAST_SET 0x00000001 | PasswordLastSet | // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_BAD_PASSWORD_TIME 0x00000002 | BadPasswordTime | // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_LOCKOUT_TIME 0x00000004 | LockoutTime | // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_BAD_PASSWORD_COUNT 0x00000008 | BadPasswordCount | // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_PASSWORD_HISTORY_LENGTH 0x00000010 | PasswordHistoryLength | // +-------------------------------------------------+-----------------------+ // | SAM_VALIDATE_PASSWORD_HISTORY 0x00000020 | PasswordHistory | // +-------------------------------------------------+-----------------------+ PresentFields uint32 `idl:"name:PresentFields" json:"present_fields"` // PasswordLastSet: This field represents the time at which the password was last reset // or changed. It uses FILETIME syntax. PasswordLastSet *dtyp.LargeInteger `idl:"name:PasswordLastSet" json:"password_last_set"` // BadPasswordTime: This field represents the time at which an invalid password was // presented to either a password change request or an authentication request. It uses // FILETIME syntax. BadPasswordTime *dtyp.LargeInteger `idl:"name:BadPasswordTime" json:"bad_password_time"` // LockoutTime: This field represents the time at which the owner of the password data // was locked out. It uses FILETIME syntax. LockoutTime *dtyp.LargeInteger `idl:"name:LockoutTime" json:"lockout_time"` // BadPasswordCount: Indicates how many invalid passwords have accumulated (see message // processing for details). BadPasswordCount uint32 `idl:"name:BadPasswordCount" json:"bad_password_count"` // PasswordHistoryLength: Indicates how many previous passwords are in the PasswordHistory // field. PasswordHistoryLength uint32 `idl:"name:PasswordHistoryLength" json:"password_history_length"` // PasswordHistory: An array of hash values representing the previous PasswordHistoryLength // passwords. PasswordHistory []*SAMValidatePasswordHash `idl:"name:PasswordHistory;size_is:(PasswordHistoryLength);pointer:unique" json:"password_history"` }
SAMValidatePersistedFields structure represents SAM_VALIDATE_PERSISTED_FIELDS RPC structure.
The SAM_VALIDATE_PERSISTED_FIELDS structure holds various characteristics about password state.
func (*SAMValidatePersistedFields) MarshalNDR ¶
func (*SAMValidatePersistedFields) UnmarshalNDR ¶
type SAMValidateStandardOutputArg ¶
type SAMValidateStandardOutputArg struct { // ChangedPersistedFields: The password state that has changed. See section 2.2.9.2. ChangedPersistedFields *SAMValidatePersistedFields `idl:"name:ChangedPersistedFields" json:"changed_persisted_fields"` // ValidationStatus: The result of the policy evaluation. See section 2.2.9.3. ValidationStatus SAMValidateValidationStatus `idl:"name:ValidationStatus" json:"validation_status"` }
SAMValidateStandardOutputArg structure represents SAM_VALIDATE_STANDARD_OUTPUT_ARG RPC structure.
The SAM_VALIDATE_STANDARD_OUTPUT_ARG structure holds the output of SamrValidatePassword.
func (*SAMValidateStandardOutputArg) MarshalNDR ¶
func (*SAMValidateStandardOutputArg) UnmarshalNDR ¶
type SAMValidateValidationStatus ¶
type SAMValidateValidationStatus uint16
SAMValidateValidationStatus type represents SAM_VALIDATE_VALIDATION_STATUS RPC enumeration.
The SAM_VALIDATE_VALIDATION_STATUS enumeration defines policy evaluation outcomes.
var ( // SamValidateSuccess: Password validation succeeded. SAMValidateValidationStatusSuccess SAMValidateValidationStatus = 0 // SamValidatePasswordMustChange: The password must be changed. SAMValidateValidationStatusPasswordMustChange SAMValidateValidationStatus = 1 // SamValidateAccountLockedOut: The account is locked out. SAMValidateValidationStatusAccountLockedOut SAMValidateValidationStatus = 2 // SamValidatePasswordExpired: The password has expired. SAMValidateValidationStatusPasswordExpired SAMValidateValidationStatus = 3 // SamValidatePasswordIncorrect: The password is incorrect. SAMValidateValidationStatusPasswordIncorrect SAMValidateValidationStatus = 4 // SamValidatePasswordIsInHistory: The password is in the password history. SAMValidateValidationStatusPasswordIsInHistory SAMValidateValidationStatus = 5 // SamValidatePasswordTooShort: The password is too short. SAMValidateValidationStatusPasswordTooShort SAMValidateValidationStatus = 6 // SamValidatePasswordTooLong: The password is too long. SAMValidateValidationStatusPasswordTooLong SAMValidateValidationStatus = 7 // SamValidatePasswordNotComplexEnough: The password is not complex enough. SAMValidateValidationStatusPasswordNotComplexEnough SAMValidateValidationStatus = 8 // SamValidatePasswordTooRecent: The password was changed recently. SAMValidateValidationStatusPasswordTooRecent SAMValidateValidationStatus = 9 // SamValidatePasswordFilterError: The password filter failed to validate the password. // // See the message processing of SamrValidatePassword (section 3.1.5.13.7) for the semantic // meanings of the enumeration values. SAMValidateValidationStatusPasswordFilterError SAMValidateValidationStatus = 10 )
func (SAMValidateValidationStatus) String ¶
func (o SAMValidateValidationStatus) String() string
type SIDArray ¶
type SIDArray struct { Count uint32 `idl:"name:Count" json:"count"` SIDs []*SIDInformation `idl:"name:Sids;size_is:(Count)" json:"sids"` }
SIDArray structure represents SAMPR_PSID_ARRAY RPC structure.
The SAMPR_SID_INFORMATION structure holds a SID pointer.
func (*SIDArray) MarshalNDR ¶
type SIDArrayOut ¶
type SIDArrayOut struct { // Count: The number of elements in Sids. If zero, Sids MUST be ignored. If nonzero, // Sids MUST point to at least Count * sizeof(SAMPR_SID_INFORMATION) bytes of memory. Count uint32 `idl:"name:Count" json:"count"` // Sids: An array of pointers to SID values. For more information, see section 2.2.7.5. SIDs []*SIDInformation `idl:"name:Sids;size_is:(Count)" json:"sids"` }
SIDArrayOut structure represents SAMPR_PSID_ARRAY_OUT RPC structure.
The SAMPR_PSID_ARRAY_OUT structure holds an array of SID values.
func (*SIDArrayOut) MarshalNDR ¶
func (*SIDArrayOut) UnmarshalNDR ¶
type SIDInformation ¶
SIDInformation structure represents SAMPR_SID_INFORMATION RPC structure.
The SAMPR_PSID_ARRAY structure holds an array of SID values.
func (*SIDInformation) MarshalNDR ¶
func (*SIDInformation) UnmarshalNDR ¶
type SIDNameUse ¶
type SIDNameUse uint16
SIDNameUse type represents SID_NAME_USE RPC enumeration.
The SID_NAME_USE enumeration specifies the type of account that a SID references.
var ( // SidTypeUser: Indicates a user object. SIDNameUseTypeUser SIDNameUse = 1 // SidTypeGroup: Indicates a group object. SIDNameUseTypeGroup SIDNameUse = 2 // SidTypeDomain: Indicates a domain object. SIDNameUseTypeDomain SIDNameUse = 3 // SidTypeAlias: Indicates an alias object. SIDNameUseTypeAlias SIDNameUse = 4 // SidTypeWellKnownGroup: Indicates an object whose SID is invariant. SIDNameUseTypeWellKnownGroup SIDNameUse = 5 // SidTypeDeletedAccount: Indicates an object that has been deleted. SIDNameUseTypeDeletedAccount SIDNameUse = 6 // SidTypeInvalid: This member is not used. SIDNameUseTypeInvalid SIDNameUse = 7 // SidTypeUnknown: Indicates that the type of object could not be determined. For example, // no object with that SID exists. SIDNameUseTypeUnknown SIDNameUse = 8 // SidTypeComputer: This member is not used. SIDNameUseTypeComputer SIDNameUse = 9 // SidTypeLabel: This member is not used. SIDNameUseTypeLabel SIDNameUse = 10 )
func (SIDNameUse) String ¶
func (o SIDNameUse) String() string
type SamrClient ¶
type SamrClient interface { // The SamrConnect method returns a handle to a server object. Connect(context.Context, *ConnectRequest, ...dcerpc.CallOption) (*ConnectResponse, error) // The SamrCloseHandle method closes (that is, releases server-side resources used by) // any context handle obtained from this RPC interface. CloseHandle(context.Context, *CloseHandleRequest, ...dcerpc.CallOption) (*CloseHandleResponse, error) // The SamrSetSecurityObject method sets the access control on a server, domain, user, // group, or alias object. SetSecurityObject(context.Context, *SetSecurityObjectRequest, ...dcerpc.CallOption) (*SetSecurityObjectResponse, error) // The SamrQuerySecurityObject method queries the access control on a server, domain, // user, group, or alias object. QuerySecurityObject(context.Context, *QuerySecurityObjectRequest, ...dcerpc.CallOption) (*QuerySecurityObjectResponse, error) // The SamrLookupDomainInSamServer method obtains the SID of a domain object, given // the object's name. LookupDomainInSAMServer(context.Context, *LookupDomainInSAMServerRequest, ...dcerpc.CallOption) (*LookupDomainInSAMServerResponse, error) // The SamrEnumerateDomainsInSamServer method obtains a listing of all domains hosted // by the server side of this protocol. EnumerateDomainsInSAMServer(context.Context, *EnumerateDomainsInSAMServerRequest, ...dcerpc.CallOption) (*EnumerateDomainsInSAMServerResponse, error) // The SamrOpenDomain method obtains a handle to a domain object, given a SID. OpenDomain(context.Context, *OpenDomainRequest, ...dcerpc.CallOption) (*OpenDomainResponse, error) // The SamrQueryInformationDomain method obtains attributes from a domain object. // // See the description of SamrQueryInformationDomain2 (section 3.1.5.5.1) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryInformationDomain(context.Context, *QueryInformationDomainRequest, ...dcerpc.CallOption) (*QueryInformationDomainResponse, error) // The SamrSetInformationDomain method updates attributes on a domain object. SetInformationDomain(context.Context, *SetInformationDomainRequest, ...dcerpc.CallOption) (*SetInformationDomainResponse, error) // The SamrCreateGroupInDomain method creates a group object within a domain. CreateGroupInDomain(context.Context, *CreateGroupInDomainRequest, ...dcerpc.CallOption) (*CreateGroupInDomainResponse, error) // The SamrEnumerateGroupsInDomain method enumerates all groups. EnumerateGroupsInDomain(context.Context, *EnumerateGroupsInDomainRequest, ...dcerpc.CallOption) (*EnumerateGroupsInDomainResponse, error) // The SamrCreateUserInDomain method creates a user. CreateUserInDomain(context.Context, *CreateUserInDomainRequest, ...dcerpc.CallOption) (*CreateUserInDomainResponse, error) // The SamrEnumerateUsersInDomain method enumerates all users. EnumerateUsersInDomain(context.Context, *EnumerateUsersInDomainRequest, ...dcerpc.CallOption) (*EnumerateUsersInDomainResponse, error) // The SamrCreateAliasInDomain method creates an alias. CreateAliasInDomain(context.Context, *CreateAliasInDomainRequest, ...dcerpc.CallOption) (*CreateAliasInDomainResponse, error) // The SamrEnumerateAliasesInDomain method enumerates all aliases. EnumerateAliasesInDomain(context.Context, *EnumerateAliasesInDomainRequest, ...dcerpc.CallOption) (*EnumerateAliasesInDomainResponse, error) // The SamrGetAliasMembership method obtains the union of all aliases that a given set // of SIDs is a member of. GetAliasMembership(context.Context, *GetAliasMembershipRequest, ...dcerpc.CallOption) (*GetAliasMembershipResponse, error) // The SamrLookupNamesInDomain method translates a set of account names into a set of // RIDs. LookupNamesInDomain(context.Context, *LookupNamesInDomainRequest, ...dcerpc.CallOption) (*LookupNamesInDomainResponse, error) // The SamrLookupIdsInDomain method translates a set of RIDs into account names. LookupIDsInDomain(context.Context, *LookupIDsInDomainRequest, ...dcerpc.CallOption) (*LookupIDsInDomainResponse, error) // The SamrOpenGroup method obtains a handle to a group, given a RID. OpenGroup(context.Context, *OpenGroupRequest, ...dcerpc.CallOption) (*OpenGroupResponse, error) // The SamrQueryInformationGroup method obtains attributes from a group object. QueryInformationGroup(context.Context, *QueryInformationGroupRequest, ...dcerpc.CallOption) (*QueryInformationGroupResponse, error) // The SamrSetInformationGroup method updates attributes on a group object. SetInformationGroup(context.Context, *SetInformationGroupRequest, ...dcerpc.CallOption) (*SetInformationGroupResponse, error) // The SamrAddMemberToGroup method adds a member to a group. AddMemberToGroup(context.Context, *AddMemberToGroupRequest, ...dcerpc.CallOption) (*AddMemberToGroupResponse, error) // The SamrDeleteGroup method removes a group object. DeleteGroup(context.Context, *DeleteGroupRequest, ...dcerpc.CallOption) (*DeleteGroupResponse, error) // The SamrRemoveMemberFromGroup method removes a member from a group. RemoveMemberFromGroup(context.Context, *RemoveMemberFromGroupRequest, ...dcerpc.CallOption) (*RemoveMemberFromGroupResponse, error) // The SamrGetMembersInGroup method reads the members of a group. GetMembersInGroup(context.Context, *GetMembersInGroupRequest, ...dcerpc.CallOption) (*GetMembersInGroupResponse, error) // The SamrSetMemberAttributesOfGroup method sets the attributes of a member relationship. SetMemberAttributesOfGroup(context.Context, *SetMemberAttributesOfGroupRequest, ...dcerpc.CallOption) (*SetMemberAttributesOfGroupResponse, error) // The SamrOpenAlias method obtains a handle to an alias, given a RID. OpenAlias(context.Context, *OpenAliasRequest, ...dcerpc.CallOption) (*OpenAliasResponse, error) // The SamrQueryInformationAlias method obtains attributes from an alias object. QueryInformationAlias(context.Context, *QueryInformationAliasRequest, ...dcerpc.CallOption) (*QueryInformationAliasResponse, error) // The SamrSetInformationAlias method updates attributes on an alias object. SetInformationAlias(context.Context, *SetInformationAliasRequest, ...dcerpc.CallOption) (*SetInformationAliasResponse, error) // The SamrDeleteAlias method removes an alias object. DeleteAlias(context.Context, *DeleteAliasRequest, ...dcerpc.CallOption) (*DeleteAliasResponse, error) // The SamrAddMemberToAlias method adds a member to an alias. AddMemberToAlias(context.Context, *AddMemberToAliasRequest, ...dcerpc.CallOption) (*AddMemberToAliasResponse, error) // The SamrRemoveMemberFromAlias method removes a member from an alias. RemoveMemberFromAlias(context.Context, *RemoveMemberFromAliasRequest, ...dcerpc.CallOption) (*RemoveMemberFromAliasResponse, error) // The SamrGetMembersInAlias method obtains the membership list of an alias. GetMembersInAlias(context.Context, *GetMembersInAliasRequest, ...dcerpc.CallOption) (*GetMembersInAliasResponse, error) // The SamrOpenUser method obtains a handle to a user, given a RID. OpenUser(context.Context, *OpenUserRequest, ...dcerpc.CallOption) (*OpenUserResponse, error) // The SamrDeleteUser method removes a user object. DeleteUser(context.Context, *DeleteUserRequest, ...dcerpc.CallOption) (*DeleteUserResponse, error) // The SamrQueryInformationUser method obtains attributes from a user object. // // See the description of SamrQueryInformationUser2 (section 3.1.5.5.5) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryInformationUser(context.Context, *QueryInformationUserRequest, ...dcerpc.CallOption) (*QueryInformationUserResponse, error) // The SamrSetInformationUser method updates attributes on a user object. // // See the description of SamrSetInformationUser2 (section 3.1.5.6.4) for details, because // the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SetInformationUser(context.Context, *SetInformationUserRequest, ...dcerpc.CallOption) (*SetInformationUserResponse, error) // The SamrChangePasswordUser method changes the password of a user object. ChangePasswordUser(context.Context, *ChangePasswordUserRequest, ...dcerpc.CallOption) (*ChangePasswordUserResponse, error) // The SamrGetGroupsForUser method obtains a listing of groups that a user is a member // of. GetGroupsForUser(context.Context, *GetGroupsForUserRequest, ...dcerpc.CallOption) (*GetGroupsForUserResponse, error) // The SamrQueryDisplayInformation method obtains a list of accounts in ascending name-sorted // order, starting at a specified index. // // See the description of SamrQueryDisplayInformation3 (section 3.1.5.3.1) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryDisplayInformation(context.Context, *QueryDisplayInformationRequest, ...dcerpc.CallOption) (*QueryDisplayInformationResponse, error) // The SamrGetDisplayEnumerationIndex method obtains an index into an ascending account-name–sorted // list of accounts. // // See the description of SamrGetDisplayEnumerationIndex2 (section 3.1.5.3.4) for details, // because the method-interface arguments and processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. GetDisplayEnumerationIndex(context.Context, *GetDisplayEnumerationIndexRequest, ...dcerpc.CallOption) (*GetDisplayEnumerationIndexResponse, error) // The SamrGetUserDomainPasswordInformation method obtains select password policy information // (without requiring a domain handle). GetUserDomainPasswordInformation(context.Context, *GetUserDomainPasswordInformationRequest, ...dcerpc.CallOption) (*GetUserDomainPasswordInformationResponse, error) // The SamrRemoveMemberFromForeignDomain method removes a member from all aliases. RemoveMemberFromForeignDomain(context.Context, *RemoveMemberFromForeignDomainRequest, ...dcerpc.CallOption) (*RemoveMemberFromForeignDomainResponse, error) // The SamrQueryInformationDomain2 method obtains attributes from a domain object. QueryInformationDomain2(context.Context, *QueryInformationDomain2Request, ...dcerpc.CallOption) (*QueryInformationDomain2Response, error) // The SamrQueryInformationUser2 method obtains attributes from a user object. QueryInformationUser2(context.Context, *QueryInformationUser2Request, ...dcerpc.CallOption) (*QueryInformationUser2Response, error) // The SamrQueryDisplayInformation2 method obtains a list of accounts in ascending name-sorted // order, starting at a specified index. // // See the description of SamrQueryDisplayInformation3 (section 3.1.5.3.1) for details, // because the method-interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryDisplayInformation2(context.Context, *QueryDisplayInformation2Request, ...dcerpc.CallOption) (*QueryDisplayInformation2Response, error) // The SamrGetDisplayEnumerationIndex2 method obtains an index into an ascending account-name–sorted // list of accounts, such that the index is the position in the list of the accounts // whose account name best matches a client-provided string. GetDisplayEnumerationIndex2(context.Context, *GetDisplayEnumerationIndex2Request, ...dcerpc.CallOption) (*GetDisplayEnumerationIndex2Response, error) // The SamrCreateUser2InDomain method creates a user. CreateUser2InDomain(context.Context, *CreateUser2InDomainRequest, ...dcerpc.CallOption) (*CreateUser2InDomainResponse, error) // The SamrQueryDisplayInformation3 method obtains a listing of accounts in ascending // name-sorted order, starting at a specified index. QueryDisplayInformation3(context.Context, *QueryDisplayInformation3Request, ...dcerpc.CallOption) (*QueryDisplayInformation3Response, error) // The SamrAddMultipleMembersToAlias method adds multiple members to an alias. AddMultipleMembersToAlias(context.Context, *AddMultipleMembersToAliasRequest, ...dcerpc.CallOption) (*AddMultipleMembersToAliasResponse, error) // The SamrRemoveMultipleMembersFromAlias method removes multiple members from an alias. RemoveMultipleMembersFromAlias(context.Context, *RemoveMultipleMembersFromAliasRequest, ...dcerpc.CallOption) (*RemoveMultipleMembersFromAliasResponse, error) // The SamrOemChangePasswordUser2 method changes a user's password. // // ); OEMChangePasswordUser2(context.Context, *OEMChangePasswordUser2Request, ...dcerpc.CallOption) (*OEMChangePasswordUser2Response, error) // The SamrUnicodeChangePasswordUser2 method changes a user account's password. UnicodeChangePasswordUser2(context.Context, *UnicodeChangePasswordUser2Request, ...dcerpc.CallOption) (*UnicodeChangePasswordUser2Response, error) // The SamrGetDomainPasswordInformation method obtains select password policy information // (without authenticating to the server). GetDomainPasswordInformation(context.Context, *GetDomainPasswordInformationRequest, ...dcerpc.CallOption) (*GetDomainPasswordInformationResponse, error) // The SamrConnect2 method returns a handle to a server object. Connect2(context.Context, *Connect2Request, ...dcerpc.CallOption) (*Connect2Response, error) // The SamrSetInformationUser2 method updates attributes on a user object. SetInformationUser2(context.Context, *SetInformationUser2Request, ...dcerpc.CallOption) (*SetInformationUser2Response, error) // The SamrConnect4 method obtains a handle to a server object. Connect4(context.Context, *Connect4Request, ...dcerpc.CallOption) (*Connect4Response, error) // The SamrConnect5 method obtains a handle to a server object. Connect5(context.Context, *Connect5Request, ...dcerpc.CallOption) (*Connect5Response, error) // The SamrRidToSid method obtains the SID of an account, given a RID. RIDToSID(context.Context, *RIDToSIDRequest, ...dcerpc.CallOption) (*RIDToSIDResponse, error) // The SamrSetDSRMPassword method sets a local recovery password. SetDSRMPassword(context.Context, *SetDSRMPasswordRequest, ...dcerpc.CallOption) (*SetDSRMPasswordResponse, error) // The SamrValidatePassword method validates an application password against the locally // stored policy. ValidatePassword(context.Context, *ValidatePasswordRequest, ...dcerpc.CallOption) (*ValidatePasswordResponse, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error }
samr interface.
func NewSamrClient ¶
type SamrServer ¶
type SamrServer interface { // The SamrConnect method returns a handle to a server object. Connect(context.Context, *ConnectRequest) (*ConnectResponse, error) // The SamrCloseHandle method closes (that is, releases server-side resources used by) // any context handle obtained from this RPC interface. CloseHandle(context.Context, *CloseHandleRequest) (*CloseHandleResponse, error) // The SamrSetSecurityObject method sets the access control on a server, domain, user, // group, or alias object. SetSecurityObject(context.Context, *SetSecurityObjectRequest) (*SetSecurityObjectResponse, error) // The SamrQuerySecurityObject method queries the access control on a server, domain, // user, group, or alias object. QuerySecurityObject(context.Context, *QuerySecurityObjectRequest) (*QuerySecurityObjectResponse, error) // The SamrLookupDomainInSamServer method obtains the SID of a domain object, given // the object's name. LookupDomainInSAMServer(context.Context, *LookupDomainInSAMServerRequest) (*LookupDomainInSAMServerResponse, error) // The SamrEnumerateDomainsInSamServer method obtains a listing of all domains hosted // by the server side of this protocol. EnumerateDomainsInSAMServer(context.Context, *EnumerateDomainsInSAMServerRequest) (*EnumerateDomainsInSAMServerResponse, error) // The SamrOpenDomain method obtains a handle to a domain object, given a SID. OpenDomain(context.Context, *OpenDomainRequest) (*OpenDomainResponse, error) // The SamrQueryInformationDomain method obtains attributes from a domain object. // // See the description of SamrQueryInformationDomain2 (section 3.1.5.5.1) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryInformationDomain(context.Context, *QueryInformationDomainRequest) (*QueryInformationDomainResponse, error) // The SamrSetInformationDomain method updates attributes on a domain object. SetInformationDomain(context.Context, *SetInformationDomainRequest) (*SetInformationDomainResponse, error) // The SamrCreateGroupInDomain method creates a group object within a domain. CreateGroupInDomain(context.Context, *CreateGroupInDomainRequest) (*CreateGroupInDomainResponse, error) // The SamrEnumerateGroupsInDomain method enumerates all groups. EnumerateGroupsInDomain(context.Context, *EnumerateGroupsInDomainRequest) (*EnumerateGroupsInDomainResponse, error) // The SamrCreateUserInDomain method creates a user. CreateUserInDomain(context.Context, *CreateUserInDomainRequest) (*CreateUserInDomainResponse, error) // The SamrEnumerateUsersInDomain method enumerates all users. EnumerateUsersInDomain(context.Context, *EnumerateUsersInDomainRequest) (*EnumerateUsersInDomainResponse, error) // The SamrCreateAliasInDomain method creates an alias. CreateAliasInDomain(context.Context, *CreateAliasInDomainRequest) (*CreateAliasInDomainResponse, error) // The SamrEnumerateAliasesInDomain method enumerates all aliases. EnumerateAliasesInDomain(context.Context, *EnumerateAliasesInDomainRequest) (*EnumerateAliasesInDomainResponse, error) // The SamrGetAliasMembership method obtains the union of all aliases that a given set // of SIDs is a member of. GetAliasMembership(context.Context, *GetAliasMembershipRequest) (*GetAliasMembershipResponse, error) // The SamrLookupNamesInDomain method translates a set of account names into a set of // RIDs. LookupNamesInDomain(context.Context, *LookupNamesInDomainRequest) (*LookupNamesInDomainResponse, error) // The SamrLookupIdsInDomain method translates a set of RIDs into account names. LookupIDsInDomain(context.Context, *LookupIDsInDomainRequest) (*LookupIDsInDomainResponse, error) // The SamrOpenGroup method obtains a handle to a group, given a RID. OpenGroup(context.Context, *OpenGroupRequest) (*OpenGroupResponse, error) // The SamrQueryInformationGroup method obtains attributes from a group object. QueryInformationGroup(context.Context, *QueryInformationGroupRequest) (*QueryInformationGroupResponse, error) // The SamrSetInformationGroup method updates attributes on a group object. SetInformationGroup(context.Context, *SetInformationGroupRequest) (*SetInformationGroupResponse, error) // The SamrAddMemberToGroup method adds a member to a group. AddMemberToGroup(context.Context, *AddMemberToGroupRequest) (*AddMemberToGroupResponse, error) // The SamrDeleteGroup method removes a group object. DeleteGroup(context.Context, *DeleteGroupRequest) (*DeleteGroupResponse, error) // The SamrRemoveMemberFromGroup method removes a member from a group. RemoveMemberFromGroup(context.Context, *RemoveMemberFromGroupRequest) (*RemoveMemberFromGroupResponse, error) // The SamrGetMembersInGroup method reads the members of a group. GetMembersInGroup(context.Context, *GetMembersInGroupRequest) (*GetMembersInGroupResponse, error) // The SamrSetMemberAttributesOfGroup method sets the attributes of a member relationship. SetMemberAttributesOfGroup(context.Context, *SetMemberAttributesOfGroupRequest) (*SetMemberAttributesOfGroupResponse, error) // The SamrOpenAlias method obtains a handle to an alias, given a RID. OpenAlias(context.Context, *OpenAliasRequest) (*OpenAliasResponse, error) // The SamrQueryInformationAlias method obtains attributes from an alias object. QueryInformationAlias(context.Context, *QueryInformationAliasRequest) (*QueryInformationAliasResponse, error) // The SamrSetInformationAlias method updates attributes on an alias object. SetInformationAlias(context.Context, *SetInformationAliasRequest) (*SetInformationAliasResponse, error) // The SamrDeleteAlias method removes an alias object. DeleteAlias(context.Context, *DeleteAliasRequest) (*DeleteAliasResponse, error) // The SamrAddMemberToAlias method adds a member to an alias. AddMemberToAlias(context.Context, *AddMemberToAliasRequest) (*AddMemberToAliasResponse, error) // The SamrRemoveMemberFromAlias method removes a member from an alias. RemoveMemberFromAlias(context.Context, *RemoveMemberFromAliasRequest) (*RemoveMemberFromAliasResponse, error) // The SamrGetMembersInAlias method obtains the membership list of an alias. GetMembersInAlias(context.Context, *GetMembersInAliasRequest) (*GetMembersInAliasResponse, error) // The SamrOpenUser method obtains a handle to a user, given a RID. OpenUser(context.Context, *OpenUserRequest) (*OpenUserResponse, error) // The SamrDeleteUser method removes a user object. DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) // The SamrQueryInformationUser method obtains attributes from a user object. // // See the description of SamrQueryInformationUser2 (section 3.1.5.5.5) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryInformationUser(context.Context, *QueryInformationUserRequest) (*QueryInformationUserResponse, error) // The SamrSetInformationUser method updates attributes on a user object. // // See the description of SamrSetInformationUser2 (section 3.1.5.6.4) for details, because // the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SetInformationUser(context.Context, *SetInformationUserRequest) (*SetInformationUserResponse, error) // The SamrChangePasswordUser method changes the password of a user object. ChangePasswordUser(context.Context, *ChangePasswordUserRequest) (*ChangePasswordUserResponse, error) // The SamrGetGroupsForUser method obtains a listing of groups that a user is a member // of. GetGroupsForUser(context.Context, *GetGroupsForUserRequest) (*GetGroupsForUserResponse, error) // The SamrQueryDisplayInformation method obtains a list of accounts in ascending name-sorted // order, starting at a specified index. // // See the description of SamrQueryDisplayInformation3 (section 3.1.5.3.1) for details, // because the method interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryDisplayInformation(context.Context, *QueryDisplayInformationRequest) (*QueryDisplayInformationResponse, error) // The SamrGetDisplayEnumerationIndex method obtains an index into an ascending account-name–sorted // list of accounts. // // See the description of SamrGetDisplayEnumerationIndex2 (section 3.1.5.3.4) for details, // because the method-interface arguments and processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. GetDisplayEnumerationIndex(context.Context, *GetDisplayEnumerationIndexRequest) (*GetDisplayEnumerationIndexResponse, error) // The SamrGetUserDomainPasswordInformation method obtains select password policy information // (without requiring a domain handle). GetUserDomainPasswordInformation(context.Context, *GetUserDomainPasswordInformationRequest) (*GetUserDomainPasswordInformationResponse, error) // The SamrRemoveMemberFromForeignDomain method removes a member from all aliases. RemoveMemberFromForeignDomain(context.Context, *RemoveMemberFromForeignDomainRequest) (*RemoveMemberFromForeignDomainResponse, error) // The SamrQueryInformationDomain2 method obtains attributes from a domain object. QueryInformationDomain2(context.Context, *QueryInformationDomain2Request) (*QueryInformationDomain2Response, error) // The SamrQueryInformationUser2 method obtains attributes from a user object. QueryInformationUser2(context.Context, *QueryInformationUser2Request) (*QueryInformationUser2Response, error) // The SamrQueryDisplayInformation2 method obtains a list of accounts in ascending name-sorted // order, starting at a specified index. // // See the description of SamrQueryDisplayInformation3 (section 3.1.5.3.1) for details, // because the method-interface arguments and message processing are identical. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. QueryDisplayInformation2(context.Context, *QueryDisplayInformation2Request) (*QueryDisplayInformation2Response, error) // The SamrGetDisplayEnumerationIndex2 method obtains an index into an ascending account-name–sorted // list of accounts, such that the index is the position in the list of the accounts // whose account name best matches a client-provided string. GetDisplayEnumerationIndex2(context.Context, *GetDisplayEnumerationIndex2Request) (*GetDisplayEnumerationIndex2Response, error) // The SamrCreateUser2InDomain method creates a user. CreateUser2InDomain(context.Context, *CreateUser2InDomainRequest) (*CreateUser2InDomainResponse, error) // The SamrQueryDisplayInformation3 method obtains a listing of accounts in ascending // name-sorted order, starting at a specified index. QueryDisplayInformation3(context.Context, *QueryDisplayInformation3Request) (*QueryDisplayInformation3Response, error) // The SamrAddMultipleMembersToAlias method adds multiple members to an alias. AddMultipleMembersToAlias(context.Context, *AddMultipleMembersToAliasRequest) (*AddMultipleMembersToAliasResponse, error) // The SamrRemoveMultipleMembersFromAlias method removes multiple members from an alias. RemoveMultipleMembersFromAlias(context.Context, *RemoveMultipleMembersFromAliasRequest) (*RemoveMultipleMembersFromAliasResponse, error) // The SamrOemChangePasswordUser2 method changes a user's password. // // ); OEMChangePasswordUser2(context.Context, *OEMChangePasswordUser2Request) (*OEMChangePasswordUser2Response, error) // The SamrUnicodeChangePasswordUser2 method changes a user account's password. UnicodeChangePasswordUser2(context.Context, *UnicodeChangePasswordUser2Request) (*UnicodeChangePasswordUser2Response, error) // The SamrGetDomainPasswordInformation method obtains select password policy information // (without authenticating to the server). GetDomainPasswordInformation(context.Context, *GetDomainPasswordInformationRequest) (*GetDomainPasswordInformationResponse, error) // The SamrConnect2 method returns a handle to a server object. Connect2(context.Context, *Connect2Request) (*Connect2Response, error) // The SamrSetInformationUser2 method updates attributes on a user object. SetInformationUser2(context.Context, *SetInformationUser2Request) (*SetInformationUser2Response, error) // The SamrConnect4 method obtains a handle to a server object. Connect4(context.Context, *Connect4Request) (*Connect4Response, error) // The SamrConnect5 method obtains a handle to a server object. Connect5(context.Context, *Connect5Request) (*Connect5Response, error) // The SamrRidToSid method obtains the SID of an account, given a RID. RIDToSID(context.Context, *RIDToSIDRequest) (*RIDToSIDResponse, error) // The SamrSetDSRMPassword method sets a local recovery password. SetDSRMPassword(context.Context, *SetDSRMPasswordRequest) (*SetDSRMPasswordResponse, error) // The SamrValidatePassword method validates an application password against the locally // stored policy. ValidatePassword(context.Context, *ValidatePasswordRequest) (*ValidatePasswordResponse, error) }
samr server interface.
type SetDSRMPasswordRequest ¶
type SetDSRMPasswordRequest struct { // UserId: A RID of a user account. See the message processing later in this section // for details on restrictions on this value. UserID uint32 `idl:"name:UserId" json:"user_id"` // EncryptedNtOwfPassword: The NT hash of the new password (as presented by the client) // encrypted according to the specification of ENCRYPTED_NT_OWF_PASSWORD, where the // key is the UserId. EncryptedNTOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNtOwfPassword;pointer:unique" json:"encrypted_nt_owf_password"` }
SetDSRMPasswordRequest structure represents the SamrSetDSRMPassword operation request
func (*SetDSRMPasswordRequest) MarshalNDR ¶
func (*SetDSRMPasswordRequest) UnmarshalNDR ¶
type SetDSRMPasswordResponse ¶
type SetDSRMPasswordResponse struct { // Return: The SamrSetDSRMPassword return value. Return int32 `idl:"name:Return" json:"return"` }
SetDSRMPasswordResponse structure represents the SamrSetDSRMPassword operation response
func (*SetDSRMPasswordResponse) MarshalNDR ¶
func (*SetDSRMPasswordResponse) UnmarshalNDR ¶
type SetInformationAliasRequest ¶
type SetInformationAliasRequest struct { // AliasHandle: An RPC context handle, as specified in section 2.2.7.2, representing // an alias object. AliasHandle *Handle `idl:"name:AliasHandle" json:"alias_handle"` // AliasInformationClass: An enumeration indicating which attributes to update. See // section 2.2.5.5 for a listing of possible values. AliasInformationClass AliasInformationClass `idl:"name:AliasInformationClass" json:"alias_information_class"` // Buffer: The requested attributes and values to update. See section 2.2.5.6 for structure // details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *AliasInfoBuffer `idl:"name:Buffer;switch_is:AliasInformationClass" json:"buffer"` }
SetInformationAliasRequest structure represents the SamrSetInformationAlias operation request
func (*SetInformationAliasRequest) MarshalNDR ¶
func (*SetInformationAliasRequest) UnmarshalNDR ¶
type SetInformationAliasResponse ¶
type SetInformationAliasResponse struct { // Return: The SamrSetInformationAlias return value. Return int32 `idl:"name:Return" json:"return"` }
SetInformationAliasResponse structure represents the SamrSetInformationAlias operation response
func (*SetInformationAliasResponse) MarshalNDR ¶
func (*SetInformationAliasResponse) UnmarshalNDR ¶
type SetInformationDomainRequest ¶
type SetInformationDomainRequest struct { // DomainHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a domain object. Domain *Handle `idl:"name:DomainHandle" json:"domain"` // DomainInformationClass: An enumeration indicating which attributes to update. See // section 2.2.3.16 for a list of possible values. DomainInformationClass DomainInformationClass `idl:"name:DomainInformationClass" json:"domain_information_class"` // DomainInformation: The requested attributes and values to update. See section 2.2.3.17 // for structure details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. DomainInformation *DomainInfoBuffer `idl:"name:DomainInformation;switch_is:DomainInformationClass" json:"domain_information"` }
SetInformationDomainRequest structure represents the SamrSetInformationDomain operation request
func (*SetInformationDomainRequest) MarshalNDR ¶
func (*SetInformationDomainRequest) UnmarshalNDR ¶
type SetInformationDomainResponse ¶
type SetInformationDomainResponse struct { // Return: The SamrSetInformationDomain return value. Return int32 `idl:"name:Return" json:"return"` }
SetInformationDomainResponse structure represents the SamrSetInformationDomain operation response
func (*SetInformationDomainResponse) MarshalNDR ¶
func (*SetInformationDomainResponse) UnmarshalNDR ¶
type SetInformationGroupRequest ¶
type SetInformationGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // GroupInformationClass: An enumeration indicating which attributes to update. See // section 2.2.4.6 for a listing of possible values. GroupInformationClass GroupInformationClass `idl:"name:GroupInformationClass" json:"group_information_class"` // Buffer: The requested attributes and values to update. See section 2.2.4.7 for structure // details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *GroupInfoBuffer `idl:"name:Buffer;switch_is:GroupInformationClass" json:"buffer"` }
SetInformationGroupRequest structure represents the SamrSetInformationGroup operation request
func (*SetInformationGroupRequest) MarshalNDR ¶
func (*SetInformationGroupRequest) UnmarshalNDR ¶
type SetInformationGroupResponse ¶
type SetInformationGroupResponse struct { // Return: The SamrSetInformationGroup return value. Return int32 `idl:"name:Return" json:"return"` }
SetInformationGroupResponse structure represents the SamrSetInformationGroup operation response
func (*SetInformationGroupResponse) MarshalNDR ¶
func (*SetInformationGroupResponse) UnmarshalNDR ¶
type SetInformationUser2Request ¶
type SetInformationUser2Request struct { // UserHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a user object. UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` // UserInformationClass: An enumeration indicating which attributes to update. See section // 2.2.6.28 for a listing of possible values. UserInformationClass UserInformationClass `idl:"name:UserInformationClass" json:"user_information_class"` // Buffer: The requested attributes and values to update. See section 2.2.6.29 for structure // details. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Buffer *UserInfoBuffer `idl:"name:Buffer;switch_is:UserInformationClass" json:"buffer"` }
SetInformationUser2Request structure represents the SamrSetInformationUser2 operation request
func (*SetInformationUser2Request) MarshalNDR ¶
func (*SetInformationUser2Request) UnmarshalNDR ¶
type SetInformationUser2Response ¶
type SetInformationUser2Response struct { // Return: The SamrSetInformationUser2 return value. Return int32 `idl:"name:Return" json:"return"` }
SetInformationUser2Response structure represents the SamrSetInformationUser2 operation response
func (*SetInformationUser2Response) MarshalNDR ¶
func (*SetInformationUser2Response) UnmarshalNDR ¶
type SetInformationUserRequest ¶
type SetInformationUserRequest struct { UserHandle *Handle `idl:"name:UserHandle" json:"user_handle"` UserInformationClass UserInformationClass `idl:"name:UserInformationClass" json:"user_information_class"` Buffer *UserInfoBuffer `idl:"name:Buffer;switch_is:UserInformationClass" json:"buffer"` }
SetInformationUserRequest structure represents the SamrSetInformationUser operation request
func (*SetInformationUserRequest) MarshalNDR ¶
func (*SetInformationUserRequest) UnmarshalNDR ¶
type SetInformationUserResponse ¶
type SetInformationUserResponse struct { // Return: The SamrSetInformationUser return value. Return int32 `idl:"name:Return" json:"return"` }
SetInformationUserResponse structure represents the SamrSetInformationUser operation response
func (*SetInformationUserResponse) MarshalNDR ¶
func (*SetInformationUserResponse) UnmarshalNDR ¶
type SetMemberAttributesOfGroupRequest ¶
type SetMemberAttributesOfGroupRequest struct { // GroupHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a group object. GroupHandle *Handle `idl:"name:GroupHandle" json:"group_handle"` // MemberId: A RID that represents a member of a group (which is a user or machine account). MemberID uint32 `idl:"name:MemberId" json:"member_id"` // Attributes: The characteristics of the membership relationship. For legal values, // see section 2.2.1.10. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. Attributes uint32 `idl:"name:Attributes" json:"attributes"` }
SetMemberAttributesOfGroupRequest structure represents the SamrSetMemberAttributesOfGroup operation request
func (*SetMemberAttributesOfGroupRequest) MarshalNDR ¶
func (*SetMemberAttributesOfGroupRequest) UnmarshalNDR ¶
type SetMemberAttributesOfGroupResponse ¶
type SetMemberAttributesOfGroupResponse struct { // Return: The SamrSetMemberAttributesOfGroup return value. Return int32 `idl:"name:Return" json:"return"` }
SetMemberAttributesOfGroupResponse structure represents the SamrSetMemberAttributesOfGroup operation response
func (*SetMemberAttributesOfGroupResponse) MarshalNDR ¶
func (*SetMemberAttributesOfGroupResponse) UnmarshalNDR ¶
type SetSecurityObjectRequest ¶
type SetSecurityObjectRequest struct { // ObjectHandle: An RPC context handle, as specified in section 2.2.7.2, representing // a server, domain, user, group, or alias object. Object *Handle `idl:"name:ObjectHandle" json:"object"` // SecurityInformation: A bit field that indicates the fields of SecurityDescriptor // that are requested to be set. // // The SECURITY_INFORMATION type is defined in [MS-DTYP] section 2.4.7. The following // bits are valid; all other bits MUST be zero when sent and ignored on receipt. If // none of the bits below are present, the server MUST return STATUS_INVALID_PARAMETER. // // +---------------------------------------+-----------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------+-----------------------------------------------------------------------------+ // +---------------------------------------+-----------------------------------------------------------------------------+ // | OWNER_SECURITY_INFORMATION 0x00000001 | Refers to the Owner member of the security descriptor. | // +---------------------------------------+-----------------------------------------------------------------------------+ // | GROUP_SECURITY_INFORMATION 0x00000002 | Refers to the Group member of the security descriptor. | // +---------------------------------------+-----------------------------------------------------------------------------+ // | DACL_SECURITY_INFORMATION 0x00000004 | Refers to the DACL of the security descriptor. | // +---------------------------------------+-----------------------------------------------------------------------------+ // | SACL_SECURITY_INFORMATION 0x00000008 | Refers to the system access control list (SACL) of the security descriptor. | // +---------------------------------------+-----------------------------------------------------------------------------+ SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"` // SecurityDescriptor: A security descriptor expressing access that is specific to the // ObjectHandle. // // This protocol asks the RPC runtime, via the strict_context_handle attribute, to reject // the use of context handles created by a method of a different RPC interface than // this one, as specified in [MS-RPCE] section 3. SecurityDescriptor *SrSecurityDescriptor `idl:"name:SecurityDescriptor" json:"security_descriptor"` }
SetSecurityObjectRequest structure represents the SamrSetSecurityObject operation request
func (*SetSecurityObjectRequest) MarshalNDR ¶
func (*SetSecurityObjectRequest) UnmarshalNDR ¶
type SetSecurityObjectResponse ¶
type SetSecurityObjectResponse struct { // Return: The SamrSetSecurityObject return value. Return int32 `idl:"name:Return" json:"return"` }
SetSecurityObjectResponse structure represents the SamrSetSecurityObject operation response
func (*SetSecurityObjectResponse) MarshalNDR ¶
func (*SetSecurityObjectResponse) UnmarshalNDR ¶
type ShortBlob ¶
type ShortBlob struct { // Length: The number of bytes of data contained in the Buffer member. Length uint16 `idl:"name:Length" json:"length"` // MaximumLength: The length, in bytes, of the Buffer member. MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"` // Buffer: A buffer containing Length/2 unsigned short values. Buffer []uint16 `idl:"name:Buffer;size_is:((MaximumLength/2));length_is:((Length/2))" json:"buffer"` }
ShortBlob structure represents RPC_SHORT_BLOB RPC structure.
The RPC_SHORT_BLOB structure holds a counted array of unsigned short values.
func (*ShortBlob) MarshalNDR ¶
type SrSecurityDescriptor ¶
type SrSecurityDescriptor struct { // Length: The size, in bytes, of SecurityDescriptor. If zero, SecurityDescriptor MUST // be ignored. The maximum size of 256 * 1024 is an arbitrary value chosen to limit // the amount of memory a client can force the server to allocate. Length uint32 `idl:"name:Length" json:"length"` // SecurityDescriptor: A binary format per the SECURITY_DESCRIPTOR format in [MS-DTYP] // section 2.4.6. SecurityDescriptor []byte `idl:"name:SecurityDescriptor;size_is:(Length)" json:"security_descriptor"` }
SrSecurityDescriptor structure represents SAMPR_SR_SECURITY_DESCRIPTOR RPC structure.
The SAMPR_SR_SECURITY_DESCRIPTOR structure holds a formatted security descriptor.
func (*SrSecurityDescriptor) MarshalNDR ¶
func (*SrSecurityDescriptor) UnmarshalNDR ¶
type String ¶
type String struct { // Length: The size, in bytes, not including a terminating null character, of the string // contained in Buffer. Length uint16 `idl:"name:Length" json:"length"` // MaximumLength: The size, in bytes, of the Buffer member. MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"` // Buffer: A buffer containing a string encoded in the OEM code page. The string is // counted (by the Length member), and therefore is not null-terminated. Buffer []byte `idl:"name:Buffer;size_is:(MaximumLength);length_is:(Length)" json:"buffer"` }
String structure represents RPC_STRING RPC structure.
The RPC_STRING structure holds a counted string encoded in the OEM code page.
type Uint32Array ¶
type Uint32Array struct { // Count: The number of elements in Element. If zero, Element MUST be ignored. If nonzero, // Element MUST point to at least Count * sizeof(unsigned long) bytes of memory. Count uint32 `idl:"name:Count" json:"count"` // Element: A pointer to an array of unsigned integers with Count elements. The semantic // meaning is dependent on the method in which the structure is being used. Element []uint32 `idl:"name:Element;size_is:(Count)" json:"element"` }
Uint32Array structure represents SAMPR_ULONG_ARRAY RPC structure.
The SAMPR_ULONG_ARRAY structure holds a counted array of unsigned long values.
func (*Uint32Array) MarshalNDR ¶
func (*Uint32Array) UnmarshalNDR ¶
type UnicodeChangePasswordUser2Request ¶
type UnicodeChangePasswordUser2Request struct { // ServerName: A null-terminated string containing the NETBIOS name of the server; this // parameter MAY<66> be ignored by the server. ServerName *dtyp.UnicodeString `idl:"name:ServerName;pointer:unique" json:"server_name"` // UserName: The name of the user. See the message processing later in this section // for details on how this value is used as a database key to locate the account that // is the target of this password change operation. UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` // NewPasswordEncryptedWithOldNt: A cleartext password encrypted according to the specification // of SAMPR_ENCRYPTED_USER_PASSWORD (section 2.2.6.21), where the key is the NT hash // of the existing password for the target user (as presented by the client in the OldNtOwfPasswordEncryptedWithNewNt // parameter). NewPasswordEncryptedWithOldNT *EncryptedUserPassword `idl:"name:NewPasswordEncryptedWithOldNt;pointer:unique" json:"new_password_encrypted_with_old_nt"` // OldNtOwfPasswordEncryptedWithNewNt: The NT hash of the target user's existing password // (as presented by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD // (section 2.2.7.3), where the key is the NT hash of the cleartext password obtained // from decrypting NewPasswordEncryptedWithOldNt. OldNTOWFPasswordEncryptedWithNewNT *EncryptedNTOWFPassword `idl:"name:OldNtOwfPasswordEncryptedWithNewNt;pointer:unique" json:"old_nt_owf_password_encrypted_with_new_nt"` // LmPresent: If this parameter is zero, NewPasswordEncryptedWithOldLm and OldLmOwfPasswordEncryptedWithNewNt // MUST be ignored; otherwise these fields MUST be processed. LMPresent uint8 `idl:"name:LmPresent" json:"lm_present"` // NewPasswordEncryptedWithOldLm: A cleartext password encrypted according to the specification // of SAMPR_ENCRYPTED_USER_PASSWORD, where the key is the LM hash of the existing password // for the target user (as presented by the client). NewPasswordEncryptedWithOldLM *EncryptedUserPassword `idl:"name:NewPasswordEncryptedWithOldLm;pointer:unique" json:"new_password_encrypted_with_old_lm"` // OldLmOwfPasswordEncryptedWithNewNt: The LM hash the target user's existing password // (as presented by the client) encrypted according to the specification of ENCRYPTED_LM_OWF_PASSWORD, // where the key is the NT hash of the cleartext password obtained from decrypting NewPasswordEncryptedWithOldNt. OldLMOWFPasswordEncryptedWithNewNT *EncryptedLMOWFPassword `idl:"name:OldLmOwfPasswordEncryptedWithNewNt;pointer:unique" json:"old_lm_owf_password_encrypted_with_new_nt"` }
UnicodeChangePasswordUser2Request structure represents the SamrUnicodeChangePasswordUser2 operation request
func (*UnicodeChangePasswordUser2Request) MarshalNDR ¶
func (*UnicodeChangePasswordUser2Request) UnmarshalNDR ¶
type UnicodeChangePasswordUser2Response ¶
type UnicodeChangePasswordUser2Response struct { // Return: The SamrUnicodeChangePasswordUser2 return value. Return int32 `idl:"name:Return" json:"return"` }
UnicodeChangePasswordUser2Response structure represents the SamrUnicodeChangePasswordUser2 operation response
func (*UnicodeChangePasswordUser2Response) MarshalNDR ¶
func (*UnicodeChangePasswordUser2Response) UnmarshalNDR ¶
type UserANameInformation ¶
type UserANameInformation struct {
UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"`
}
UserANameInformation structure represents SAMPR_USER_A_NAME_INFORMATION RPC structure.
The SAMPR_USER_A_NAME_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserANameInformation) MarshalNDR ¶
func (*UserANameInformation) UnmarshalNDR ¶
type UserAccountInformation ¶
type UserAccountInformation struct { UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` UserID uint32 `idl:"name:UserId" json:"user_id"` PrimaryGroupID uint32 `idl:"name:PrimaryGroupId" json:"primary_group_id"` HomeDirectory *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"` HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"` ScriptPath *dtyp.UnicodeString `idl:"name:ScriptPath" json:"script_path"` ProfilePath *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` WorkStations *dtyp.UnicodeString `idl:"name:WorkStations" json:"work_stations"` LastLogon *OldLargeInteger `idl:"name:LastLogon" json:"last_logon"` LastLogoff *OldLargeInteger `idl:"name:LastLogoff" json:"last_logoff"` LogonHours *LogonHours `idl:"name:LogonHours" json:"logon_hours"` BadPasswordCount uint16 `idl:"name:BadPasswordCount" json:"bad_password_count"` LogonCount uint16 `idl:"name:LogonCount" json:"logon_count"` PasswordLastSet *OldLargeInteger `idl:"name:PasswordLastSet" json:"password_last_set"` AccountExpires *OldLargeInteger `idl:"name:AccountExpires" json:"account_expires"` UserAccountControl uint32 `idl:"name:UserAccountControl" json:"user_account_control"` }
UserAccountInformation structure represents SAMPR_USER_ACCOUNT_INFORMATION RPC structure.
The SAMPR_USER_ACCOUNT_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserAccountInformation) MarshalNDR ¶
func (*UserAccountInformation) UnmarshalNDR ¶
type UserAdminCommentInformation ¶
type UserAdminCommentInformation struct {
AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"`
}
UserAdminCommentInformation structure represents SAMPR_USER_ADMIN_COMMENT_INFORMATION RPC structure.
The SAMPR_USER_ADMIN_COMMENT_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserAdminCommentInformation) MarshalNDR ¶
func (*UserAdminCommentInformation) UnmarshalNDR ¶
type UserAllInformation ¶
type UserAllInformation struct { LastLogon *OldLargeInteger `idl:"name:LastLogon" json:"last_logon"` LastLogoff *OldLargeInteger `idl:"name:LastLogoff" json:"last_logoff"` PasswordLastSet *OldLargeInteger `idl:"name:PasswordLastSet" json:"password_last_set"` AccountExpires *OldLargeInteger `idl:"name:AccountExpires" json:"account_expires"` PasswordCanChange *OldLargeInteger `idl:"name:PasswordCanChange" json:"password_can_change"` PasswordMustChange *OldLargeInteger `idl:"name:PasswordMustChange" json:"password_must_change"` UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` HomeDirectory *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"` HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"` ScriptPath *dtyp.UnicodeString `idl:"name:ScriptPath" json:"script_path"` ProfilePath *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` WorkStations *dtyp.UnicodeString `idl:"name:WorkStations" json:"work_stations"` UserComment *dtyp.UnicodeString `idl:"name:UserComment" json:"user_comment"` Parameters *dtyp.UnicodeString `idl:"name:Parameters" json:"parameters"` // LmOwfPassword: An RPC_SHORT_BLOB structure where Length and MaximumLength MUST be // 16, and the Buffer MUST be formatted with an ENCRYPTED_LM_OWF_PASSWORD structure // with the cleartext value being an LM hash, and the encryption key being the 16-byte // SMB session key obtained as specified in either section 3.1.2.4 or section 3.2.2.3. LMOWFPassword *ShortBlob `idl:"name:LmOwfPassword" json:"lm_owf_password"` // NtOwfPassword: An RPC_SHORT_BLOB structure where Length and MaximumLength MUST be // 16, and the Buffer MUST be formatted with an ENCRYPTED_NT_OWF_PASSWORD structure // with the cleartext value being an NT hash, and the encryption key being the 16-byte // SMB session key obtained as specified in either section 3.1.2.4 or section 3.2.2.3. NTOWFPassword *ShortBlob `idl:"name:NtOwfPassword" json:"nt_owf_password"` // PrivateData: Not used. Ignored on receipt at the server and client. Clients MUST // set to zero when sent, and servers MUST set to zero on return. PrivateData *dtyp.UnicodeString `idl:"name:PrivateData" json:"private_data"` // SecurityDescriptor: Not used. Ignored on receipt at the server and client. Clients // MUST set to zero when sent, and servers MUST set to zero on return. SecurityDescriptor *SrSecurityDescriptor `idl:"name:SecurityDescriptor" json:"security_descriptor"` UserID uint32 `idl:"name:UserId" json:"user_id"` PrimaryGroupID uint32 `idl:"name:PrimaryGroupId" json:"primary_group_id"` UserAccountControl uint32 `idl:"name:UserAccountControl" json:"user_account_control"` // WhichFields: A 32-bit bit field indicating which fields within the SAMPR_USER_ALL_INFORMATION // structure will be processed by the server. Section 2.2.1.8 specifies the valid bits // and also specifies the structure field to which each bit corresponds. WhichFields uint32 `idl:"name:WhichFields" json:"which_fields"` LogonHours *LogonHours `idl:"name:LogonHours" json:"logon_hours"` BadPasswordCount uint16 `idl:"name:BadPasswordCount" json:"bad_password_count"` LogonCount uint16 `idl:"name:LogonCount" json:"logon_count"` CountryCode uint16 `idl:"name:CountryCode" json:"country_code"` CodePage uint16 `idl:"name:CodePage" json:"code_page"` // LmPasswordPresent: If zero, LmOwfPassword MUST be ignored; otherwise, LmOwfPassword // MUST be processed. LMPasswordPresent uint8 `idl:"name:LmPasswordPresent" json:"lm_password_present"` // NtPasswordPresent: If zero, NtOwfPassword MUST be ignored; otherwise, NtOwfPassword // MUST be processed. NTPasswordPresent uint8 `idl:"name:NtPasswordPresent" json:"nt_password_present"` PasswordExpired uint8 `idl:"name:PasswordExpired" json:"password_expired"` // PrivateDataSensitive: Not used. Ignored on receipt at the server and client. PrivateDataSensitive uint8 `idl:"name:PrivateDataSensitive" json:"private_data_sensitive"` }
UserAllInformation structure represents SAMPR_USER_ALL_INFORMATION RPC structure.
The SAMPR_USER_ALL_INFORMATION structure contains user attribute information. Most fields are described in section 2.2.6.1. The exceptions are described below.
func (*UserAllInformation) MarshalNDR ¶
func (*UserAllInformation) UnmarshalNDR ¶
type UserControlInformation ¶
type UserControlInformation struct {
UserAccountControl uint32 `idl:"name:UserAccountControl" json:"user_account_control"`
}
UserControlInformation structure represents USER_CONTROL_INFORMATION RPC structure.
The USER_CONTROL_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserControlInformation) MarshalNDR ¶
func (*UserControlInformation) UnmarshalNDR ¶
type UserDomainPasswordInformation ¶
type UserDomainPasswordInformation struct { MinPasswordLength uint16 `idl:"name:MinPasswordLength" json:"min_password_length"` PasswordProperties uint32 `idl:"name:PasswordProperties" json:"password_properties"` }
UserDomainPasswordInformation structure represents USER_DOMAIN_PASSWORD_INFORMATION RPC structure.
The USER_DOMAIN_PASSWORD_INFORMATION structure contains domain fields.
For information on each field, see section 2.2.3.1.
func (*UserDomainPasswordInformation) MarshalNDR ¶
func (*UserDomainPasswordInformation) UnmarshalNDR ¶
type UserExpiresInformation ¶
type UserExpiresInformation struct {
AccountExpires *OldLargeInteger `idl:"name:AccountExpires" json:"account_expires"`
}
UserExpiresInformation structure represents USER_EXPIRES_INFORMATION RPC structure.
The USER_EXPIRES_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserExpiresInformation) MarshalNDR ¶
func (*UserExpiresInformation) UnmarshalNDR ¶
type UserFNameInformation ¶
type UserFNameInformation struct {
FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"`
}
UserFNameInformation structure represents SAMPR_USER_F_NAME_INFORMATION RPC structure.
The SAMPR_USER_F_NAME_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserFNameInformation) MarshalNDR ¶
func (*UserFNameInformation) UnmarshalNDR ¶
type UserGeneralInformation ¶
type UserGeneralInformation struct { UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` PrimaryGroupID uint32 `idl:"name:PrimaryGroupId" json:"primary_group_id"` AdminComment *dtyp.UnicodeString `idl:"name:AdminComment" json:"admin_comment"` UserComment *dtyp.UnicodeString `idl:"name:UserComment" json:"user_comment"` }
UserGeneralInformation structure represents SAMPR_USER_GENERAL_INFORMATION RPC structure.
The SAMPR_USER_GENERAL_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserGeneralInformation) MarshalNDR ¶
func (*UserGeneralInformation) UnmarshalNDR ¶
type UserHomeInformation ¶
type UserHomeInformation struct { HomeDirectory *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"` HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"` }
UserHomeInformation structure represents SAMPR_USER_HOME_INFORMATION RPC structure.
The SAMPR_USER_HOME_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserHomeInformation) MarshalNDR ¶
func (*UserHomeInformation) UnmarshalNDR ¶
type UserInfoBuffer ¶
type UserInfoBuffer struct { // Types that are assignable to Value // // *UserInfoBuffer_General // *UserInfoBuffer_Preferences // *UserInfoBuffer_Logon // *UserInfoBuffer_LogonHours // *UserInfoBuffer_Account // *UserInfoBuffer_Name // *UserInfoBuffer_AccountName // *UserInfoBuffer_FullName // *UserInfoBuffer_PrimaryGroup // *UserInfoBuffer_Home // *UserInfoBuffer_Script // *UserInfoBuffer_Profile // *UserInfoBuffer_AdminComment // *UserInfoBuffer_WorkStations // *UserInfoBuffer_Control // *UserInfoBuffer_Expires // *UserInfoBuffer_Internal1 // *UserInfoBuffer_Parameters // *UserInfoBuffer_All // *UserInfoBuffer_Internal4 // *UserInfoBuffer_Internal5 // *UserInfoBuffer_Internal4New // *UserInfoBuffer_Internal5New Value is_UserInfoBuffer `json:"value"` }
UserInfoBuffer structure represents SAMPR_USER_INFO_BUFFER RPC union.
The SAMPR_USER_INFO_BUFFER union combines all possible structures used in the SamrSetInformationUser, SamrSetInformationUser2, SamrQueryInformationUser, and SamrQueryInformationUser2 methods (see sections 3.1.5.6.5, 3.1.5.6.4, 3.1.5.5.6, and 3.1.5.5.5). For details on each field, see the associated section for the field structure.
func (*UserInfoBuffer) GetValue ¶
func (o *UserInfoBuffer) GetValue() any
func (*UserInfoBuffer) MarshalUnionNDR ¶
func (*UserInfoBuffer) NDRSwitchValue ¶
func (o *UserInfoBuffer) NDRSwitchValue(sw uint16) uint16
func (*UserInfoBuffer) UnmarshalUnionNDR ¶
type UserInfoBuffer_Account ¶
type UserInfoBuffer_Account struct {
Account *UserAccountInformation `idl:"name:Account" json:"account"`
}
UserInfoBuffer_Account structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 5
func (*UserInfoBuffer_Account) MarshalNDR ¶
func (*UserInfoBuffer_Account) UnmarshalNDR ¶
type UserInfoBuffer_AccountName ¶
type UserInfoBuffer_AccountName struct {
AccountName *UserANameInformation `idl:"name:AccountName" json:"account_name"`
}
UserInfoBuffer_AccountName structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 7
func (*UserInfoBuffer_AccountName) MarshalNDR ¶
func (*UserInfoBuffer_AccountName) UnmarshalNDR ¶
type UserInfoBuffer_AdminComment ¶
type UserInfoBuffer_AdminComment struct {
AdminComment *UserAdminCommentInformation `idl:"name:AdminComment" json:"admin_comment"`
}
UserInfoBuffer_AdminComment structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 13
func (*UserInfoBuffer_AdminComment) MarshalNDR ¶
func (*UserInfoBuffer_AdminComment) UnmarshalNDR ¶
type UserInfoBuffer_All ¶
type UserInfoBuffer_All struct {
All *UserAllInformation `idl:"name:All" json:"all"`
}
UserInfoBuffer_All structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 21
func (*UserInfoBuffer_All) MarshalNDR ¶
func (*UserInfoBuffer_All) UnmarshalNDR ¶
type UserInfoBuffer_Control ¶
type UserInfoBuffer_Control struct {
Control *UserControlInformation `idl:"name:Control" json:"control"`
}
UserInfoBuffer_Control structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 16
func (*UserInfoBuffer_Control) MarshalNDR ¶
func (*UserInfoBuffer_Control) UnmarshalNDR ¶
type UserInfoBuffer_Expires ¶
type UserInfoBuffer_Expires struct {
Expires *UserExpiresInformation `idl:"name:Expires" json:"expires"`
}
UserInfoBuffer_Expires structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 17
func (*UserInfoBuffer_Expires) MarshalNDR ¶
func (*UserInfoBuffer_Expires) UnmarshalNDR ¶
type UserInfoBuffer_FullName ¶
type UserInfoBuffer_FullName struct {
FullName *UserFNameInformation `idl:"name:FullName" json:"full_name"`
}
UserInfoBuffer_FullName structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 8
func (*UserInfoBuffer_FullName) MarshalNDR ¶
func (*UserInfoBuffer_FullName) UnmarshalNDR ¶
type UserInfoBuffer_General ¶
type UserInfoBuffer_General struct {
General *UserGeneralInformation `idl:"name:General" json:"general"`
}
UserInfoBuffer_General structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 1
func (*UserInfoBuffer_General) MarshalNDR ¶
func (*UserInfoBuffer_General) UnmarshalNDR ¶
type UserInfoBuffer_Home ¶
type UserInfoBuffer_Home struct {
Home *UserHomeInformation `idl:"name:Home" json:"home"`
}
UserInfoBuffer_Home structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 10
func (*UserInfoBuffer_Home) MarshalNDR ¶
func (*UserInfoBuffer_Home) UnmarshalNDR ¶
type UserInfoBuffer_Internal1 ¶
type UserInfoBuffer_Internal1 struct {
Internal1 *UserInternal1Information `idl:"name:Internal1" json:"internal1"`
}
UserInfoBuffer_Internal1 structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 18
func (*UserInfoBuffer_Internal1) MarshalNDR ¶
func (*UserInfoBuffer_Internal1) UnmarshalNDR ¶
type UserInfoBuffer_Internal4 ¶
type UserInfoBuffer_Internal4 struct {
Internal4 *UserInternal4Information `idl:"name:Internal4" json:"internal4"`
}
UserInfoBuffer_Internal4 structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 23
func (*UserInfoBuffer_Internal4) MarshalNDR ¶
func (*UserInfoBuffer_Internal4) UnmarshalNDR ¶
type UserInfoBuffer_Internal4New ¶
type UserInfoBuffer_Internal4New struct {
Internal4New *UserInternal4InformationNew `idl:"name:Internal4New" json:"internal4_new"`
}
UserInfoBuffer_Internal4New structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 25
func (*UserInfoBuffer_Internal4New) MarshalNDR ¶
func (*UserInfoBuffer_Internal4New) UnmarshalNDR ¶
type UserInfoBuffer_Internal5 ¶
type UserInfoBuffer_Internal5 struct {
Internal5 *UserInternal5Information `idl:"name:Internal5" json:"internal5"`
}
UserInfoBuffer_Internal5 structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 24
func (*UserInfoBuffer_Internal5) MarshalNDR ¶
func (*UserInfoBuffer_Internal5) UnmarshalNDR ¶
type UserInfoBuffer_Internal5New ¶
type UserInfoBuffer_Internal5New struct {
Internal5New *UserInternal5InformationNew `idl:"name:Internal5New" json:"internal5_new"`
}
UserInfoBuffer_Internal5New structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 26
func (*UserInfoBuffer_Internal5New) MarshalNDR ¶
func (*UserInfoBuffer_Internal5New) UnmarshalNDR ¶
type UserInfoBuffer_Logon ¶
type UserInfoBuffer_Logon struct {
Logon *UserLogonInformation `idl:"name:Logon" json:"logon"`
}
UserInfoBuffer_Logon structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 3
func (*UserInfoBuffer_Logon) MarshalNDR ¶
func (*UserInfoBuffer_Logon) UnmarshalNDR ¶
type UserInfoBuffer_LogonHours ¶
type UserInfoBuffer_LogonHours struct {
LogonHours *UserLogonHoursInformation `idl:"name:LogonHours" json:"logon_hours"`
}
UserInfoBuffer_LogonHours structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 4
func (*UserInfoBuffer_LogonHours) MarshalNDR ¶
func (*UserInfoBuffer_LogonHours) UnmarshalNDR ¶
type UserInfoBuffer_Name ¶
type UserInfoBuffer_Name struct {
Name *UserNameInformation `idl:"name:Name" json:"name"`
}
UserInfoBuffer_Name structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 6
func (*UserInfoBuffer_Name) MarshalNDR ¶
func (*UserInfoBuffer_Name) UnmarshalNDR ¶
type UserInfoBuffer_Parameters ¶
type UserInfoBuffer_Parameters struct {
Parameters *UserParametersInformation `idl:"name:Parameters" json:"parameters"`
}
UserInfoBuffer_Parameters structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 20
func (*UserInfoBuffer_Parameters) MarshalNDR ¶
func (*UserInfoBuffer_Parameters) UnmarshalNDR ¶
type UserInfoBuffer_Preferences ¶
type UserInfoBuffer_Preferences struct {
Preferences *UserPreferencesInformation `idl:"name:Preferences" json:"preferences"`
}
UserInfoBuffer_Preferences structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 2
func (*UserInfoBuffer_Preferences) MarshalNDR ¶
func (*UserInfoBuffer_Preferences) UnmarshalNDR ¶
type UserInfoBuffer_PrimaryGroup ¶
type UserInfoBuffer_PrimaryGroup struct {
PrimaryGroup *UserPrimaryGroupInformation `idl:"name:PrimaryGroup" json:"primary_group"`
}
UserInfoBuffer_PrimaryGroup structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 9
func (*UserInfoBuffer_PrimaryGroup) MarshalNDR ¶
func (*UserInfoBuffer_PrimaryGroup) UnmarshalNDR ¶
type UserInfoBuffer_Profile ¶
type UserInfoBuffer_Profile struct {
Profile *UserProfileInformation `idl:"name:Profile" json:"profile"`
}
UserInfoBuffer_Profile structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 12
func (*UserInfoBuffer_Profile) MarshalNDR ¶
func (*UserInfoBuffer_Profile) UnmarshalNDR ¶
type UserInfoBuffer_Script ¶
type UserInfoBuffer_Script struct {
Script *UserScriptInformation `idl:"name:Script" json:"script"`
}
UserInfoBuffer_Script structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 11
func (*UserInfoBuffer_Script) MarshalNDR ¶
func (*UserInfoBuffer_Script) UnmarshalNDR ¶
type UserInfoBuffer_WorkStations ¶
type UserInfoBuffer_WorkStations struct {
WorkStations *UserWorkstationsInformation `idl:"name:WorkStations" json:"work_stations"`
}
UserInfoBuffer_WorkStations structure represents SAMPR_USER_INFO_BUFFER RPC union arm.
It has following labels: 14
func (*UserInfoBuffer_WorkStations) MarshalNDR ¶
func (*UserInfoBuffer_WorkStations) UnmarshalNDR ¶
type UserInformationClass ¶
type UserInformationClass uint16
UserInformationClass type represents USER_INFORMATION_CLASS RPC enumeration.
The USER_INFORMATION_CLASS enumeration indicates how to interpret the Buffer parameter for SamrSetInformationUser, SamrQueryInformationUser, SamrSetInformationUser2, and SamrQueryInformationUser2. For a list of associated structures, see section 2.2.6.29.
var ( // UserGeneralInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_GENERAL_INFORMATION structure (see section 2.2.6.7). UserInformationClassGeneralInformation UserInformationClass = 1 // UserPreferencesInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_PREFERENCES_INFORMATION structure (see section 2.2.6.8). UserInformationClassPreferencesInformation UserInformationClass = 2 // UserLogonInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_USER_LOGON_INFORMATION structure (see section 2.2.6.10). UserInformationClassLogonInformation UserInformationClass = 3 // UserLogonHoursInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_LOGON_HOURS_INFORMATION structure (see section 2.2.6.20). UserInformationClassLogonHoursInformation UserInformationClass = 4 // UserAccountInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_ACCOUNT_INFORMATION structure (see section 2.2.6.11). UserInformationClassAccountInformation UserInformationClass = 5 // UserNameInformation: Indicates the Buffer parameter is to be interpreted as a SAMPR_USER_NAME_INFORMATION // structure (see section 2.2.6.14). UserInformationClassNameInformation UserInformationClass = 6 // UserAccountNameInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_A_NAME_INFORMATION structure (see section 2.2.6.12). UserInformationClassAccountNameInformation UserInformationClass = 7 // UserFullNameInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_F_NAME_INFORMATION structure (see section 2.2.6.13). UserInformationClassFullNameInformation UserInformationClass = 8 // UserPrimaryGroupInformation: Indicates the Buffer parameter is to be interpreted // as a USER_PRIMARY_GROUP_INFORMATION structure (see section 2.2.6.2). UserInformationClassPrimaryGroupInformation UserInformationClass = 9 // UserHomeInformation: Indicates the Buffer parameter is to be interpreted as a SAMPR_USER_HOME_INFORMATION // structure (see section 2.2.6.15). UserInformationClassHomeInformation UserInformationClass = 10 // UserScriptInformation: Indicates the Buffer parameter is to be interpreted as a // SAMPR_USER_SCRIPT_INFORMATION structure (see section 2.2.6.16). UserInformationClassScriptInformation UserInformationClass = 11 // UserProfileInformation: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_PROFILE_INFORMATION structure (see section 2.2.6.17). UserInformationClassProfileInformation UserInformationClass = 12 // UserAdminCommentInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_ADMIN_COMMENT_INFORMATION structure (see section 2.2.6.18). UserInformationClassAdminCommentInformation UserInformationClass = 13 // UserWorkStationsInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_WORKSTATIONS_INFORMATION structure (see section 2.2.6.19). UserInformationClassWorkStationsInformation UserInformationClass = 14 // UserControlInformation: Indicates the Buffer parameter is to be interpreted as // a USER_CONTROL_INFORMATION structure (see section 2.2.6.3). UserInformationClassControlInformation UserInformationClass = 16 // UserExpiresInformation: Indicates the Buffer parameter is to be interpreted as // a USER_EXPIRES_INFORMATION structure (see section 2.2.6.4). UserInformationClassExpiresInformation UserInformationClass = 17 // UserInternal1Information: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_INTERNAL1_INFORMATION structure (see section 2.2.6.23). UserInformationClassInternal1Information UserInformationClass = 18 // UserParametersInformation: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_PARAMETERS_INFORMATION structure (see section 2.2.6.9). UserInformationClassParametersInformation UserInformationClass = 20 // UserAllInformation: Indicates the Buffer parameter is to be interpreted as a SAMPR_USER_ALL_INFORMATION // structure (see section 2.2.6.6). UserInformationClassAllInformation UserInformationClass = 21 // UserInternal4Information: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_INTERNAL4_INFORMATION structure (see section 2.2.6.24). UserInformationClassInternal4Information UserInformationClass = 23 // UserInternal5Information: Indicates the Buffer parameter is to be interpreted as // a SAMPR_USER_INTERNAL5_INFORMATION structure (see section 2.2.6.26). UserInformationClassInternal5Information UserInformationClass = 24 // UserInternal4InformationNew: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_INTERNAL4_INFORMATION_NEW structure (see section 2.2.6.25). UserInformationClassInternal4InformationNew UserInformationClass = 25 // UserInternal5InformationNew: Indicates the Buffer parameter is to be interpreted // as a SAMPR_USER_INTERNAL5_INFORMATION_NEW structure (see section 2.2.6.27). UserInformationClassInternal5InformationNew UserInformationClass = 26 )
func (UserInformationClass) String ¶
func (o UserInformationClass) String() string
type UserInternal1Information ¶
type UserInternal1Information struct { // EncryptedNtOwfPassword: An NT hash encrypted with the 16-byte SMB session key obtained // as specified in either section 3.1.2.4 or section 3.2.2.3. EncryptedNTOWFPassword *EncryptedNTOWFPassword `idl:"name:EncryptedNtOwfPassword" json:"encrypted_nt_owf_password"` // EncryptedLmOwfPassword: An LM hash encrypted with the 16-byte SMB session key obtained // as specified in either section 3.1.2.4 or section 3.2.2.3. EncryptedLMOWFPassword *EncryptedLMOWFPassword `idl:"name:EncryptedLmOwfPassword" json:"encrypted_lm_owf_password"` // NtPasswordPresent: If nonzero, indicates that the EncryptedNtOwfPassword value is // valid; otherwise, EncryptedNtOwfPassword MUST be ignored. NTPasswordPresent uint8 `idl:"name:NtPasswordPresent" json:"nt_password_present"` // LmPasswordPresent: If nonzero, indicates that the EncryptedLmOwfPassword value is // valid; otherwise, EncryptedLmOwfPassword MUST be ignored. LMPasswordPresent uint8 `idl:"name:LmPasswordPresent" json:"lm_password_present"` // PasswordExpired: See section 2.2.6.1. PasswordExpired uint8 `idl:"name:PasswordExpired" json:"password_expired"` }
UserInternal1Information structure represents SAMPR_USER_INTERNAL1_INFORMATION RPC structure.
The SAMPR_USER_INTERNAL1_INFORMATION structure holds the hashed form of a cleartext password.
func (*UserInternal1Information) MarshalNDR ¶
func (*UserInternal1Information) UnmarshalNDR ¶
type UserInternal4Information ¶
type UserInternal4Information struct { // I1: See section 2.2.6.6. I1 *UserAllInformation `idl:"name:I1" json:"i1"` // UserPassword: See section 2.2.6.21. UserPassword *EncryptedUserPassword `idl:"name:UserPassword" json:"user_password"` }
UserInternal4Information structure represents SAMPR_USER_INTERNAL4_INFORMATION RPC structure.
The SAMPR_USER_INTERNAL4_INFORMATION structure holds all attributes of a user, along with an encrypted password.
func (*UserInternal4Information) MarshalNDR ¶
func (*UserInternal4Information) UnmarshalNDR ¶
type UserInternal4InformationNew ¶
type UserInternal4InformationNew struct { // I1: See section 2.2.6.6. I1 *UserAllInformation `idl:"name:I1" json:"i1"` // UserPassword: See section 2.2.6.22. UserPassword *EncryptedUserPasswordNew `idl:"name:UserPassword" json:"user_password"` }
UserInternal4InformationNew structure represents SAMPR_USER_INTERNAL4_INFORMATION_NEW RPC structure.
The SAMPR_USER_INTERNAL4_INFORMATION_NEW structure holds all attributes of a user, along with an encrypted password. The encrypted password uses a salt to improve the encryption algorithm. See the specification for SAMPR_ENCRYPTED_USER_PASSWORD_NEW (section 2.2.6.22) for details on salt value selection.
func (*UserInternal4InformationNew) MarshalNDR ¶
func (*UserInternal4InformationNew) UnmarshalNDR ¶
type UserInternal5Information ¶
type UserInternal5Information struct { // UserPassword: A cleartext password, encrypted according to the specification for // SAMPR_ENCRYPTED_USER_PASSWORD, with the encryption key being the 16-byte SMB session // key obtained as specified in either section 3.1.2.4 or section 3.2.2.3. UserPassword *EncryptedUserPassword `idl:"name:UserPassword" json:"user_password"` // PasswordExpired: See section 2.2.6.1. PasswordExpired uint8 `idl:"name:PasswordExpired" json:"password_expired"` }
UserInternal5Information structure represents SAMPR_USER_INTERNAL5_INFORMATION RPC structure.
The SAMPR_USER_INTERNAL5_INFORMATION structure holds an encrypted password.
This structure is used to carry a new password for a particular account from the client to the server, encrypted in a way that protects it from disclosure or tampering while in transit.
func (*UserInternal5Information) MarshalNDR ¶
func (*UserInternal5Information) UnmarshalNDR ¶
type UserInternal5InformationNew ¶
type UserInternal5InformationNew struct { // UserPassword: A password, encrypted according to the specification for SAMPR_ENCRYPTED_USER_PASSWORD_NEW, // with the encryption key being the 16-byte SMB session key obtained as specified in // either section 3.1.2.4 or section 3.2.2.3. UserPassword *EncryptedUserPasswordNew `idl:"name:UserPassword" json:"user_password"` // PasswordExpired: See section 2.2.6.1. PasswordExpired uint8 `idl:"name:PasswordExpired" json:"password_expired"` }
UserInternal5InformationNew structure represents SAMPR_USER_INTERNAL5_INFORMATION_NEW RPC structure.
The SAMPR_USER_INTERNAL5_INFORMATION_NEW structure communicates an encrypted password. The encrypted password uses a salt to improve the encryption algorithm. See the specification for SAMPR_ENCRYPTED_USER_PASSWORD_NEW (section 2.2.6.22) for details on salt value selection.
This structure is used to carry a new password for a particular account from the client to the server, encrypted in a way that protects it from disclosure or tampering while in transit. A random value, a salt, is used by the client to seed the encryption routine; see section 2.2.6.22 for details.
func (*UserInternal5InformationNew) MarshalNDR ¶
func (*UserInternal5InformationNew) UnmarshalNDR ¶
type UserLogonHoursInformation ¶
type UserLogonHoursInformation struct {
LogonHours *LogonHours `idl:"name:LogonHours" json:"logon_hours"`
}
UserLogonHoursInformation structure represents SAMPR_USER_LOGON_HOURS_INFORMATION RPC structure.
The SAMPR_USER_LOGON_HOURS_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserLogonHoursInformation) MarshalNDR ¶
func (*UserLogonHoursInformation) UnmarshalNDR ¶
type UserLogonInformation ¶
type UserLogonInformation struct { UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` UserID uint32 `idl:"name:UserId" json:"user_id"` PrimaryGroupID uint32 `idl:"name:PrimaryGroupId" json:"primary_group_id"` HomeDirectory *dtyp.UnicodeString `idl:"name:HomeDirectory" json:"home_directory"` HomeDirectoryDrive *dtyp.UnicodeString `idl:"name:HomeDirectoryDrive" json:"home_directory_drive"` ScriptPath *dtyp.UnicodeString `idl:"name:ScriptPath" json:"script_path"` ProfilePath *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"` WorkStations *dtyp.UnicodeString `idl:"name:WorkStations" json:"work_stations"` LastLogon *OldLargeInteger `idl:"name:LastLogon" json:"last_logon"` LastLogoff *OldLargeInteger `idl:"name:LastLogoff" json:"last_logoff"` PasswordLastSet *OldLargeInteger `idl:"name:PasswordLastSet" json:"password_last_set"` PasswordCanChange *OldLargeInteger `idl:"name:PasswordCanChange" json:"password_can_change"` PasswordMustChange *OldLargeInteger `idl:"name:PasswordMustChange" json:"password_must_change"` LogonHours *LogonHours `idl:"name:LogonHours" json:"logon_hours"` BadPasswordCount uint16 `idl:"name:BadPasswordCount" json:"bad_password_count"` LogonCount uint16 `idl:"name:LogonCount" json:"logon_count"` UserAccountControl uint32 `idl:"name:UserAccountControl" json:"user_account_control"` }
UserLogonInformation structure represents SAMPR_USER_LOGON_INFORMATION RPC structure.
The SAMPR_USER_LOGON_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserLogonInformation) MarshalNDR ¶
func (*UserLogonInformation) UnmarshalNDR ¶
type UserNameInformation ¶
type UserNameInformation struct { UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` FullName *dtyp.UnicodeString `idl:"name:FullName" json:"full_name"` }
UserNameInformation structure represents SAMPR_USER_NAME_INFORMATION RPC structure.
The SAMPR_USER_NAME_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserNameInformation) MarshalNDR ¶
func (*UserNameInformation) UnmarshalNDR ¶
type UserParametersInformation ¶
type UserParametersInformation struct {
Parameters *dtyp.UnicodeString `idl:"name:Parameters" json:"parameters"`
}
UserParametersInformation structure represents SAMPR_USER_PARAMETERS_INFORMATION RPC structure.
The SAMPR_USER_PARAMETERS_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserParametersInformation) MarshalNDR ¶
func (*UserParametersInformation) UnmarshalNDR ¶
type UserPreferencesInformation ¶
type UserPreferencesInformation struct { UserComment *dtyp.UnicodeString `idl:"name:UserComment" json:"user_comment"` CountryCode uint16 `idl:"name:CountryCode" json:"country_code"` CodePage uint16 `idl:"name:CodePage" json:"code_page"` // contains filtered or unexported fields }
UserPreferencesInformation structure represents SAMPR_USER_PREFERENCES_INFORMATION RPC structure.
The SAMPR_USER_PREFERENCES_INFORMATION structure contains user fields.
func (*UserPreferencesInformation) MarshalNDR ¶
func (*UserPreferencesInformation) UnmarshalNDR ¶
type UserPrimaryGroupInformation ¶
type UserPrimaryGroupInformation struct {
PrimaryGroupID uint32 `idl:"name:PrimaryGroupId" json:"primary_group_id"`
}
UserPrimaryGroupInformation structure represents USER_PRIMARY_GROUP_INFORMATION RPC structure.
The USER_PRIMARY_GROUP_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserPrimaryGroupInformation) MarshalNDR ¶
func (*UserPrimaryGroupInformation) UnmarshalNDR ¶
type UserProfileInformation ¶
type UserProfileInformation struct {
ProfilePath *dtyp.UnicodeString `idl:"name:ProfilePath" json:"profile_path"`
}
UserProfileInformation structure represents SAMPR_USER_PROFILE_INFORMATION RPC structure.
The SAMPR_USER_PROFILE_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserProfileInformation) MarshalNDR ¶
func (*UserProfileInformation) UnmarshalNDR ¶
type UserProperties ¶ added in v1.0.2
type UserProperties struct { // Length (4 bytes): This value MUST be set to the length, in bytes, of the entire structure, // starting from the Reserved4 field. Length uint32 `idl:"name:Length" json:"length"` // PropertySignature (2 bytes): This field MUST be the value 0x50, in little-endian // byte order. This is an arbitrary value used to indicate whether the structure is // corrupt. That is, if this value is not 0x50 on read, the structure is considered // corrupt, processing MUST be aborted, and an error code MUST be returned. PropertySignature []byte `idl:"name:PropertySignature" json:"property_signature"` // PropertyCount (2 bytes): The number of USER_PROPERTY elements in the UserProperties // field. When there are zero USER_PROPERTY elements in the UserProperties field, this // field MUST be omitted; the resultant USER_PROPERTIES structure has a constant size // of 0x6F bytes. PropertyCount uint16 `idl:"name:PropertyCount" json:"property_count"` UserPropertiesRaw []byte `idl:"name:UserPropertiesRaw;size_is:((Length-100))" json:"user_properties_raw"` // UserProperties (variable): An array of PropertyCount USER_PROPERTY elements. UserProperties []*UserProperty `idl:"name:UserProperties;size_is:(PropertyCount)" json:"user_properties"` // contains filtered or unexported fields }
UserProperties structure represents USER_PROPERTIES RPC structure.
The USER_PROPERTIES structure defines the format of the supplementalCredentials attribute.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Length | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved2 | Reserved3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved4 (96 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | PropertySignature | PropertyCount (optional) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | UserProperties (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved5 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*UserProperties) AfterUnmarshalNDR ¶ added in v1.0.2
func (o *UserProperties) AfterUnmarshalNDR(ctx context.Context) error
func (*UserProperties) MarshalNDR ¶ added in v1.0.2
func (*UserProperties) UnmarshalNDR ¶ added in v1.0.2
type UserProperty ¶ added in v1.0.2
type UserProperty struct { // NameLength (2 bytes): The number of bytes, in little-endian byte order, of PropertyName. // The property name is located at an offset of zero bytes just following the Reserved // field. For more information, see the message processing section for supplementalCredentials // (section 3.1.1.8.11). NameLength uint16 `idl:"name:NameLength" json:"name_length"` // ValueLength (2 bytes): The number of bytes contained in PropertyValue. ValueLength uint16 `idl:"name:ValueLength" json:"value_length"` // PropertyName (variable): The name of this property as a UTF-16 encoded string. PropertyName string `idl:"name:PropertyName;size_is:((NameLength/2))" json:"property_name"` PropertyValueRaw []byte `idl:"name:PropertyValueRaw;size_is:(ValueLength)" json:"property_value_raw"` // PropertyValue (variable): The value of this property. The value MUST be hexadecimal-encoded // using an 8-bit character size, and the values '0' through '9' inclusive and 'a' through // 'f' inclusive (the specification of 'a' through 'f' is case-sensitive). PropertyValue *UserProperty_PropertyValue `idl:"name:PropertyValue;switch_is:PropertyName" json:"property_value"` // contains filtered or unexported fields }
UserProperty structure represents USER_PROPERTY RPC structure.
The USER_PROPERTY structure defines an array element that contains a single property name and value for the supplementalCredentials attribute.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | NameLength | ValueLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved | PropertyName (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | PropertyValue (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*UserProperty) MarshalNDR ¶ added in v1.0.2
func (*UserProperty) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue ¶ added in v1.0.2
type UserProperty_PropertyValue struct { // Types that are assignable to Value // // *UserProperty_PropertyValue_PackagesCredential // *UserProperty_PropertyValue_WDigestCredential // *UserProperty_PropertyValue_KerberosStoredCredential // *UserProperty_PropertyValue_KerberosStoredCredentialNew // *UserProperty_PropertyValue_NTLMStrongNTOWF // *UserProperty_PropertyValue_CleartextCredential // *UserProperty_PropertyValue_RawCredential Value is_UserProperty_PropertyValue `json:"value"` }
UserProperty_PropertyValue structure represents USER_PROPERTY union anonymous member.
The USER_PROPERTY structure defines an array element that contains a single property name and value for the supplementalCredentials attribute.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | NameLength | ValueLength | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved | PropertyName (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | PropertyValue (variable) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*UserProperty_PropertyValue) GetValue ¶ added in v1.0.2
func (o *UserProperty_PropertyValue) GetValue() any
func (*UserProperty_PropertyValue) MarshalUnionNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue) NDRLayout ¶ added in v1.0.2
func (o *UserProperty_PropertyValue) NDRLayout()
func (*UserProperty_PropertyValue) NDRSwitchValue ¶ added in v1.0.2
func (o *UserProperty_PropertyValue) NDRSwitchValue(sw string) string
func (*UserProperty_PropertyValue) UnmarshalUnionNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_CleartextCredential ¶ added in v1.0.2
type UserProperty_PropertyValue_CleartextCredential struct {
CleartextCredential *CleartextCredentials `idl:"name:CleartextCredential" json:"cleartext_credential"`
}
UserProperty_PropertyValue_CleartextCredential structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Primary:CLEARTEXT"
func (*UserProperty_PropertyValue_CleartextCredential) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_CleartextCredential) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_KerberosStoredCredential ¶ added in v1.0.2
type UserProperty_PropertyValue_KerberosStoredCredential struct {
KerberosStoredCredential *KerberosStoredCredential `idl:"name:KerbStoredCredential" json:"kerberos_stored_credential"`
}
UserProperty_PropertyValue_KerberosStoredCredential structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Primary:Kerberos"
func (*UserProperty_PropertyValue_KerberosStoredCredential) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_KerberosStoredCredential) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_KerberosStoredCredentialNew ¶ added in v1.0.2
type UserProperty_PropertyValue_KerberosStoredCredentialNew struct {
KerberosStoredCredentialNew *KerberosStoredCredentialNew `idl:"name:KerbStoredCredentialNew" json:"kerberos_stored_credential_new"`
}
UserProperty_PropertyValue_KerberosStoredCredentialNew structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Primary:Kerberos-Newer-Keys"
func (*UserProperty_PropertyValue_KerberosStoredCredentialNew) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_KerberosStoredCredentialNew) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_NTLMStrongNTOWF ¶ added in v1.0.2
type UserProperty_PropertyValue_NTLMStrongNTOWF struct {
NTLMStrongNTOWF *NTLMStrongNTOWF `idl:"name:NTLMStrongNTOWF" json:"ntlm_strong_ntowf"`
}
UserProperty_PropertyValue_NTLMStrongNTOWF structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Primary:NTLM-Strong-NTOWF"
func (*UserProperty_PropertyValue_NTLMStrongNTOWF) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_NTLMStrongNTOWF) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_PackagesCredential ¶ added in v1.0.2
type UserProperty_PropertyValue_PackagesCredential struct {
PackagesCredential *PackagesCredentials `idl:"name:PackagesCredential" json:"packages_credential"`
}
UserProperty_PropertyValue_PackagesCredential structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Packages"
func (*UserProperty_PropertyValue_PackagesCredential) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_PackagesCredential) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_RawCredential ¶ added in v1.0.2
type UserProperty_PropertyValue_RawCredential struct {
RawCredential *RawCredentials `idl:"name:RawCredential" json:"raw_credential"`
}
UserProperty_PropertyValue_RawCredential structure represents UserProperty_PropertyValue RPC default union arm.
func (*UserProperty_PropertyValue_RawCredential) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_RawCredential) UnmarshalNDR ¶ added in v1.0.2
type UserProperty_PropertyValue_WDigestCredential ¶ added in v1.0.2
type UserProperty_PropertyValue_WDigestCredential struct {
WDigestCredential *WdigestCredentials `idl:"name:WDigestCredential" json:"w_digest_credential"`
}
UserProperty_PropertyValue_WDigestCredential structure represents UserProperty_PropertyValue RPC union arm.
It has following labels: "Primary:WDigest"
func (*UserProperty_PropertyValue_WDigestCredential) MarshalNDR ¶ added in v1.0.2
func (*UserProperty_PropertyValue_WDigestCredential) UnmarshalNDR ¶ added in v1.0.2
type UserScriptInformation ¶
type UserScriptInformation struct {
ScriptPath *dtyp.UnicodeString `idl:"name:ScriptPath" json:"script_path"`
}
UserScriptInformation structure represents SAMPR_USER_SCRIPT_INFORMATION RPC structure.
The SAMPR_USER_SCRIPT_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserScriptInformation) MarshalNDR ¶
func (*UserScriptInformation) UnmarshalNDR ¶
type UserWorkstationsInformation ¶
type UserWorkstationsInformation struct {
WorkStations *dtyp.UnicodeString `idl:"name:WorkStations" json:"work_stations"`
}
UserWorkstationsInformation structure represents SAMPR_USER_WORKSTATIONS_INFORMATION RPC structure.
The SAMPR_USER_WORKSTATIONS_INFORMATION structure contains user fields.
For information on each field, see section 2.2.6.1.
func (*UserWorkstationsInformation) MarshalNDR ¶
func (*UserWorkstationsInformation) UnmarshalNDR ¶
type ValidatePasswordRequest ¶
type ValidatePasswordRequest struct { // ValidationType: The password policy validation requested. ValidationType PasswordPolicyValidationType `idl:"name:ValidationType" json:"validation_type"` // InputArg: The password-related material to validate. InputArg *SAMValidateInputArg `idl:"name:InputArg;switch_is:ValidationType" json:"input_arg"` }
ValidatePasswordRequest structure represents the SamrValidatePassword operation request
func (*ValidatePasswordRequest) MarshalNDR ¶
func (*ValidatePasswordRequest) UnmarshalNDR ¶
type ValidatePasswordResponse ¶
type ValidatePasswordResponse struct { // OutputArg: The result of the validation. OutputArg *SAMValidateOutputArg `idl:"name:OutputArg;switch_is:ValidationType" json:"output_arg"` // Return: The SamrValidatePassword return value. Return int32 `idl:"name:Return" json:"return"` }
ValidatePasswordResponse structure represents the SamrValidatePassword operation response
func (*ValidatePasswordResponse) MarshalNDR ¶
func (*ValidatePasswordResponse) UnmarshalNDR ¶
type WdigestCredentials ¶ added in v1.0.2
type WdigestCredentials struct { // Version (1 byte): This value MUST be set to 1. Version uint8 `idl:"name:Version" json:"version"` // NumberOfHashes (1 byte): This value MUST be set to 29 because there are 29 hashes // in the array. NumberOfHashes uint8 `idl:"name:NumberOfHashes" json:"number_of_hashes"` Hashes [][]byte `idl:"name:Hashes" json:"hashes"` // contains filtered or unexported fields }
WdigestCredentials structure represents WDIGEST_CREDENTIALS RPC structure.
The WDIGEST_CREDENTIALS structure defines the format of the Primary:WDigest property within the supplementalCredentials attribute. This structure is stored as a property value in a USER_PROPERTY structure.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved1 | Reserved2 | Version | NumberOfHashes | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Reserved3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash1 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash2 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash3 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash4 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash5 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash6 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash7 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash8 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash9 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash10 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash11 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash12 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash13 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash14 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash15 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash16 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash17 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash18 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash19 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash20 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash21 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash22 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash23 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash24 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash25 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash26 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash27 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash28 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Hash29 (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+