iobjectexporter

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	ObjectExporterSyntaxUUID = &uuid.UUID{TimeLow: 0x99fcfec4, TimeMid: 0x5260, TimeHiAndVersion: 0x101b, ClockSeqHiAndReserved: 0xbb, ClockSeqLow: 0xcb, Node: [6]uint8{0x0, 0xaa, 0x0, 0x21, 0x34, 0x7a}}
	// Syntax ID
	ObjectExporterSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: ObjectExporterSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "dcom"
)

Functions

func NewObjectExporterServerHandle

func NewObjectExporterServerHandle(o ObjectExporterServer) dcerpc.ServerHandle

func ObjectExporterServerHandle

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

func RegisterObjectExporterServer

func RegisterObjectExporterServer(conn dcerpc.Conn, o ObjectExporterServer, opts ...dcerpc.Option)

Types

type ComplexPingRequest

type ComplexPingRequest struct {
	// pSetId: This MUST specify the SETID of the ping set to ping. If the SETID specified
	// by the client is zero, the object resolver MUST return the SETID of a new ping set
	// containing the OIDs specified in AddToSet. If the SETID specified by the client is
	// not zero, the object exporter MUST not change the SETID.
	SetID uint64 `idl:"name:pSetId" json:"set_id"`
	// SequenceNum: This MUST specify a sequence number shared between the client and the
	// object resolver.
	SequenceNum uint16 `idl:"name:SequenceNum" json:"sequence_num"`
	// cAddToSet: This MUST specify the number of OIDs in the AddToSet array.
	AddToSetCount uint16 `idl:"name:cAddToSet" json:"add_to_set_count"`
	// cDelFromSet: This MUST specify the number of OIDs in the DelFromSet array.
	DeleteFromSetCount uint16 `idl:"name:cDelFromSet" json:"delete_from_set_count"`
	// AddToSet: This MUST specify an array of OIDs to add to the set.
	AddToSet []uint64 `idl:"name:AddToSet;size_is:(cAddToSet);pointer:unique" json:"add_to_set"`
	// DelFromSet: This MUST specify an array of OIDs to remove from the set.
	DeleteFromSet []uint64 `idl:"name:DelFromSet;size_is:(cDelFromSet);pointer:unique" json:"delete_from_set"`
}

ComplexPingRequest structure represents the ComplexPing operation request

func (*ComplexPingRequest) MarshalNDR

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

func (*ComplexPingRequest) UnmarshalNDR

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

type ComplexPingResponse

