iactivation

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const MaxRequestedInterfaces = 0x00008000

MaxRequestedInterfaces represents the MAX_REQUESTED_INTERFACES RPC constant

View Source
const MaxRequestedProtocolSequences = 0x00008000

MaxRequestedProtocolSequences represents the MAX_REQUESTED_PROTSEQS RPC constant

Variables

View Source
var (
	// Syntax UUID
	ActivationSyntaxUUID = &uuid.UUID{TimeLow: 0x4d9f4ab8, TimeMid: 0x7d1c, TimeHiAndVersion: 0x11cf, ClockSeqHiAndReserved: 0x86, ClockSeqLow: 0x1e, Node: [6]uint8{0x0, 0x20, 0xaf, 0x6e, 0x7c, 0x57}}
	// Syntax ID
	ActivationSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: ActivationSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "dcom"
)

Functions

func ActivationServerHandle

func ActivationServerHandle(ctx context.Context, o ActivationServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func NewActivationServerHandle

func NewActivationServerHandle(o ActivationServer) dcerpc.ServerHandle

func RegisterActivationServer

func RegisterActivationServer(conn dcerpc.Conn, o ActivationServer, opts ...dcerpc.Option)

Types

type ActivationClient

type ActivationClient interface {

	// The RemoteActivation (Opnum 0) method is used by clients to request the activation
	// of an object. It returns the bindings, the IPID for the Remote Unknown, and the COMVERSION
	// of the object exporter that hosts the object.
	RemoteActivation(context.Context, *RemoteActivationRequest, ...dcerpc.CallOption) (*RemoteActivationResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

IActivation interface.

func NewActivationClient

func NewActivationClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (ActivationClient, error)

type ActivationServer

type ActivationServer interface {

	// The RemoteActivation (Opnum 0) method is used by clients to request the activation
	// of an object. It returns the bindings, the IPID for the Remote Unknown, and the COMVERSION
	// of the object exporter that hosts the object.
	RemoteActivation(context.Context, *RemoteActivationRequest) (*RemoteActivationResponse, error)
}

IActivation server interface.

type RemoteActivationRequest

type RemoteActivationRequest struct {
	// ORPCthis:  This MUST specify an ORPCTHIS. The COMVERSION field SHOULD contain the
	// negotiated version, as described in section 1.7. The extensions field MUST be set
	// to NULL.
	ORPCThis *dcom.ORPCThis `idl:"name:ORPCthis" json:"orpc_this"`
	// Clsid:  This MUST specify the CLSID of the object to be created.
	ClassID *dtyp.GUID `idl:"name:Clsid" json:"class_id"`
	// pwszObjectName: This MAY contain a string to be used to initialize the object.<68>
	ObjectName string `idl:"name:pwszObjectName;string;pointer:unique" json:"object_name"`
	// pObjectStorage:  This MAY contain a marshaled OBJREF to be used to initialize the
	// object.<69>
	ObjectStorage *dcom.InterfacePointer `idl:"name:pObjectStorage;pointer:unique" json:"object_storage"`
	// ClientImpLevel:  This MUST contain an implementation-specific value that MUST be
	// ignored on receipt.<70>
	ClientImpLevel uint32 `idl:"name:ClientImpLevel" json:"client_imp_level"`
	// Mode: If the activation is for a class factory reference, this parameter MUST be
	// 0xFFFFFFFF. Otherwise, it MUST be 0, except when the client specifies an initialization
	// string in pwszObjectName. If it does, this field MAY contain an implementation-specific
	// value.<71>
	Mode uint32 `idl:"name:Mode" json:"mode"`
	// Interfaces: This MUST contain the number of elements in pIIDs. This value MUST be
	// between 1 and MAX_REQUESTED_INTERFACES; see section 2.2.28.1.
	Interfaces uint32 `idl:"name:Interfaces" json:"interfaces"`
	// pIIDs:  This MUST be an array of requested IIDs on the object to be created.
	IIDs []*dcom.IID `idl:"name:pIIDs;size_is:(Interfaces);pointer:unique" json:"iids"`
	// cRequestedProtseqs: This MUST contain the number of elements in aRequestedProtseqs.
	// This value MUST be between 1 and MAX_REQUESTED_PROTSEQS (see section 2.2.28.1).
	RequestedProtocolSequencesCount uint16 `idl:"name:cRequestedProtseqs" json:"requested_protocol_sequences_count"`
	// aRequestedProtseqs: This MUST specify an array of RPC protocol sequence identifiers
	// that the client supports.
	RequestedProtocolSequences []uint16 `idl:"name:aRequestedProtseqs;size_is:(cRequestedProtseqs)" json:"requested_protocol_sequences"`
}

RemoteActivationRequest structure represents the RemoteActivation operation request

func (*RemoteActivationRequest) MarshalNDR

func (o *RemoteActivationRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoteActivationRequest) UnmarshalNDR

func (o *RemoteActivationRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoteActivationResponse

type RemoteActivationResponse struct {
	// ORPCthat:  This MUST contain an ORPCTHAT. The extensions field MUST be set to NULL.
	ORPCThat *dcom.ORPCThat `idl:"name:ORPCthat" json:"orpc_that"`
	// pOxid: This MUST contain an OXID value identifying the object exporter containing
	// this object.
	OXID uint64 `idl:"name:pOxid" json:"oxid"`
	// ppdsaOxidBindings:  This MUST contain the string and security bindings supported
	// by the object exporter and MUST NOT be NULL. The returned string bindings SHOULD
	// contain endpoints.
	OXIDBindings *dcom.DualStringArray `idl:"name:ppdsaOxidBindings" json:"oxid_bindings"`
	// pipidRemUnknown:  This MUST contain the IPID of the object exporter Remote Unknown
	// object.
	RemoteUnknown *dcom.IPID `idl:"name:pipidRemUnknown" json:"remote_unknown"`
	// pAuthnHint:  This SHOULD contain an RPC authentication level (see [MS-RPCE] section
	// 2.2.1.1.8) that denotes the minimum authentication level supported by the server.
	// This MAY be ignored by the client.<72>
	AuthnHint uint32 `idl:"name:pAuthnHint" json:"authn_hint"`
	// pServerVersion:  This MUST contain the COMVERSION of the object exporter. For details,
	// see section 2.2.11.
	ServerVersion *dcom.COMVersion `idl:"name:pServerVersion" json:"server_version"`
	// phr: An HRESULT that indicates the result of the activation. Success codes other
	// than 0x00000000 MUST NOT be used.
	HResult int32 `idl:"name:phr" json:"hresult"`
	// ppInterfaceData:  This MUST contain an array of MInterfacePointer structures containing
	// the results for each requested interface.
	InterfaceData []*dcom.InterfacePointer `idl:"name:ppInterfaceData;size_is:(Interfaces)" json:"interface_data"`
	// pResults: If the phr parameter contains 0x00000000, this MUST contain an array of
	// HRESULTs containing the results of querying the object for each interface in pIIDs.
	// Success codes other than 0x00000000 MUST NOT be used in the results array. If the
	// phr parameter contains a failure value, this MUST contain an array of 0x00000000
	// values, one for each interface in pIIDs.
	Results []int32 `idl:"name:pResults;size_is:(Interfaces)" json:"results"`
	// Return: The RemoteActivation return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoteActivationResponse structure represents the RemoteActivation operation response

func (*RemoteActivationResponse) MarshalNDR

func (o *RemoteActivationResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoteActivationResponse) UnmarshalNDR

func (o *RemoteActivationResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL