Documentation ¶
Overview ¶
The rpcl package implements the RPCL client protocol.
Introduction ¶
The Remote Procedure Call Location Services Extensions is a legacy protocol that has been deprecated and is not used by Microsoft. Implementers should use the DCE-based RPC Location Services capabilities in [C706].
The Remote Procedure Call Location Services Extensions is a set of extensions/restrictions to the distributed computing environment (DCE) remote procedure call (RPC) Location Services specified in [C706]. These extensions add new capabilities to the DCE RPC Location Services Protocol.
This document specifies a set of extensions and restrictions to the DCE RPC Location Services specification as specified in [C706].
Overview ¶
This specification extends the DCE RPC Location Services specification defined in the section "Name Service Interface" in Part 2 of [C706]. These extensions add new capabilities to the DCE RPC Location Services Protocol and, in some cases, place additional restrictions upon it. This specification adheres to the abstract data model as specified in [C706] Part 2, but an implementation of this specification will not interoperate with an implementation of [C706] Part 2.
This document refers to the Windows implementation of the DCE RPC Location services protocol as "LocToLoc".
This document includes the following:
* An extension to provide RPC Location Services functionality in an environment where a centrally accessible directory service like Active Directory ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_e467d927-17bf-49c9-98d1-96ddf61ddd90 ) directory service is not available. For more details, see Nondirectory mode in section 1.3.2 ( dab3af12-2796-4ddf-8313-acba3e7e0dc7 ).
* An extension defining the implementation of the RPC Location Services specification in an Active Directory environment. For more details, see Directory-only mode in section 1.3.2.
* An extension enabling interoperable RPC Location Service functionality between locators running outside an Active Directory environment, and locators running inside an Active Directory environment. For more details, see Directory mode in section 1.3.2.
* An extension of the syntax for name service entries ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_6cfe4abe-94bd-43b6-b666-3618d9093373 ) to include a domain ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca ) name. For more details, see section 2.2.2 ( 99becf64-89ed-4bd8-adf0-470add859d15 ).
* A restriction requiring profile, group, and server attributes to be defined on separate name service entries. These attributes are as specified in section "Name Service Attributes" in [C706]. For more details, see section 1.3.3 ( e4d192da-2bf6-4649-9f9d-2b85531f614a ).
* A restriction requiring clients to be members of an Active Directory domain to support persistently storing exported name service entries. For more details, see section 1.3.2.
* A restriction requiring clients to be members of an Active Directory domain to support profile and group attributes. For more details, see sections 3.2.1 ( 0e5a2e72-15b0-427f-98c7-52da389e734e ) , 3.3.3 ( b265805b-4609-4087-a8eb-e583116a912c ).
Index ¶
Constants ¶
This section is empty.
Variables ¶
var (
// import guard
GoPackage = "rpcl"
)
Functions ¶
This section is empty.
Types ¶
type Binding ¶
type Binding struct { // string: A Unicode [UNICODE] string that contains a string binding. For more information, // see section "String Bindings" in [C706] Part 2. String string `idl:"name:string" json:"string"` // entry_name_syntax: An unsigned 32-bit integer specifying the syntax of the entry_name // field. This value MUST be RPC_C_NS_SYNTAX_DCE. EntryNameSyntax uint32 `idl:"name:entry_name_syntax" json:"entry_name_syntax"` // entry_name: A Unicode [UNICODE] string specifying the entry name of the name service // entry, using the syntax identified by the entry_name_syntax parameter as specified // in section 2.2.2. EntryName string `idl:"name:entry_name" json:"entry_name"` }
Binding structure represents NSI_BINDING_T RPC structure.
The NSI_BINDING_T type defines an association of a binding with a server entry.
type BindingVector ¶
type BindingVector struct { // count: MUST specify the number of NSI_BINDING_T elements in the binding array. Count uint32 `idl:"name:count" json:"count"` // binding: An array of binding information entries. Binding []*Binding `idl:"name:binding;size_is:(count)" json:"binding"` }
BindingVector structure represents NSI_BINDING_VECTOR_T RPC structure.
The NSI_BINDING_VECTOR_T type is defined to hold an array of binding information entries.
func (*BindingVector) MarshalNDR ¶
func (*BindingVector) NDRSizeInfo ¶
func (o *BindingVector) NDRSizeInfo() []uint64
func (*BindingVector) UnmarshalNDR ¶
type Context ¶
type Context dcetypes.ContextHandle
Context structure represents NSI_NS_HANDLE_T RPC structure.
func (*Context) ContextHandle ¶
func (o *Context) ContextHandle() *dcetypes.ContextHandle
type SyntaxID ¶
type SyntaxID struct { // SyntaxGUID (16 bytes): As specified in [MS-RPCE] section 2.2.2.7. SyntaxGUID *dtyp.GUID `idl:"name:SyntaxGUID" json:"syntax_guid"` SyntaxVersion *Version `idl:"name:SyntaxVersion" json:"syntax_version"` }
SyntaxID structure represents RPC_SYNTAX_IDENTIFIER RPC structure.
This structure MUST contain a GUID and version information ([MS-RPCE] section 2.2.2.7). It is identical to the RPC_SYNTAX_IDENTIFIER structure used in the LocToLoc interface in section 3.1.4. This structure is used to represent the following:
* Identifier and version of an interface.
* Identifier and version of transfer syntax ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_01216ea7-ac8a-4cc8-9d19-b901bc424c09 ) for an interface.
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 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 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | SyntaxGUID (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | SyntaxVersion.MajorVersion | SyntaxVersion.MinorVersion | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SyntaxID) MarshalNDR ¶
type UUIDVector ¶
type UUIDVector struct { // count: MUST specify the number of NSI_UUID_P_T elements in the uuid member. Count uint32 `idl:"name:count" json:"count"` // uuid: An array of NSI_UUID_P_T entries. UUID []*dtyp.GUID `idl:"name:uuid;size_is:(count)" json:"uuid"` }
UUIDVector structure represents NSI_UUID_VECTOR_T RPC structure.
The NSI_UUID_VECTOR_T type defines an array of NSI_UUID_P_T structures.
func (*UUIDVector) MarshalNDR ¶
func (*UUIDVector) NDRSizeInfo ¶
func (o *UUIDVector) NDRSizeInfo() []uint64