type ComplexPingResponse struct {
	// pSetId: This MUST specify the SETID of the ping set to ping. If the SETID specified
	// by the client is zero, the object resolver MUST return the SETID of a new ping set
	// containing the OIDs specified in AddToSet. If the SETID specified by the client is
	// not zero, the object exporter MUST not change the SETID.
	SetID uint64 `idl:"name:pSetId" json:"set_id"`
	// pPingBackoffFactor: This MUST contain a hint to reduce ping load on the server. Servers
	// MAY set the hint to an implementation-specific value. Clients MAY choose to treat
	// this as zero always.<55>
	PingBackoffFactor uint16 `idl:"name:pPingBackoffFactor" json:"ping_backoff_factor"`
	// Return: The ComplexPing return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ComplexPingResponse structure represents the ComplexPing operation response

func (*ComplexPingResponse) MarshalNDR

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

func (*ComplexPingResponse) UnmarshalNDR

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

type ObjectExporterClient

type ObjectExporterClient interface {

	// The ResolveOxid method returns the bindings and Remote Unknown IPID for an object
	// exporter.
	ResolveOXID(context.Context, *ResolveOXIDRequest, ...dcerpc.CallOption) (*ResolveOXIDResponse, error)

	// The SimplePing method performs a ping of a previously allocated ping set to maintain
	// the reference counts on the objects referred to by the set.
	SimplePing(context.Context, *SimplePingRequest, ...dcerpc.CallOption) (*SimplePingResponse, error)

	// The ComplexPing (Opnum 2) method is invoked to create or modify a ping set, to ping
	// a ping set, or to perform a combination of these operations in one invocation.
	ComplexPing(context.Context, *ComplexPingRequest, ...dcerpc.CallOption) (*ComplexPingResponse, error)

	// The ServerAlive (Opnum 3) method is used by clients to test the aliveness of the
	// server using a given RPC protocol. If it returns without an error, the server is
	// assumed to be reachable.
	ServerAlive(context.Context, *ServerAliveRequest, ...dcerpc.CallOption) (*ServerAliveResponse, error)

	// The ResolveOxid2 method returns the bindings and Remote Unknown IPID for an object
	// exporter, and the COMVERSION of the object server. This method was introduced with
	// version 5.2 of the DCOM Remote Protocol.
	ResolveOxid2(context.Context, *ResolveOxid2Request, ...dcerpc.CallOption) (*ResolveOxid2Response, error)

	// The ServerAlive2 (Opnum 5) method was introduced with version 5.6 of the DCOM Remote
	// Protocol. This method extends the ServerAlive method. It returns string and security
	// bindings for the object resolver, which allows the client to choose the most appropriate,
	// mutually compatible settings.
	ServerAlive2(context.Context, *ServerAlive2Request, ...dcerpc.CallOption) (*ServerAlive2Response, error)

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

IObjectExporter interface.

func NewObjectExporterClient

func NewObjectExporterClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (ObjectExporterClient, error)

type ObjectExporterServer

type ObjectExporterServer interface {

	// The ResolveOxid method returns the bindings and Remote Unknown IPID for an object
	// exporter.
	ResolveOXID(context.Context, *ResolveOXIDRequest) (*ResolveOXIDResponse, error)

	// The SimplePing method performs a ping of a previously allocated ping set to maintain
	// the reference counts on the objects referred to by the set.
	SimplePing(context.Context, *SimplePingRequest) (*SimplePingResponse, error)

	// The ComplexPing (Opnum 2) method is invoked to create or modify a ping set, to ping
	// a ping set, or to perform a combination of these operations in one invocation.
	ComplexPing(context.Context, *ComplexPingRequest) (*ComplexPingResponse, error)

	// The ServerAlive (Opnum 3) method is used by clients to test the aliveness of the
	// server using a given RPC protocol. If it returns without an error, the server is
	// assumed to be reachable.
	ServerAlive(context.Context, *ServerAliveRequest) (*ServerAliveResponse, error)

	// The ResolveOxid2 method returns the bindings and Remote Unknown IPID for an object
	// exporter, and the COMVERSION of the object server. This method was introduced with
	// version 5.2 of the DCOM Remote Protocol.
	ResolveOxid2(context.Context, *ResolveOxid2Request) (*ResolveOxid2Response, error)

	// The ServerAlive2 (Opnum 5) method was introduced with version 5.6 of the DCOM Remote
	// Protocol. This method extends the ServerAlive method. It returns string and security
	// bindings for the object resolver, which allows the client to choose the most appropriate,
	// mutually compatible settings.
	ServerAlive2(context.Context, *ServerAlive2Request) (*ServerAlive2Response, error)
}

IObjectExporter server interface.

type ResolveOXIDRequest

type ResolveOXIDRequest struct {
	// pOxid: This MUST specify an OXID identifying an object exporter.
	OXID uint64 `idl:"name:pOxid" json:"oxid"`
	// cRequestedProtseqs: This MUST contain the number of elements in the arRequestedProtseqs
	// array.
	RequestedProtocolSequencesCount uint16 `idl:"name:cRequestedProtseqs" json:"requested_protocol_sequences_count"`
	// arRequestedProtseqs: This MUST contain an array of RPC protocol sequence identifiers
	// supported by the client.
	RequestedProtocolSequences []uint16 `idl:"name:arRequestedProtseqs;size_is:(cRequestedProtseqs);pointer:ref" json:"requested_protocol_sequences"`
}

ResolveOXIDRequest structure represents the ResolveOxid operation request

func (*ResolveOXIDRequest) MarshalNDR

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

func (*ResolveOXIDRequest) UnmarshalNDR

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

type ResolveOXIDResponse

type ResolveOXIDResponse struct {
	// 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;pointer:ref" json:"oxid_bindings"`
	// pipidRemUnknown: This MUST contain the IPID of the object exporter Remote Unknown
	// object.
	RemoteUnknown *dcom.IPID `idl:"name:pipidRemUnknown;pointer:ref" json:"remote_unknown"`
	// pAuthnHint: This SHOULD contain an RPC authentication level (see [MS-RPCE] section
	// 2.2.1.1.8) that indicates the minimum authentication level supported by the object
	// exporter, which MAY be ignored by the client.<52>
	AuthnHint uint32 `idl:"name:pAuthnHint;pointer:ref" json:"authn_hint"`
	// Return: The ResolveOxid return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ResolveOXIDResponse structure represents the ResolveOxid operation response

func (*ResolveOXIDResponse) MarshalNDR

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

func (*ResolveOXIDResponse) UnmarshalNDR

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

type ResolveOxid2Request

type ResolveOxid2Request struct {
	// pOxid:  This MUST specify an OXID identifying an object exporter.
	OXID uint64 `idl:"name:pOxid" json:"oxid"`
	// cRequestedProtseqs: This MUST contain the number of elements in the arRequestedProtseqs
	// array.
	RequestedProtocolSequencesCount uint16 `idl:"name:cRequestedProtseqs" json:"requested_protocol_sequences_count"`
	// arRequestedProtseqs: This MUST contain an array of RPC protocol sequence identifiers
	// supported by the client.
	RequestedProtocolSequences []uint16 `idl:"name:arRequestedProtseqs;size_is:(cRequestedProtseqs);pointer:ref" json:"requested_protocol_sequences"`
}

ResolveOxid2Request structure represents the ResolveOxid2 operation request

func (*ResolveOxid2Request) MarshalNDR

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

func (*ResolveOxid2Request) UnmarshalNDR

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

type ResolveOxid2Response

type ResolveOxid2Response struct {
	// 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;pointer:ref" json:"oxid_bindings"`
	// pipidRemUnknown:  This MUST contain the IPID of the object exporter Remote Unknown
	// object.
	RemoteUnknown *dcom.IPID `idl:"name:pipidRemUnknown;pointer:ref" 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 object
	// exporter.<57>
	AuthnHint uint32 `idl:"name:pAuthnHint;pointer:ref" json:"authn_hint"`
	// pComVersion:  This MUST contain the COMVERSION of the object exporter. For details,
	// see section 2.2.11.
	COMVersion *dcom.COMVersion `idl:"name:pComVersion;pointer:ref" json:"com_version"`
	// Return: The ResolveOxid2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ResolveOxid2Response structure represents the ResolveOxid2 operation response

func (*ResolveOxid2Response) MarshalNDR

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

func (*ResolveOxid2Response) UnmarshalNDR

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

type ServerAlive2Request

type ServerAlive2Request struct {
}

ServerAlive2Request structure represents the ServerAlive2 operation request

func (*ServerAlive2Request) MarshalNDR

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

func (*ServerAlive2Request) UnmarshalNDR

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

type ServerAlive2Response

type ServerAlive2Response struct {
	// pComVersion: This MUST contain the COMVERSION of the object resolver; see section
	// 2.2.11.
	COMVersion *dcom.COMVersion `idl:"name:pComVersion;pointer:ref" json:"com_version"`
	// ppdsaOrBindings:  MUST contain the string and security bindings of the object resolver.
	// The returned string bindings MUST NOT contain endpoints.
	ObjectResolverBindings *dcom.DualStringArray `idl:"name:ppdsaOrBindings;pointer:ref" json:"object_resolver_bindings"`
	// Return: The ServerAlive2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ServerAlive2Response structure represents the ServerAlive2 operation response

func (*ServerAlive2Response) MarshalNDR

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

func (*ServerAlive2Response) UnmarshalNDR

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

type ServerAliveRequest

type ServerAliveRequest struct {
}

ServerAliveRequest structure represents the ServerAlive operation request

func (*ServerAliveRequest) MarshalNDR

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

func (*ServerAliveRequest) UnmarshalNDR

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

type ServerAliveResponse

type ServerAliveResponse struct {
	// Return: The ServerAlive return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ServerAliveResponse structure represents the ServerAlive operation response

func (*ServerAliveResponse) MarshalNDR

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

func (*ServerAliveResponse) UnmarshalNDR

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

type SimplePingRequest

type SimplePingRequest struct {
	// pSetId: MUST specify a SETID of the ping set to ping. This parameter MUST specify
	// a SETID previously returned from a call to IObjectExporter::ComplexPing.
	SetID uint64 `idl:"name:pSetId" json:"set_id"`
}

SimplePingRequest structure represents the SimplePing operation request

func (*SimplePingRequest) MarshalNDR

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

func (*SimplePingRequest) UnmarshalNDR

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

type SimplePingResponse

type SimplePingResponse struct {
	// Return: The SimplePing return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SimplePingResponse structure represents the SimplePing operation response

func (*SimplePingResponse) MarshalNDR

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

func (*SimplePingResponse) UnmarshalNDR

func (o *SimplePingResponse) 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