Documentation ¶
Index ¶
- Variables
- func LsarpcServerHandle(ctx context.Context, o LsarpcServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func NewLsarpcServerHandle(o LsarpcServer) dcerpc.ServerHandle
- func RegisterLsarpcServer(conn dcerpc.Conn, o LsarpcServer, opts ...dcerpc.Option)
- type ACL
- type CloseRequest
- type CloseResponse
- type GetUserNameRequest
- type GetUserNameResponse
- type Handle
- type LookupLevel
- type LookupNames2Request
- type LookupNames2Response
- type LookupNames3Request
- type LookupNames3Response
- type LookupNames4Request
- type LookupNames4Response
- type LookupNamesRequest
- type LookupNamesResponse
- type LookupSIDsRequest
- type LookupSIDsResponse
- type LookupSids2Request
- type LookupSids2Response
- type LookupSids3Request
- type LookupSids3Response
- type LsarpcClient
- type LsarpcServer
- type ObjectAttributes
- type OpenPolicy2Request
- type OpenPolicy2Response
- type OpenPolicyRequest
- type OpenPolicyResponse
- type ReferencedDomainList
- type SIDEnumBuffer
- type SIDInformation
- type SIDNameUse
- type SecurityDescriptor
- type SecurityImpersonationLevel
- type SecurityQualityOfService
- type String
- type TranslatedName
- type TranslatedNameEx
- type TranslatedNames
- type TranslatedNamesEx
- type TranslatedSID
- type TranslatedSIDEx
- type TranslatedSIDEx2
- type TranslatedSIDs
- type TranslatedSIDsEx
- type TranslatedSIDsEx2
- type TrustInformation
Constants ¶
This section is empty.
Variables ¶
var ( // Syntax UUID LsarpcSyntaxUUID = &uuid.UUID{TimeLow: 0x12345778, TimeMid: 0x1234, TimeHiAndVersion: 0xabcd, ClockSeqHiAndReserved: 0xef, ClockSeqLow: 0x0, Node: [6]uint8{0x1, 0x23, 0x45, 0x67, 0x89, 0xab}} // Syntax ID LsarpcSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: LsarpcSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0} )
var (
// import guard
GoPackage = "lsat"
)
Functions ¶
func LsarpcServerHandle ¶
func NewLsarpcServerHandle ¶
func NewLsarpcServerHandle(o LsarpcServer) dcerpc.ServerHandle
func RegisterLsarpcServer ¶
func RegisterLsarpcServer(conn dcerpc.Conn, o LsarpcServer, opts ...dcerpc.Option)
Types ¶
type ACL ¶
type ACL struct { ACLRevision uint8 `idl:"name:AclRevision" json:"acl_revision"` SBZ1 uint8 `idl:"name:Sbz1" json:"sbz1"` ACLSize uint16 `idl:"name:AclSize" json:"acl_size"` // contains filtered or unexported fields }
ACL structure represents LSAPR_ACL RPC structure.
The LSAPR_ACL structure defines the header of an access control list (ACL) as specified in [MS-LSAD] section 2.2.3.2.
Individual member semantics are specified in [MS-LSAD] section 2.2.3.2.
func (*ACL) NDRSizeInfo ¶
type CloseRequest ¶
type CloseRequest struct {
Object *Handle `idl:"name:ObjectHandle" json:"object"`
}
CloseRequest structure represents the LsarClose operation request
func (*CloseRequest) MarshalNDR ¶
func (*CloseRequest) UnmarshalNDR ¶
type CloseResponse ¶
type CloseResponse struct { Object *Handle `idl:"name:ObjectHandle" json:"object"` // Return: The LsarClose return value. Return int32 `idl:"name:Return" json:"return"` }
CloseResponse structure represents the LsarClose operation response
func (*CloseResponse) MarshalNDR ¶
func (*CloseResponse) UnmarshalNDR ¶
type GetUserNameRequest ¶
type GetUserNameRequest struct { // SystemName: This parameter has no effect on message processing in any environment. // It MUST be ignored. SystemName string `idl:"name:SystemName;string;pointer:unique" json:"system_name"` // UserName: On return, contains the name of the security principal that is making the // call. The string MUST be of the form sAMAccountName. On input, this parameter MUST // be ignored. The RPC_UNICODE_STRING structure is defined in [MS-DTYP] section 2.3.10. UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` // DomainName: On return, contains the domain name of the security principal that is // invoking the method. This string MUST be a NetBIOS name. On input, this parameter // MUST be ignored. DomainName *dtyp.UnicodeString `idl:"name:DomainName;pointer:unique" json:"domain_name"` }
GetUserNameRequest structure represents the LsarGetUserName operation request
func (*GetUserNameRequest) MarshalNDR ¶
func (*GetUserNameRequest) UnmarshalNDR ¶
type GetUserNameResponse ¶
type GetUserNameResponse struct { // UserName: On return, contains the name of the security principal that is making the // call. The string MUST be of the form sAMAccountName. On input, this parameter MUST // be ignored. The RPC_UNICODE_STRING structure is defined in [MS-DTYP] section 2.3.10. UserName *dtyp.UnicodeString `idl:"name:UserName" json:"user_name"` // DomainName: On return, contains the domain name of the security principal that is // invoking the method. This string MUST be a NetBIOS name. On input, this parameter // MUST be ignored. DomainName *dtyp.UnicodeString `idl:"name:DomainName;pointer:unique" json:"domain_name"` // Return: The LsarGetUserName return value. Return int32 `idl:"name:Return" json:"return"` }
GetUserNameResponse structure represents the LsarGetUserName operation response
func (*GetUserNameResponse) MarshalNDR ¶
func (*GetUserNameResponse) UnmarshalNDR ¶
type Handle ¶
type Handle dcetypes.ContextHandle
Handle structure represents LSAPR_HANDLE RPC structure.
func (*Handle) ContextHandle ¶
func (o *Handle) ContextHandle() *dcetypes.ContextHandle
type LookupLevel ¶
type LookupLevel uint16
LookupLevel type represents LSAP_LOOKUP_LEVEL RPC enumeration.
The LSAP_LOOKUP_LEVEL enumeration defines different scopes for searches during translation.<8>
var ( // LsapLookupWksta: SIDs MUST be searched in the views under the Security Principal // SID and Security Principal SID History columns in the following order: // // * Predefined Translation View, as specified in section 3.1.1.1.1 ( e09da72e-e6c9-4f91-aa64-68b0475719b6 // ). // // * Configurable Translation View, as specified in section 3.1.1.1.2 ( 252cb6b0-2edc-4403-9d75-5b2786ba859e // ). // // * Builtin Domain Principal View of the account database on the RPC server ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_ae65dac0-cd24-4e83-a946-6d1097b71553 // ) , as specified in section 3.1.1.1.3 ( 871df7fe-3470-4b69-9e59-15db70e8d4c6 ). // // * Account Domain View of account database on that machine, as specified in section // 3.1.1.1.6 ( 1777c886-7e47-40a0-979e-da0d76fd6d5c ). // // * If the machine is not joined to a domain ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca // ) , the search ends here. // // * If the machine is not a domain controller ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_76a05049-3531-4abd-aec8-30e19954b4bd // ) : the Account Domain View of the domain to which this machine is joined. // // * Forest View (section 3.1.1.1.9 ( c69c5834-39c0-430c-9e14-98f3fd7ccfde ) ) of the // forest ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_fd104241-4fb3-457c-b2c4-e0c18bb20b62 // ) of the domain to which this machine is joined, unless ClientRevision is 0x00000001 // and the machine is joined to a mixed mode domain, as specified in [MS-ADTS] ( ../ms-adts/d2435927-0999-4c62-8c6d-13ba31a52e1a // ) section 6.1.4.1 ( ../ms-adts/b40f9606-812d-4b76-924e-55a5401e2bc8 ). // // * Forest Views of trusted forests ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_3b76a71f-9697-4836-9c69-09899b23c21b // ) for the forest of the domain to which this machine is joined, unless ClientRevision // is 0x00000001 and the machine is joined to a mixed mode domain, as specified in [MS-ADTS] // section 6.1.4.1. // // * Account Domain Views of externally trusted domains ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_f2f00d47-6cf2-4b32-b8f7-b63e38e2e9c4 // ) for the domain to which this machine is joined. LookupLevelWorkstation LookupLevel = 1 // LsapLookupPDC: SIDs MUST be searched in the views under the Security Principal SID // and Security Principal SID History columns in the following order: // // * Account Domain View of the domain to which this machine is joined. // // * Forest View of the forest of the domain to which this machine is joined, unless // ClientRevision is 0x00000001 and the machine is joined to a mixed mode domain, as // specified in [MS-ADTS] section 6.1.4.1. // // * Forest Views of trusted forests for the forest of the domain to which this machine // is joined, unless ClientRevision is 0x00000001 and the machine is joined to a mixed // mode domain, as specified in [MS-ADTS] section 6.1.4.1. // // * Account Domain Views of externally trusted domains for the domain to which this // machine is joined. LookupLevelPDC LookupLevel = 2 // LsapLookupTDL: SIDs MUST be searched in the databases under the Security Principal // SID column in the following view: // // * Account Domain View of the domain NC ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_40a58fa4-953e-4cf3-96c8-57dba60237ef // ) for the domain to which this machine is joined. LookupLevelTDL LookupLevel = 3 // LsapLookupGC: SIDs MUST be searched in the databases under the Security Principal // SID and Security Principal SID History columns in the following view: // // * Forest View of the forest of the domain to which this machine is joined. LookupLevelGC LookupLevel = 4 // LsapLookupXForestReferral: SIDs MUST be searched in the databases under the Security // Principal SID and Security Principal SID History columns in the following views: // // * Forest Views of trusted forests for the forest of the domain to which this machine // is joined. LookupLevelXForestReferral LookupLevel = 5 // LsapLookupXForestResolve: SIDs MUST be searched in the databases under the Security // Principal SID and Security Principal SID History columns in the following view: // // * Forest View of the forest of the domain to which this machine is joined. LookupLevelXForestResolve LookupLevel = 6 // LsapLookupRODCReferralToFullDC: SIDs MUST be searched in the databases under the // Security Principal SID and Security Principal SID History columns in the following // order: // // * Forest Views of trusted forests for the forest of the domain to which this machine // is joined, unless ClientRevision is 0x00000001 and the machine is joined to a mixed // mode domain, as specified in [MS-ADTS] section 6.1.4.1. // // * Account Domain Views of externally trusted domains for the domain to which this // machine is joined. LookupLevelReadOnlyDCReferralToFullDC LookupLevel = 7 )
func (LookupLevel) String ¶
func (o LookupLevel) String() string
type LookupNames2Request ¶
type LookupNames2Request struct { // PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call. Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // Count: Number of security principal names to look up.<31> Count uint32 `idl:"name:Count" json:"count"` // Names: Contains the security principal names to translate, as specified in section // 3.1.4.5. Names []*dtyp.UnicodeString `idl:"name:Names;size_is:(Count)" json:"names"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx `idl:"name:TranslatedSids" json:"translated_sids"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter has no effect on message processing in // any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // LookupOptions: Flags that control the lookup operation. For possible values and their // meanings, see section 3.1.4.5. LookupOptions uint32 `idl:"name:LookupOptions" json:"lookup_options"` // ClientRevision: Version of the client, which implies the client's capabilities. For // possible values and their meanings, see section 3.1.4.5. ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` }
LookupNames2Request structure represents the LsarLookupNames2 operation request
func (*LookupNames2Request) MarshalNDR ¶
func (*LookupNames2Request) UnmarshalNDR ¶
type LookupNames2Response ¶
type LookupNames2Response struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx `idl:"name:TranslatedSids" json:"translated_sids"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter has no effect on message processing in // any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupNames2 return value. Return int32 `idl:"name:Return" json:"return"` }
LookupNames2Response structure represents the LsarLookupNames2 operation response
func (*LookupNames2Response) MarshalNDR ¶
func (*LookupNames2Response) UnmarshalNDR ¶
type LookupNames3Request ¶
type LookupNames3Request struct { // PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call. Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // Count: Number of security principal names to look up.<29> Count uint32 `idl:"name:Count" json:"count"` // Names: Contains the security principal names to translate, as specified in section // 3.1.4.5. Names []*dtyp.UnicodeString `idl:"name:Names;size_is:(Count)" json:"names"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx2 `idl:"name:TranslatedSids" json:"translated_sids"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter has no effect on message processing in // any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // LookupOptions: Flags that control the lookup operation. For possible values and their // meanings, see section 3.1.4.5. LookupOptions uint32 `idl:"name:LookupOptions" json:"lookup_options"` // ClientRevision: Version of the client, which implies the client's capabilities. For // possible values and their meanings, see section 3.1.4.5. ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` }
LookupNames3Request structure represents the LsarLookupNames3 operation request
func (*LookupNames3Request) MarshalNDR ¶
func (*LookupNames3Request) UnmarshalNDR ¶
type LookupNames3Response ¶
type LookupNames3Response struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx2 `idl:"name:TranslatedSids" json:"translated_sids"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter has no effect on message processing in // any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupNames3 return value. Return int32 `idl:"name:Return" json:"return"` }
LookupNames3Response structure represents the LsarLookupNames3 operation response
func (*LookupNames3Response) MarshalNDR ¶
func (*LookupNames3Response) UnmarshalNDR ¶
type LookupNames4Request ¶
type LookupNames4Request struct { // Count: Number of security principal names to look up.<24> Count uint32 `idl:"name:Count" json:"count"` // Names: Contains the security principal names to translate. The RPC_UNICODE_STRING // structure is defined in [MS-DTYP] section 2.3.10. // // * User principal names (UPNs) ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_9d606f55-b798-4def-bf96-97b878bb92c6 // ) , such as user_name@example.example.com. // // * Fully qualified account names based on either DNS or NetBIOS names. For example: // example.example.com\user_name or example\user_name, where the generalized form is // domain\user account name, and domain is either the fully qualified DNS name ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_102a36e2-f66f-49e2-bee3-558736b2ecd5 // ) or the NetBIOS name of the trusted domain ( e79f2680-84d9-4d34-bc78-5ab9e1255653#gt_f2f00d47-6cf2-4b32-b8f7-b63e38e2e9c4 // ). // // * Unqualified or isolated names, such as user_name. Names []*dtyp.UnicodeString `idl:"name:Names;size_is:(Count)" json:"names"` // TranslatedSids: On successful return, contains the corresponding SID form for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx2 `idl:"name:TranslatedSids" json:"translated_sids"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter is left as an input parameter for backward // compatibility and has no effect on message processing in any environment. It MUST // be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // LookupOptions: Flags specified by the caller that control the lookup operation. The // value MUST be one of the following. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Isolated names are searched for even when they are not on the local computer. | // +------------+----------------------------------------------------------------------------------+ // | 0x80000000 | Isolated names (except for user principal names (UPNs)) are searched for only on | // | | the local account database. UPNs are not searched for in any of the views. | // +------------+----------------------------------------------------------------------------------+ LookupOptions uint32 `idl:"name:LookupOptions" json:"lookup_options"` // ClientRevision: Version of the client, which implies the client's capabilities. The // value MUST be one of the following.<25> // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | The client does not understand DNS domain names and is not aware that it might | // | | be part of a forest. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000002 | The client understands DNS domain names and is aware that it might be part of | // | | a forest. Error codes returned can include STATUS_TRUSTED_DOMAIN_FAILURE and | // | | STATUS_TRUSTED_RELATIONSHIP_FAILURE, which are not returned for ClientRevision | // | | of 0x00000001. For more information on error codes, see [MS-ERREF]. | // +------------+----------------------------------------------------------------------------------+ ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` }
LookupNames4Request structure represents the LsarLookupNames4 operation request
func (*LookupNames4Request) MarshalNDR ¶
func (*LookupNames4Request) UnmarshalNDR ¶
type LookupNames4Response ¶
type LookupNames4Response struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedSids: On successful return, contains the corresponding SID form for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDsEx2 `idl:"name:TranslatedSids" json:"translated_sids"` // MappedCount: On successful return, contains the number of names that are translated // completely to the SID form. This parameter is left as an input parameter for backward // compatibility and has no effect on message processing in any environment. It MUST // be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupNames4 return value. Return int32 `idl:"name:Return" json:"return"` }
LookupNames4Response structure represents the LsarLookupNames4 operation response
func (*LookupNames4Response) MarshalNDR ¶
func (*LookupNames4Response) UnmarshalNDR ¶
type LookupNamesRequest ¶
type LookupNamesRequest struct { // PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call. Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // Count: Number of names in the Names array.<32> Count uint32 `idl:"name:Count" json:"count"` // Names: Contains the security principal names to translate, as specified in section // 3.1.4.5. Names []*dtyp.UnicodeString `idl:"name:Names;size_is:(Count)" json:"names"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDs `idl:"name:TranslatedSids" json:"translated_sids"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to their SID forms. This parameter has no effect on message processing // in any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` }
LookupNamesRequest structure represents the LsarLookupNames operation request
func (*LookupNamesRequest) MarshalNDR ¶
func (*LookupNamesRequest) UnmarshalNDR ¶
type LookupNamesResponse ¶
type LookupNamesResponse struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedSids: On successful return, contains the corresponding SID forms for security // principal names in the Names parameter. It MUST be ignored on input. TranslatedSIDs *TranslatedSIDs `idl:"name:TranslatedSids" json:"translated_sids"` // MappedCount: On successful return, contains the number of names that are translated // completely to their SID forms. This parameter has no effect on message processing // in any environment. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupNames return value. Return int32 `idl:"name:Return" json:"return"` }
LookupNamesResponse structure represents the LsarLookupNames operation response
func (*LookupNamesResponse) MarshalNDR ¶
func (*LookupNamesResponse) UnmarshalNDR ¶
type LookupSIDsRequest ¶
type LookupSIDsRequest struct { // PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call. Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // SidEnumBuffer: Contains the SIDs to be translated. The SIDs in this structure can // be that of users, groups, computers, Windows-defined well-known security principals, // or domains. SIDEnumBuffer *SIDEnumBuffer `idl:"name:SidEnumBuffer" json:"sid_enum_buffer"` // TranslatedNames: On successful return, contains the corresponding name form for security // principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNames `idl:"name:TranslatedNames" json:"translated_names"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to their Name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` }
LookupSIDsRequest structure represents the LsarLookupSids operation request
func (*LookupSIDsRequest) MarshalNDR ¶
func (*LookupSIDsRequest) UnmarshalNDR ¶
type LookupSIDsResponse ¶
type LookupSIDsResponse struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedNames: On successful return, contains the corresponding name form for security // principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNames `idl:"name:TranslatedNames" json:"translated_names"` // MappedCount: On successful return, contains the number of names that are translated // completely to their Name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupSids return value. Return int32 `idl:"name:Return" json:"return"` }
LookupSIDsResponse structure represents the LsarLookupSids operation response
func (*LookupSIDsResponse) MarshalNDR ¶
func (*LookupSIDsResponse) UnmarshalNDR ¶
type LookupSids2Request ¶
type LookupSids2Request struct { // PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call. Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // SidEnumBuffer: Contains the SIDs to be translated. The SIDs in this structure can // be that of users, groups, computers, Windows-defined well-known security principals, // or domains. SIDEnumBuffer *SIDEnumBuffer `idl:"name:SidEnumBuffer" json:"sid_enum_buffer"` // TranslatedNames: On successful return, contains the corresponding name forms for // security principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNamesEx `idl:"name:TranslatedNames" json:"translated_names"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On return, contains the number of names that are translated completely // to their name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // LookupOptions: Flags that control the lookup operation. This parameter is reserved // for future use and SHOULD<33> be set to 0. LookupOptions uint32 `idl:"name:LookupOptions" json:"lookup_options"` // ClientRevision: Version of the client, which implies the client's capabilities. For // possible values and their meanings, see section 3.1.4.5. ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` }
LookupSids2Request structure represents the LsarLookupSids2 operation request
func (*LookupSids2Request) MarshalNDR ¶
func (*LookupSids2Request) UnmarshalNDR ¶
type LookupSids2Response ¶
type LookupSids2Response struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedNames: On successful return, contains the corresponding name forms for // security principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNamesEx `idl:"name:TranslatedNames" json:"translated_names"` // MappedCount: On return, contains the number of names that are translated completely // to their name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupSids2 return value. Return int32 `idl:"name:Return" json:"return"` }
LookupSids2Response structure represents the LsarLookupSids2 operation response
func (*LookupSids2Response) MarshalNDR ¶
func (*LookupSids2Response) UnmarshalNDR ¶
type LookupSids3Request ¶
type LookupSids3Request struct { // SidEnumBuffer: Contains the SIDs to be translated. The SIDs in this structure can // be that of users, groups, computers, Windows-defined well-known security principals, // or domains. SIDEnumBuffer *SIDEnumBuffer `idl:"name:SidEnumBuffer" json:"sid_enum_buffer"` // TranslatedNames: On successful return, contains the corresponding name forms for // security principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNamesEx `idl:"name:TranslatedNames" json:"translated_names"` // LookupLevel: Specifies what scopes are to be used during translation, as specified // in section 2.2.16. LookupLevel LookupLevel `idl:"name:LookupLevel" json:"lookup_level"` // MappedCount: On successful return, contains the number of names that are translated // completely to their name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // LookupOptions: Flags that control the lookup operation. This parameter is reserved // for future use; it MUST be set to 0 and ignored on receipt. LookupOptions uint32 `idl:"name:LookupOptions" json:"lookup_options"` // ClientRevision: Version of the client, which implies the client's capabilities. For // possible values and their meanings, see section 3.1.4.5. ClientRevision uint32 `idl:"name:ClientRevision" json:"client_revision"` }
LookupSids3Request structure represents the LsarLookupSids3 operation request
func (*LookupSids3Request) MarshalNDR ¶
func (*LookupSids3Request) UnmarshalNDR ¶
type LookupSids3Response ¶
type LookupSids3Response struct { // ReferencedDomains: On successful return, contains the domain information for the // domain to which each security principal belongs. The domain information includes // a NetBIOS domain name and a domain SID for each entry in the list. ReferencedDomains *ReferencedDomainList `idl:"name:ReferencedDomains" json:"referenced_domains"` // TranslatedNames: On successful return, contains the corresponding name forms for // security principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input. TranslatedNames *TranslatedNamesEx `idl:"name:TranslatedNames" json:"translated_names"` // MappedCount: On successful return, contains the number of names that are translated // completely to their name forms. It MUST be ignored on input. MappedCount uint32 `idl:"name:MappedCount" json:"mapped_count"` // Return: The LsarLookupSids3 return value. Return int32 `idl:"name:Return" json:"return"` }
LookupSids3Response structure represents the LsarLookupSids3 operation response
func (*LookupSids3Response) MarshalNDR ¶
func (*LookupSids3Response) UnmarshalNDR ¶
type LsarpcClient ¶
type LsarpcClient interface { // The LsarClose method frees the resources held by a context handle that was opened // earlier. After response, the context handle is no longer usable, and any subsequent // uses of this handle MUST fail. Close(context.Context, *CloseRequest, ...dcerpc.CallOption) (*CloseResponse, error) // The LsarOpenPolicy method is exactly the same as LsarOpenPolicy2, except that the // SystemName parameter in this method contains only one character instead of a full // string. This is because its syntactical definition lacks the [string] RPC annotation // present in LsarOpenPolicy2, as specified in [C706]. RPC data types are specified // in [MS-RPCE] section 2.2.4.1. // // The SystemName parameter has no effect on message processing in any environment. // It MUST be ignored. OpenPolicy(context.Context, *OpenPolicyRequest, ...dcerpc.CallOption) (*OpenPolicyResponse, error) // The LsarLookupNames method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames(context.Context, *LookupNamesRequest, ...dcerpc.CallOption) (*LookupNamesResponse, error) // The LsarLookupSids method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupSIDs(context.Context, *LookupSIDsRequest, ...dcerpc.CallOption) (*LookupSIDsResponse, error) // The LsarOpenPolicy2 method opens a context handle to the RPC server. OpenPolicy2(context.Context, *OpenPolicy2Request, ...dcerpc.CallOption) (*OpenPolicy2Response, error) // The LsarGetUserName method returns the name and the domain name of the security principal // that is invoking the method. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +---------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +---------------------------------+---------------------------------------------------------------------+ // +---------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +---------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +---------------------------------+---------------------------------------------------------------------+ GetUserName(context.Context, *GetUserNameRequest, ...dcerpc.CallOption) (*GetUserNameResponse, error) // The LsarLookupSids2 method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupSids2(context.Context, *LookupSids2Request, ...dcerpc.CallOption) (*LookupSids2Response, error) // The LsarLookupNames2 method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of.<30> // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames2(context.Context, *LookupNames2Request, ...dcerpc.CallOption) (*LookupNames2Response, error) // The LsarLookupNames3 method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of.<28> // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames3(context.Context, *LookupNames3Request, ...dcerpc.CallOption) (*LookupNames3Response, error) // The LsarLookupSids3 method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +----------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +----------------------------------------+---------------------------------------------------------------------+ // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC00000DC STATUS_INVALID_SERVER_STATE | The RPC server is not a domain controller. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // // This message is valid only if the RPC server is a domain controller. The RPC server // MUST return STATUS_INVALID_SERVER_STATE in the return value if it is not a domain // controller. LookupSids3(context.Context, *LookupSids3Request, ...dcerpc.CallOption) (*LookupSids3Response, error) // The LsarLookupNames4 method translates a batch of security principal names to their // SID form. It also returns the domains of which these security principals are a part. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +----------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +----------------------------------------+---------------------------------------------------------------------+ // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC00000DC STATUS_INVALID_SERVER_STATE | The RPC server is not a domain controller. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // // This message is valid only if the RPC server is a domain controller. The RPC server // MUST return STATUS_INVALID_SERVER_STATE in the return value if it is not a domain // controller. LookupNames4(context.Context, *LookupNames4Request, ...dcerpc.CallOption) (*LookupNames4Response, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error }
lsarpc interface.
func NewLsarpcClient ¶
type LsarpcServer ¶
type LsarpcServer interface { // The LsarClose method frees the resources held by a context handle that was opened // earlier. After response, the context handle is no longer usable, and any subsequent // uses of this handle MUST fail. Close(context.Context, *CloseRequest) (*CloseResponse, error) // The LsarOpenPolicy method is exactly the same as LsarOpenPolicy2, except that the // SystemName parameter in this method contains only one character instead of a full // string. This is because its syntactical definition lacks the [string] RPC annotation // present in LsarOpenPolicy2, as specified in [C706]. RPC data types are specified // in [MS-RPCE] section 2.2.4.1. // // The SystemName parameter has no effect on message processing in any environment. // It MUST be ignored. OpenPolicy(context.Context, *OpenPolicyRequest) (*OpenPolicyResponse, error) // The LsarLookupNames method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames(context.Context, *LookupNamesRequest) (*LookupNamesResponse, error) // The LsarLookupSids method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupSIDs(context.Context, *LookupSIDsRequest) (*LookupSIDsResponse, error) // The LsarOpenPolicy2 method opens a context handle to the RPC server. OpenPolicy2(context.Context, *OpenPolicy2Request) (*OpenPolicy2Response, error) // The LsarGetUserName method returns the name and the domain name of the security principal // that is invoking the method. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +---------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +---------------------------------+---------------------------------------------------------------------+ // +---------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +---------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +---------------------------------+---------------------------------------------------------------------+ GetUserName(context.Context, *GetUserNameRequest) (*GetUserNameResponse, error) // The LsarLookupSids2 method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupSids2(context.Context, *LookupSids2Request) (*LookupSids2Response, error) // The LsarLookupNames2 method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of.<30> // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames2(context.Context, *LookupNames2Request) (*LookupNames2Response, error) // The LsarLookupNames3 method translates a batch of security principal names to their // SID form. It also returns the domains that these names are a part of.<28> // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +-------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +-------------------------------------+---------------------------------------------------------------------+ // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +-------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +-------------------------------------+---------------------------------------------------------------------+ LookupNames3(context.Context, *LookupNames3Request) (*LookupNames3Response, error) // The LsarLookupSids3 method translates a batch of security principal SIDs to their // name forms. It also returns the domains that these names are a part of. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +----------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +----------------------------------------+---------------------------------------------------------------------+ // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC00000DC STATUS_INVALID_SERVER_STATE | The RPC server is not a domain controller. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // // This message is valid only if the RPC server is a domain controller. The RPC server // MUST return STATUS_INVALID_SERVER_STATE in the return value if it is not a domain // controller. LookupSids3(context.Context, *LookupSids3Request) (*LookupSids3Response, error) // The LsarLookupNames4 method translates a batch of security principal names to their // SID form. It also returns the domains of which these security principals are a part. // // Return Values: The following table contains a summary of the return values that an // implementation MUST return, as specified by the message processing shown after the // table. // // +----------------------------------------+---------------------------------------------------------------------+ // | RETURN | | // | VALUE/CODE | DESCRIPTION | // | | | // +----------------------------------------+---------------------------------------------------------------------+ // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000000 STATUS_SUCCESS | The request was successfully completed. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0x00000107 STATUS_SOME_NOT_MAPPED | Some of the information to be translated has not been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC00000DC STATUS_INVALID_SERVER_STATE | The RPC server is not a domain controller. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000022 STATUS_ACCESS_DENIED | The caller does not have the permissions to perform this operation. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC000000D STATUS_INVALID_PARAMETER | One of the supplied parameters was invalid. | // +----------------------------------------+---------------------------------------------------------------------+ // | 0xC0000073 STATUS_NONE_MAPPED | None of the information to be translated has been translated. | // +----------------------------------------+---------------------------------------------------------------------+ // // This message is valid only if the RPC server is a domain controller. The RPC server // MUST return STATUS_INVALID_SERVER_STATE in the return value if it is not a domain // controller. LookupNames4(context.Context, *LookupNames4Request) (*LookupNames4Response, error) }
lsarpc server interface.
type ObjectAttributes ¶
type ObjectAttributes struct { Length uint32 `idl:"name:Length" json:"length"` RootDirectory []byte `idl:"name:RootDirectory" json:"root_directory"` ObjectName *String `idl:"name:ObjectName" json:"object_name"` Attributes uint32 `idl:"name:Attributes" json:"attributes"` SecurityDescriptor *SecurityDescriptor `idl:"name:SecurityDescriptor" json:"security_descriptor"` SecurityQualityOfService *SecurityQualityOfService `idl:"name:SecurityQualityOfService" json:"security_quality_of_service"` }
ObjectAttributes structure represents LSAPR_OBJECT_ATTRIBUTES RPC structure.
The LSAPR_OBJECT_ATTRIBUTES structure specifies an object and its properties as specified in [MS-LSAD] section 2.2.2.4.
Individual member semantics are specified in [MS-LSAD] section 2.2.2.4.
func (*ObjectAttributes) MarshalNDR ¶
func (*ObjectAttributes) UnmarshalNDR ¶
type OpenPolicy2Request ¶
type OpenPolicy2Request struct { SystemName string `idl:"name:SystemName;string;pointer:unique" json:"system_name"` ObjectAttributes *ObjectAttributes `idl:"name:ObjectAttributes" json:"object_attributes"` DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
OpenPolicy2Request structure represents the LsarOpenPolicy2 operation request
func (*OpenPolicy2Request) MarshalNDR ¶
func (*OpenPolicy2Request) UnmarshalNDR ¶
type OpenPolicy2Response ¶
type OpenPolicy2Response struct { Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // Return: The LsarOpenPolicy2 return value. Return int32 `idl:"name:Return" json:"return"` }
OpenPolicy2Response structure represents the LsarOpenPolicy2 operation response
func (*OpenPolicy2Response) MarshalNDR ¶
func (*OpenPolicy2Response) UnmarshalNDR ¶
type OpenPolicyRequest ¶
type OpenPolicyRequest struct { SystemName string `idl:"name:SystemName;pointer:unique" json:"system_name"` ObjectAttributes *ObjectAttributes `idl:"name:ObjectAttributes" json:"object_attributes"` DesiredAccess uint32 `idl:"name:DesiredAccess" json:"desired_access"` }
OpenPolicyRequest structure represents the LsarOpenPolicy operation request
func (*OpenPolicyRequest) MarshalNDR ¶
func (*OpenPolicyRequest) UnmarshalNDR ¶
type OpenPolicyResponse ¶
type OpenPolicyResponse struct { Policy *Handle `idl:"name:PolicyHandle" json:"policy"` // Return: The LsarOpenPolicy return value. Return int32 `idl:"name:Return" json:"return"` }
OpenPolicyResponse structure represents the LsarOpenPolicy operation response
func (*OpenPolicyResponse) MarshalNDR ¶
func (*OpenPolicyResponse) UnmarshalNDR ¶
type ReferencedDomainList ¶
type ReferencedDomainList struct { // Entries: Contains the number of domains referenced in the lookup operation. Entries uint32 `idl:"name:Entries" json:"entries"` // Domains: Contains a set of structures that identify domains. If the Entries field // in this structure is not 0, this field MUST be non-NULL. If Entries is 0, this field // MUST be ignored. Domains []*TrustInformation `idl:"name:Domains;size_is:(Entries)" json:"domains"` // MaxEntries: This field MUST be ignored. The content is unspecified, and no requirements // are placed on its value since it is never used. MaxEntries uint32 `idl:"name:MaxEntries" json:"max_entries"` }
ReferencedDomainList structure represents LSAPR_REFERENCED_DOMAIN_LIST RPC structure.
The LSAPR_REFERENCED_DOMAIN_LIST structure contains information about the domains referenced in a lookup operation.
func (*ReferencedDomainList) MarshalNDR ¶
func (*ReferencedDomainList) UnmarshalNDR ¶
type SIDEnumBuffer ¶
type SIDEnumBuffer struct { // Entries: Contains the number of translated SIDs.<9> Entries uint32 `idl:"name:Entries" json:"entries"` // SidInfo: Contains a set of structures that contain SIDs, as specified in section // 2.2.17. If the Entries field in this structure is not 0, this field MUST be non-NULL. // If Entries is 0, this field MUST be ignored. SIDInfo []*SIDInformation `idl:"name:SidInfo;size_is:(Entries)" json:"sid_info"` }
SIDEnumBuffer structure represents LSAPR_SID_ENUM_BUFFER RPC structure.
The LSAPR_SID_ENUM_BUFFER structure defines a set of SIDs. This structure is used during a translation request for a batch of SIDs to names.
func (*SIDEnumBuffer) MarshalNDR ¶
func (*SIDEnumBuffer) UnmarshalNDR ¶
type SIDInformation ¶
type SIDInformation struct { // Sid: Contains the PRPC_SID value, as specified in [MS-DTYP] section 2.4.2.3. This // field MUST be non-NULL. SID *dtyp.SID `idl:"name:Sid" json:"sid"` }
SIDInformation structure represents LSAPR_SID_INFORMATION RPC structure.
The LSAPR_SID_INFORMATION structure contains a PRPC_SID value.
func (*SIDInformation) MarshalNDR ¶
func (*SIDInformation) UnmarshalNDR ¶
type SIDNameUse ¶
type SIDNameUse uint16
SIDNameUse type represents SID_NAME_USE RPC enumeration.
The SID_NAME_USE enumeration contains values that specify the type of an account.<6>
The SidTypeInvalid and SidTypeComputer enumeration values are not used in this protocol. Usage information on the remaining enumeration values is specified in section 3.1.1.
var ( SIDNameUseTypeUser SIDNameUse = 1 SIDNameUseTypeGroup SIDNameUse = 2 SIDNameUseTypeDomain SIDNameUse = 3 SIDNameUseTypeAlias SIDNameUse = 4 SIDNameUseTypeWellKnownGroup SIDNameUse = 5 SIDNameUseTypeDeletedAccount SIDNameUse = 6 SIDNameUseTypeInvalid SIDNameUse = 7 SIDNameUseTypeUnknown SIDNameUse = 8 SIDNameUseTypeComputer SIDNameUse = 9 SIDNameUseTypeLabel SIDNameUse = 10 )
func (SIDNameUse) String ¶
func (o SIDNameUse) String() string
type SecurityDescriptor ¶
type SecurityDescriptor struct { Revision uint8 `idl:"name:Revision" json:"revision"` SBZ1 uint8 `idl:"name:Sbz1" json:"sbz1"` Control uint16 `idl:"name:Control" json:"control"` Owner *dtyp.SID `idl:"name:Owner" json:"owner"` Group *dtyp.SID `idl:"name:Group" json:"group"` SACL *ACL `idl:"name:Sacl" json:"sacl"` DACL *ACL `idl:"name:Dacl" json:"dacl"` }
SecurityDescriptor structure represents LSAPR_SECURITY_DESCRIPTOR RPC structure.
The LSAPR_SECURITY_DESCRIPTOR structure defines an object's security descriptor as specified in [MS-LSAD] section 2.2.3.4.
Individual member semantics are specified in [MS-LSAD] section 2.2.3.4.
func (*SecurityDescriptor) MarshalNDR ¶
func (*SecurityDescriptor) UnmarshalNDR ¶
type SecurityImpersonationLevel ¶
type SecurityImpersonationLevel uint16
SecurityImpersonationLevel type represents SECURITY_IMPERSONATION_LEVEL RPC enumeration.
The SECURITY_IMPERSONATION_LEVEL enumeration defines a set of values that specify security impersonation levels as specified in [MS-LSAD] section 2.2.3.5.
Individual value semantics are specified in [MS-LSAD] section 2.2.3.5.
var ( SecurityImpersonationLevelAnonymous SecurityImpersonationLevel = 0 SecurityImpersonationLevelIdentification SecurityImpersonationLevel = 1 SecurityImpersonationLevelImpersonation SecurityImpersonationLevel = 2 SecurityImpersonationLevelDelegation SecurityImpersonationLevel = 3 )
func (SecurityImpersonationLevel) String ¶
func (o SecurityImpersonationLevel) String() string
type SecurityQualityOfService ¶
type SecurityQualityOfService struct { Length uint32 `idl:"name:Length" json:"length"` ImpersonationLevel SecurityImpersonationLevel `idl:"name:ImpersonationLevel" json:"impersonation_level"` ContextTrackingMode uint8 `idl:"name:ContextTrackingMode" json:"context_tracking_mode"` EffectiveOnly uint8 `idl:"name:EffectiveOnly" json:"effective_only"` }
SecurityQualityOfService structure represents SECURITY_QUALITY_OF_SERVICE RPC structure.
The SECURITY_QUALITY_OF_SERVICE structure defines information used to support client impersonation as specified in [MS-LSAD] section 2.2.3.7.
Individual member semantics are specified in [MS-LSAD] section 2.2.3.7.
func (*SecurityQualityOfService) MarshalNDR ¶
func (*SecurityQualityOfService) UnmarshalNDR ¶
type String ¶
type String struct { Length uint16 `idl:"name:Length" json:"length"` MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"` Buffer []byte `idl:"name:Buffer;size_is:(MaximumLength);length_is:(Length)" json:"buffer"` }
String structure represents STRING RPC structure.
The STRING structure defines a string along with the number of characters in the string, as specified in [MS-LSAD] section 2.2.3.1.
Individual member semantics are specified in [MS-LSAD] section 2.2.3.1.
type TranslatedName ¶
type TranslatedName struct { // Use: Defines the type of the security principal, as specified in section 2.2.13. Use SIDNameUse `idl:"name:Use" json:"use"` // Name: Contains the name of the security principal, with syntaxes described in section // 3.1.4.5. The RPC_UNICODE_STRING structure is defined in [MS-DTYP] section 2.3.10. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` // DomainIndex: Contains the index into the corresponding LSAPR_REFERENCED_DOMAIN_LIST // structure that specifies the domain that the security principal is in. A DomainIndex // value of -1 MUST be used to specify that there are no corresponding domains. Other // negative values MUST NOT be used. DomainIndex int32 `idl:"name:DomainIndex" json:"domain_index"` }
TranslatedName structure represents LSAPR_TRANSLATED_NAME RPC structure.
The LSAPR_TRANSLATED_NAME structure contains information about a security principal, along with the human-readable identifier for that security principal. This structure MUST always be accompanied by an LSAPR_REFERENCED_DOMAIN_LIST structure when DomainIndex is not -1, which contains the domain information for the security principals.
func (*TranslatedName) MarshalNDR ¶
func (*TranslatedName) UnmarshalNDR ¶
type TranslatedNameEx ¶
type TranslatedNameEx struct { // Use: Defines the type of the security principal, as specified in section 2.2.13. Use SIDNameUse `idl:"name:Use" json:"use"` // Name: Contains the name of the security principal. The RPC_UNICODE_STRING structure // is defined in [MS-DTYP] section 2.3.10. Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` // DomainIndex: Contains the index into the corresponding LSAPR_REFERENCED_DOMAIN_LIST // structure that specifies the domain that the security principal is in. A DomainIndex // value of -1 MUST be used to specify that there are no corresponding domains. Other // negative values MUST NOT be used. DomainIndex int32 `idl:"name:DomainIndex" json:"domain_index"` // Flags: Contains bitmapped values that define the properties of this translation. // The value MUST be the logical OR of zero or more of the following flags. These flags // communicate the following additional information about how the SID was resolved. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | The SID was not found by matching against the security principal SID property. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000002 | The SID might be found by traversing a forest trust. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000004 | The SID was found by matching against the last database view, defined in section | // | | 3.1.1.1.1. | // +------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` }
TranslatedNameEx structure represents LSAPR_TRANSLATED_NAME_EX RPC structure.
The LSAPR_TRANSLATED_NAME_EX structure contains information about a security principal along with the human-readable identifier for that security principal. This structure MUST always be accompanied by an LSAPR_REFERENCED_DOMAIN_LIST structure when DomainIndex is not -1, which contains the domain information for the security principals.
func (*TranslatedNameEx) MarshalNDR ¶
func (*TranslatedNameEx) UnmarshalNDR ¶
type TranslatedNames ¶
type TranslatedNames struct { // Entries: Contains the number of translated names.<10> Entries uint32 `idl:"name:Entries" json:"entries"` // Names: Contains a set of translated names, as specified in section 2.2.19. If the // Entries field in this structure is not 0, this field MUST be non-NULL. If Entries // is 0, this field MUST be ignored. Names []*TranslatedName `idl:"name:Names;size_is:(Entries)" json:"names"` }
TranslatedNames structure represents LSAPR_TRANSLATED_NAMES RPC structure.
The LSAPR_TRANSLATED_NAMES structure defines a set of translated names. This is used in the response to a translation request from SIDs to names.
func (*TranslatedNames) MarshalNDR ¶
func (*TranslatedNames) UnmarshalNDR ¶
type TranslatedNamesEx ¶
type TranslatedNamesEx struct { // Entries: Contains the number of translated names.<12> Entries uint32 `idl:"name:Entries" json:"entries"` // Names: Contains a set of structures that contain translated names, as specified // in section 2.2.21. If the Entries field in this structure is not 0, this field MUST // be non-NULL. If Entries is 0, this field MUST be ignored. Names []*TranslatedNameEx `idl:"name:Names;size_is:(Entries)" json:"names"` }
TranslatedNamesEx structure represents LSAPR_TRANSLATED_NAMES_EX RPC structure.
The LSAPR_TRANSLATED_NAMES_EX structure contains a set of translated names.
func (*TranslatedNamesEx) MarshalNDR ¶
func (*TranslatedNamesEx) UnmarshalNDR ¶
type TranslatedSID ¶
type TranslatedSID struct { // Use: Defines the type of the security principal, as specified in section 2.2.13. Use SIDNameUse `idl:"name:Use" json:"use"` // RelativeId: Contains the relative identifier (RID) of the security principal with // respect to its domain. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // DomainIndex: Contains the index into an LSAPR_REFERENCED_DOMAIN_LIST structure that // specifies the domain that the security principal is in. A DomainIndex value of -1 // MUST be used to specify that there are no corresponding domains. Other negative values // MUST NOT be returned. DomainIndex int32 `idl:"name:DomainIndex" json:"domain_index"` }
TranslatedSID structure represents LSA_TRANSLATED_SID RPC structure.
The LSA_TRANSLATED_SID structure contains information about a security principal after translation from a name to a SID. This structure MUST always be accompanied by an LSAPR_REFERENCED_DOMAIN_LIST structure when DomainIndex is not -1.
func (*TranslatedSID) MarshalNDR ¶
func (*TranslatedSID) UnmarshalNDR ¶
type TranslatedSIDEx ¶
type TranslatedSIDEx struct { // Use: Defines the type of the security principal, as specified in section 2.2.13. Use SIDNameUse `idl:"name:Use" json:"use"` // RelativeId: Contains the relative identifier (RID) of the security principal with // respect to its domain. RelativeID uint32 `idl:"name:RelativeId" json:"relative_id"` // DomainIndex: Contains the index into the corresponding LSAPR_REFERENCED_DOMAIN_LIST // structure that specifies the domain that the security principal is in. A DomainIndex // value of -1 MUST be used to specify that there are no corresponding domains. Other // negative values MUST NOT be used. DomainIndex int32 `idl:"name:DomainIndex" json:"domain_index"` // Flags: Contains bitmapped values that define the properties of this translation. // The value MUST be the logical OR of zero or more of the following flags. These flags // communicate additional information on how the name was resolved. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | The name was not found by matching against the Security Principal Name property. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000002 | The name might be found by traversing a forest trust. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000004 | The name was found by matching against the last database view, as defined in | // | | section 3.1.1.1.1. | // +------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` }
TranslatedSIDEx structure represents LSAPR_TRANSLATED_SID_EX RPC structure.
The LSAPR_TRANSLATED_SID_EX structure contains information about a security principal after it has been translated into a SID. This structure MUST always be accompanied by an LSAPR_REFERENCED_DOMAIN_LIST structure when DomainIndex is not -1, which contains the domain information for the security principal.
This structure differs from LSA_TRANSLATED_SID only in that a new Flags field is added.
func (*TranslatedSIDEx) MarshalNDR ¶
func (*TranslatedSIDEx) UnmarshalNDR ¶
type TranslatedSIDEx2 ¶
type TranslatedSIDEx2 struct { // Use: Defines the type of the security principal, as specified in section 2.2.13. Use SIDNameUse `idl:"name:Use" json:"use"` // Sid: Contains the SID ([MS-DTYP] section 2.4.2.3) of the security principal. This // field MUST be treated as a [ref] pointer and hence MUST be non-NULL. SID *dtyp.SID `idl:"name:Sid" json:"sid"` // DomainIndex: Contains the index into an LSAPR_REFERENCED_DOMAIN_LIST structure that // specifies the domain that the security principal is in. A DomainIndex value of -1 // MUST be used to specify that there are no corresponding domains. Other negative values // MUST NOT be used. DomainIndex int32 `idl:"name:DomainIndex" json:"domain_index"` // Flags: Contains bitmapped values that define the properties of this translation. // The value MUST be the logical OR of zero or more of the following flags. These flags // communicate additional information on how the name was resolved. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | The name was not found by matching against the Security Principal Name property. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000002 | The name might be found by traversing a forest trust. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000004 | The name was found by matching against the last database view (see section | // | | 3.1.1.1.1). | // +------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:Flags" json:"flags"` }
TranslatedSIDEx2 structure represents LSAPR_TRANSLATED_SID_EX2 RPC structure.
The LSAPR_TRANSLATED_SID_EX2 structure contains information about a security principal after it has been translated into a SID. This structure MUST always be accompanied by an LSAPR_REFERENCED_DOMAIN_LIST structure when DomainIndex is not -1.
This structure differs from LSAPR_TRANSLATED_SID_EX only in that a SID is returned instead of a RID.
func (*TranslatedSIDEx2) MarshalNDR ¶
func (*TranslatedSIDEx2) UnmarshalNDR ¶
type TranslatedSIDs ¶
type TranslatedSIDs struct { // Entries: Contains the number of translated SIDs.<7> Entries uint32 `idl:"name:Entries" json:"entries"` // Sids: Contains a set of structures that contain translated SIDs. If the Entries // field in this structure is not 0, this field MUST be non-NULL. If Entries is 0, this // field MUST be NULL. SIDs []*TranslatedSID `idl:"name:Sids;size_is:(Entries)" json:"sids"` }
TranslatedSIDs structure represents LSAPR_TRANSLATED_SIDS RPC structure.
The LSAPR_TRANSLATED_SIDS structure defines a set of translated SIDs.
func (*TranslatedSIDs) MarshalNDR ¶
func (*TranslatedSIDs) UnmarshalNDR ¶
type TranslatedSIDsEx ¶
type TranslatedSIDsEx struct { // Entries: Contains the number of translated SIDs.<14> Entries uint32 `idl:"name:Entries" json:"entries"` // Sids: Contains a set of structures that contain translated SIDs, as specified in // section 2.2.23. If the Entries field in this structure is not 0, this field MUST // be non-NULL. If Entries is 0, this field MUST be NULL. SIDs []*TranslatedSIDEx `idl:"name:Sids;size_is:(Entries)" json:"sids"` }
TranslatedSIDsEx structure represents LSAPR_TRANSLATED_SIDS_EX RPC structure.
The LSAPR_TRANSLATED_SIDS_EX structure contains a set of translated SIDs.
func (*TranslatedSIDsEx) MarshalNDR ¶
func (*TranslatedSIDsEx) UnmarshalNDR ¶
type TranslatedSIDsEx2 ¶
type TranslatedSIDsEx2 struct { // Entries: Contains the number of translated SIDs.<16> Entries uint32 `idl:"name:Entries" json:"entries"` // Sids: Contains a set of structures that define translated SIDs, as specified in // section 2.2.25. If the Entries field in this structure is not 0, this field MUST // be non-NULL. If Entries is 0, this field MUST be NULL. SIDs []*TranslatedSIDEx2 `idl:"name:Sids;size_is:(Entries)" json:"sids"` }
TranslatedSIDsEx2 structure represents LSAPR_TRANSLATED_SIDS_EX2 RPC structure.
The LSAPR_TRANSLATED_SIDS_EX2 structure contains a set of translated SIDs.
func (*TranslatedSIDsEx2) MarshalNDR ¶
func (*TranslatedSIDsEx2) UnmarshalNDR ¶
type TrustInformation ¶
type TrustInformation struct { Name *dtyp.UnicodeString `idl:"name:Name" json:"name"` SID *dtyp.SID `idl:"name:Sid" json:"sid"` }
TrustInformation structure represents LSAPR_TRUST_INFORMATION RPC structure.
The LSAPR_TRUST_INFORMATION structure contains information about a domain.
Individual member semantics are specified in [MS-LSAD] section 2.2.7.1.