ixnremote

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
	IxnRemoteSyntaxUUID = &uuid.UUID{TimeLow: 0x906b0ce0, TimeMid: 0xc70b, TimeHiAndVersion: 0x1067, ClockSeqHiAndReserved: 0xb3, ClockSeqLow: 0x17, Node: [6]uint8{0x0, 0xdd, 0x1, 0x6, 0x62, 0xda}}
	// Syntax ID
	IxnRemoteSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: IxnRemoteSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var GUIDLength = 37

GUIDLength represents the GUID_LENGTH RPC constant

View Source
var (
	// import guard
	GoPackage = "cmpo"
)
View Source
var MaxComputerNameLength = 15

MaxComputerNameLength represents the MAX_COMPUTERNAME_LENGTH RPC constant

Functions

func IxnRemoteServerHandle

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

func NewIxnRemoteServerHandle

func NewIxnRemoteServerHandle(o IxnRemoteServer) dcerpc.ServerHandle

func RegisterIxnRemoteServer

func RegisterIxnRemoteServer(conn dcerpc.Conn, o IxnRemoteServer, opts ...dcerpc.Option)

Types

type BeginTearDownRequest

type BeginTearDownRequest struct {
	// contextHandle: An RPC context handle that is correlated with a session object that
	// is in the Active state. For context handles, see [C706].
	ContextHandle *dcetypes.ContextHandle `idl:"name:contextHandle" json:"context_handle"`
	// tearDownType: The reason for tearing down the session. It MUST be set to 0x00 (TT_FORCE).
	//
	//	+-------+----------+
	//	|       |          |
	//	| VALUE | MEANING  |
	//	|       |          |
	//	+-------+----------+
	//	+-------+----------+
	//	| 0x00  | TT_FORCE |
	//	+-------+----------+
	TearDownType TeardownType `idl:"name:tearDownType" json:"tear_down_type"`
}

BeginTearDownRequest structure represents the BeginTearDown operation request

func (*BeginTearDownRequest) MarshalNDR

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

func (*BeginTearDownRequest) UnmarshalNDR

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

type BeginTearDownResponse

type BeginTearDownResponse struct {
	// Return: The BeginTearDown return value.
	Return int32 `idl:"name:Return" json:"return"`
}

BeginTearDownResponse structure represents the BeginTearDown operation response

func (*BeginTearDownResponse) MarshalNDR

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

func (*BeginTearDownResponse) UnmarshalNDR

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

type BindInfoBlob

type BindInfoBlob struct {
	// dwcbThisStruct (4 bytes): An unsigned 4-byte integer. The size of this structure
	// in bytes. This value MUST be set to 8.
	ThisStructureLength uint32 `idl:"name:dwcbThisStruct" json:"this_structure_length"`
	// grbitComProtocols (4 bytes): A COM_PROTOCOL bit field specifying the RPC protocol
	// sequences that the partner supports.
	COMProtocols uint32 `idl:"name:grbitComProtocols" json:"com_protocols"`
}

BindInfoBlob structure represents BIND_INFO_BLOB RPC structure.

The BIND_INFO_BLOB packet is a structure containing details on how to bind to a partner.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 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 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dwcbThisStruct                                                                                                                |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| grbitComProtocols                                                                                                             |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*BindInfoBlob) MarshalNDR

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

func (*BindInfoBlob) UnmarshalNDR

func (o *BindInfoBlob) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BindVersionSet

type BindVersionSet struct {
	// dwMinLevelOne:  A 4-byte unsigned integer value containing the minimum supported
	// MSDTC Connection Manager: OleTx Transports Protocol version. dwMinLevelOne MUST be
	// less than or equal to dwMaxLevelOne.
	//
	// This field indicates whether the unsigned_char_t [C706] version of the Session creation
	// API calls (Poke/BuildContext) or the wchar_t [C706] version of the Session creation
	// API calls (PokeW/BuildContextW) are used. This field MUST be one of the following
	// values:
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | The unsigned_char_t version of the Session creation API (Poke and BuildContext)  |
	//	|            | is used.                                                                         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | The wchar_t version of the Session creation API (PokeW and BuildContextW) is     |
	//	|            | used.                                                                            |
	//	+------------+----------------------------------------------------------------------------------+
	MinLevelOne uint32 `idl:"name:dwMinLevelOne" json:"min_level_one"`
	// dwMaxLevelOne:  A 4-byte unsigned integer value containing the maximum version supported
	// for a level-one session. dwMaxLevelOne MUST be greater than or equal to dwMinLevelOne.
	//
	// This field indicates whether the unsigned_char_t version of the Session creation
	// API calls (Poke/BuildContext) or the wchar_t version of the Session creation API
	// calls (PokeW/BuildContextW) are used. This field MUST be one of the following values:
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | The unsigned_char_t version of the Session creation API (Poke and BuildContext)  |
	//	|            | is used.                                                                         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | The wchar_t version of the Session creation API (PokeW and BuildContextW) is     |
	//	|            | used.                                                                            |
	//	+------------+----------------------------------------------------------------------------------+
	MaxLevelOne uint32 `idl:"name:dwMaxLevelOne" json:"max_level_one"`
	// dwMinLevelTwo:  A 4-byte unsigned integer value containing the minimum version supported
	// for the level-two protocol session. The value for dwMinLevelTwo MUST be less than
	// or equal to dwMaxLevelTwo.
	MinLevelTwo uint32 `idl:"name:dwMinLevelTwo" json:"min_level_two"`
	// dwMaxLevelTwo:  A 4-byte unsigned integer value containing the maximum version supported
	// for the level-two protocol session. The value for dwMaxLevelTwo MUST be greater than
	// or equal to dwMinLevelTwo.
	MaxLevelTwo uint32 `idl:"name:dwMaxLevelTwo" json:"max_level_two"`
	// dwMinLevelThree:  A 4-byte unsigned integer value containing the minimum version
	// supported for the level-three protocol session. The value for dwMinLevelThree MUST
	// be less than or equal to dwMaxLevelThree.
	MinLevelThree uint32 `idl:"name:dwMinLevelThree" json:"min_level_three"`
	// dwMaxLevelThree:  A 4-byte unsigned integer value containing the maximum version
	// supported for the level-three protocol session. dwMaxLevelThree MUST be greater than
	// or equal to dwMinLevelThree.
	MaxLevelThree uint32 `idl:"name:dwMaxLevelThree" json:"max_level_three"`
}

BindVersionSet structure represents BIND_VERSION_SET RPC structure.

The BIND_VERSION_SET structure holds three sets of version range values that specify the version ranges supported by a partner for three protocols: this protocol, MSDTC Connection Manager: OleTx Transports Protocol, and two other protocols that are layered on top of this protocol. This is because MSDTC Connection Manager: OleTx Transports Protocol is designed to be a transport protocol over which two other protocols are layered. For the rest of this specification, the protocol that is layered immediately on top of the MSDTC Connection Manager: OleTx Transports Protocol is referred to as the level-two protocol, and the protocol layered on top of the level-two protocol is the level-three protocol. The ranges of level-two version number values and level-three version number values are specific to the level-two protocol and level-three protocol, respectively.

func (*BindVersionSet) MarshalNDR

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

func (*BindVersionSet) UnmarshalNDR

func (o *BindVersionSet) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BoundVersionSet

type BoundVersionSet struct {
	// dwLevelOneAccepted:  A session level-one bind was successfully created.
	//
	// A 4-byte unsigned integer value containing the MSDTC Connection Manager: OleTx Transports
	// Protocol version that was negotiated with the partner and MUST be used in MSDTC Connection
	// Manager: OleTx Transports Protocol exchanges with the partner.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | The unsigned_char_t version of the Session creation API (Poke and BuildContext)  |
	//	|            | is used.                                                                         |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | The wchar_t version of the Session creation API (PokeW and BuildContextW) is     |
	//	|            | used.                                                                            |
	//	+------------+----------------------------------------------------------------------------------+
	LevelOneAccepted uint32 `idl:"name:dwLevelOneAccepted" json:"level_one_accepted"`
	// dwLevelTwoAccepted:  A 4-byte unsigned integer value containing the level-two protocol
	// version that was negotiated with the partner and MUST be used in level-two protocol
	// exchanges with the partner.
	LevelTwoAccepted uint32 `idl:"name:dwLevelTwoAccepted" json:"level_two_accepted"`
	// dwLevelThreeAccepted:  A 4-byte unsigned integer value containing the level-three
	// protocol version that was negotiated with the partner and MUST be used in level-three
	// protocol exchanges with the partner.
	LevelThreeAccepted uint32 `idl:"name:dwLevelThreeAccepted" json:"level_three_accepted"`
}

BoundVersionSet structure represents BOUND_VERSION_SET RPC structure.

The BOUND_VERSION_SET is a structure containing the MSDTC Connection Manager: OleTx Transports Protocol version numbers that were successfully negotiated during a BuildContext call or a BuildContextW call.

func (*BoundVersionSet) MarshalNDR

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

func (*BoundVersionSet) UnmarshalNDR

func (o *BoundVersionSet) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BuildContextRequest

type BuildContextRequest struct {
	// sRank: The session rank of the partner making the call. It MUST be one of the following
	// values.
	//
	//	+-------------------+------------------------------------------------------+
	//	|                   |                                                      |
	//	|       VALUE       |                       MEANING                        |
	//	|                   |                                                      |
	//	+-------------------+------------------------------------------------------+
	//	+-------------------+------------------------------------------------------+
	//	| SRANK_PRIMARY 1   | The caller is the primary partner in this session.   |
	//	+-------------------+------------------------------------------------------+
	//	| SRANK_SECONDARY 2 | The caller is the secondary partner in this session. |
	//	+-------------------+------------------------------------------------------+
	Rank SessionRank `idl:"name:sRank" json:"rank"`
	// BindVersionSet: A BIND_VERSION_SET structure that contains the minimum and maximum
	// versions supported by the partner, as specified by the Minimum Level 1 Version Number,
	// Maximum Level 1 Version Number, Minimum Level 2 Version Number, Maximum Level 2 Version
	// Number, Minimum Level 3 Version Number, and Maximum Level 3 Version Number ADM elements
	// (see section 3.2.1.1).
	BindVersionSet *BindVersionSet `idl:"name:BindVersionSet" json:"bind_version_set"`
	// pszCalleeUuid: A string containing the callee's contact identifier (CID) in the form
	// of a GUID. The contact identifier (CID) MUST match the contact identifier (CID) in
	// the callee's local name object and MUST be formatted into a string.
	CalleeUUID string `idl:"name:pszCalleeUuid;string" json:"callee_uuid"`
	// pszHostName: The string form of the caller's host name. This host name identifies
	// the machine in which the caller's instance of the MSDTC Connection Manager: OleTx
	// Transports Protocol is running. This MUST be a NetBIOS name. For NetBIOS, see [NETBEUI],
	// [RFC1001], and [RFC1002].
	HostName string `idl:"name:pszHostName;string" json:"host_name"`
	// pszUuidString: The string form of the caller's contact identifier (CID) in the form
	// of a GUID. This CID identifies the caller's instance of the MSDTC Connection Manager:
	// OleTx Transports Protocol. It MUST match the contact identifier (CID) in the caller's
	// local name object and MUST be formatted into a string.
	UUIDString string `idl:"name:pszUuidString;string" json:"uuid_string"`
	// pszGuidIn: A string form of a GUID that represents a unique identifier for this bind
	// attempt. The GUID MUST be formatted as a string.
	GUIDIn string `idl:"name:pszGuidIn;string" json:"guid_in"`
	// pszGuidOut: A string form of a GUID that represents a global identifier for this
	// bind attempt. On input, the pszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000.
	// On return, if the bind attempt is ultimately successful, the pszGuidOut parameter
	// MUST be equal to the value of the pszGuidIn parameter. Otherwise, if the bind attempt
	// is ultimately unsuccessful, the pszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000
	// on return.
	GUIDOut string `idl:"name:pszGuidOut;string" json:"guid_out"`
	// pBoundVersionSet: A pointer to a BOUND_VERSION_SET structure. This structure is filled
	// in by the callee. If any error is returned, this structure MUST be filled with zeros
	// before returning. On successful completion, the caller receives a BOUND_VERSION_SET
	// on return.
	BoundVersionSet *BoundVersionSet `idl:"name:pBoundVersionSet" json:"bound_version_set"`
	// dwcbSizeOfBlob: The count in bytes of the size of the binding info structure. This
	// parameter MUST be set to the size of the BIND_INFO_BLOB, 8.
	SizeOfBlob uint32 `idl:"name:dwcbSizeOfBlob" json:"size_of_blob"`
	// rguchBlob: A byte array containing the BIND_INFO_BLOB structure specifying the supported
	// transport protocols. This information is used to build the RPC binding for the reverse
	// connection.
	Blob []byte `idl:"name:rguchBlob;size_is:(dwcbSizeOfBlob)" json:"blob"`
}

BuildContextRequest structure represents the BuildContext operation request

func (*BuildContextRequest) MarshalNDR

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

func (*BuildContextRequest) UnmarshalNDR

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

type BuildContextResponse

type BuildContextResponse struct {
	// pszGuidOut: A string form of a GUID that represents a global identifier for this
	// bind attempt. On input, the pszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000.
	// On return, if the bind attempt is ultimately successful, the pszGuidOut parameter
	// MUST be equal to the value of the pszGuidIn parameter. Otherwise, if the bind attempt
	// is ultimately unsuccessful, the pszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000
	// on return.
	GUIDOut string `idl:"name:pszGuidOut;string" json:"guid_out"`
	// pBoundVersionSet: A pointer to a BOUND_VERSION_SET structure. This structure is filled
	// in by the callee. If any error is returned, this structure MUST be filled with zeros
	// before returning. On successful completion, the caller receives a BOUND_VERSION_SET
	// on return.
	BoundVersionSet *BoundVersionSet `idl:"name:pBoundVersionSet" json:"bound_version_set"`
	// ppHandle: On successful return, an RPC context handle that correlates with the session
	// object created by (or referenced by) this method. For RPC context handles, see [C706].
	Handle *dcetypes.ContextHandle `idl:"name:ppHandle" json:"handle"`
	// Return: The BuildContext return value.
	Return int32 `idl:"name:Return" json:"return"`
}

BuildContextResponse structure represents the BuildContext operation response

func (*BuildContextResponse) MarshalNDR

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

func (*BuildContextResponse) UnmarshalNDR

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

type BuildContextWRequest

type BuildContextWRequest struct {
	// sRank: The rank of the caller.
	//
	//	+----------------------+------------------------------------------------------+
	//	|                      |                                                      |
	//	|        VALUE         |                       MEANING                        |
	//	|                      |                                                      |
	//	+----------------------+------------------------------------------------------+
	//	+----------------------+------------------------------------------------------+
	//	| SRANK_PRIMARY 0x01   | The caller is the primary partner in this session.   |
	//	+----------------------+------------------------------------------------------+
	//	| SRANK_SECONDARY 0x02 | The caller is the secondary partner in this session. |
	//	+----------------------+------------------------------------------------------+
	Rank SessionRank `idl:"name:sRank" json:"rank"`
	// BindVersionSet: A BIND_VERSION_SET structure that contains the minimum and maximum
	// versions supported by the partner.
	BindVersionSet *BindVersionSet `idl:"name:BindVersionSet" json:"bind_version_set"`
	// pwszCalleeUuid: The string form of the callee's contact identifier (CID). The contact
	// identifier (CID) MUST match the contact identifier (CID) in the callee's local name
	// object and MUST be formatted into a string.
	CalleeUUID string `idl:"name:pwszCalleeUuid;string" json:"callee_uuid"`
	// pwszHostName: The string form of the caller's host name. This host name identifies
	// the machine in which the caller's instance of the MSDTC Connection Manager: OleTx
	// Transports Protocol is running. This MUST be a NetBIOS name. For NetBIOS, see [NETBEUI],
	// [RFC1001], and [RFC1002].
	HostName string `idl:"name:pwszHostName;string" json:"host_name"`
	// pwszUuidString: The string form of the caller's contact identifier (CID). This contact
	// identifier (CID) identifies the caller's instance of the MSDTC Connection Manager:
	// OleTx Transports Protocol. This MUST match the contact identifier (CID) in the caller's
	// local name object and MUST be formatted into a string.
	UUIDString string `idl:"name:pwszUuidString;string" json:"uuid_string"`
	// pwszGuidIn: A string form of a UUID that represents a unique identifier for this
	// bind attempt. The UUID MUST be formatted into a string.
	GUIDIn string `idl:"name:pwszGuidIn;string" json:"guid_in"`
	// pwszGuidOut: A string form of a UUID that represents a unique identifier for this
	// bind attempt. On input, the pwszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000.
	// On return, if the bind attempt is ultimately successful, the pwszGuidOut parameter
	// MUST be equal to the value of the pszGuidIn parameter. Otherwise, if the bind attempt
	// is ultimately unsuccessful, the pwszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000
	// on return.
	GUIDOut string `idl:"name:pwszGuidOut;string" json:"guid_out"`
	// pBoundVersionSet: A pointer to a BOUND_VERSION_SET structure. When the method is
	// called, every field of the BOUND_VERSION_SET structure MUST be initialized to zero.
	// This parameter receives a BOUND_VERSION_SET on successful completion and also on
	// return.
	BoundVersionSet *BoundVersionSet `idl:"name:pBoundVersionSet" json:"bound_version_set"`
	// dwcbSizeOfBlob: The count in bytes of the size of the binding info structure. This
	// parameter MUST be set to the size of BIND_INFO_BLOB, 8.
	SizeOfBlob uint32 `idl:"name:dwcbSizeOfBlob" json:"size_of_blob"`
	// rguchBlob: A byte array that contains a BIND_INFO_BLOB structure.
	Blob []byte `idl:"name:rguchBlob;size_is:(dwcbSizeOfBlob)" json:"blob"`
}

BuildContextWRequest structure represents the BuildContextW operation request

func (*BuildContextWRequest) MarshalNDR

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

func (*BuildContextWRequest) UnmarshalNDR

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

type BuildContextWResponse

type BuildContextWResponse struct {
	// pwszGuidOut: A string form of a UUID that represents a unique identifier for this
	// bind attempt. On input, the pwszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000.
	// On return, if the bind attempt is ultimately successful, the pwszGuidOut parameter
	// MUST be equal to the value of the pszGuidIn parameter. Otherwise, if the bind attempt
	// is ultimately unsuccessful, the pwszGuidOut parameter MUST be set to 00000000-0000-0000-0000-000000000000
	// on return.
	GUIDOut string `idl:"name:pwszGuidOut;string" json:"guid_out"`
	// pBoundVersionSet: A pointer to a BOUND_VERSION_SET structure. When the method is
	// called, every field of the BOUND_VERSION_SET structure MUST be initialized to zero.
	// This parameter receives a BOUND_VERSION_SET on successful completion and also on
	// return.
	BoundVersionSet *BoundVersionSet `idl:"name:pBoundVersionSet" json:"bound_version_set"`
	// ppHandle: On successful return, an RPC context handle (see [C706]) that correlates
	// with the session object created by, or referenced by, this method.
	Handle *dcetypes.ContextHandle `idl:"name:ppHandle" json:"handle"`
	// Return: The BuildContextW return value.
	Return int32 `idl:"name:Return" json:"return"`
}

BuildContextWResponse structure represents the BuildContextW operation response

func (*BuildContextWResponse) MarshalNDR

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

func (*BuildContextWResponse) UnmarshalNDR

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

type IxnRemoteClient

type IxnRemoteClient interface {

	// The Poke method is used by a secondary partner to request the primary partner session
	// initiation. The parameter values specified in the call identify both participants.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table or an implementation-specific
	// HRESULT. A client MUST NOT depend on implementation-specific failure HRESULT values.
	// For more information about how the client SHOULD behave based on the possible return
	// values, see section 3.4.6.1.2. Standard errors are defined in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY         | The session object is not in the Connecting state.<16>                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.<17>   |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5                 |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is zero.
	//
	// Poke SHOULD NOT be invoked on a secondary partner. If it is, the secondary partner
	// SHOULD respond by making a Poke callback on the primary partner.<18> In this case,
	// the parameters to the Poke call MUST be calculated from the incoming parameters and
	// the secondary partner's local name object; specifically, the pszCalleeUuid parameter
	// MUST be set to the value of the pszUuidString parameter; the pszHostName parameter
	// MUST be the Hostname field of the secondary partner's local name object; and the
	// pszUuidString parameter MUST be the string form of the CID field of the secondary
	// partner's local name object. The secondary partner MAY return from the Poke method
	// before this call has completed.
	//
	// When Poke is invoked on a primary partner, the primary partner MUST construct a name
	// object using the host name specified in the pszHostName parameter, the contact identifier
	// (CID) specified in the pszUuidString parameter, and the RPC protocols specified in
	// the grbitComProtocols field of the BIND_INFO_BLOB structure.
	//
	// The primary partner MUST use this name object to check whether or not an existing
	// session with a matching name object already exists in the session table.
	//
	// If an existing session is found, the primary partner MUST check the State field of
	// the session object.
	//
	// * If the value is set to Connecting, the existing session will be used during the
	// rest of the call.
	//
	// * Otherwise, the primary partner MUST return an implementation-specific error code.
	// <19> ( 2f0b4979-92b7-46f5-9e94-81531e68f3fe#Appendix_A_19 )
	//
	// If an existing session is not found, a new session object MUST be created and added
	// to the session table. The new session object MUST be initialized with the created
	// name object. An RPC binding handle to the secondary partner MUST be created and stored
	// in the session object. For binding handles, see [C706]. The State field MUST be set
	// to Connecting.
	//
	// At this point, the primary partner does not have to wait until the entire process
	// is completed. It SHOULD return success from the method, while it continues to perform
	// the following actions.<20>
	//
	// After identifying a valid existing session or initializing a new session object and
	// adding it to the session table, the primary partner MUST attempt to call either the
	// BuildContextW method or the BuildContext method on the secondary partner with the
	// RPC binding handle stored in the session object. For details on making BuildContext
	// calls to a partner, see section 3.3.4.2 and section 3.4.6.1.1.
	//
	// To determine whether the secondary partner supports BuildContextW, the primary partner
	// calls BuildContextW on the secondary partner and waits for a return value.
	//
	// If the secondary partner does not support the BuildContextW method, the primary partner
	// MUST call the BuildContext method.
	//
	// If the secondary partner does support the BuildContextW method, the primary partner
	// MUST NOT call the BuildContext method. During this call, the secondary partner will
	// make a nested synchronous callback to the primary partner to complete the session
	// establishment. See section 3.4.6.1.1.
	//
	// If the call completes successfully, the primary partner MUST examine the State field
	// of the session object; if the value is "Confirming Connection", it MUST set the state
	// of the session object to Active and cancel the Session Setup timer associated with
	// that session object.
	//
	// If the call completes unsuccessfully, the primary partner SHOULD behave according
	// to the error code that was returned:
	//
	// * If the error code is 0x80000712 (E_CM_VERSION_SET_NOTSUPPORTED), or 0x800000173
	// (E_CM_S_PROTOCOL_NOT_SUPPORTED), or it retried the nested call for more than the
	// number of times specified in the *Session Setup Retry Count* ADM element, or if the
	// State field of the session object is not "Confirming Connection", the primary partner
	// MUST remove the session object from the session table and clean it up. For instructions
	// on cleaning up a session object, see section 3.2.1.3 ( ff2a0bdc-9952-4357-971e-9e659c8824c8
	// ).
	//
	// * If the error code is ox800000123 (E_CM_SERVER_NOT_READY) or 0x000006BB (RPC_S_SERVER_TOO_BUSY),
	// or any other implementation-specific error code, the primary partner SHOULD retry
	// the call for the number of times specified in the *Session Setup Retry Count* ADM
	// element.
	Poke(context.Context, *PokeRequest, ...dcerpc.CallOption) (*PokeResponse, error)

	// The BuildContext method is invoked by either a primary partner or a secondary partner.
	// When invoked by a primary partner, the BuildContext method requests that the secondary
	// partner begin the next step of establishing a session. When invoked by a secondary
	// partner, the BuildContext method requests that the primary partner complete the establishment
	// of the session.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.1.1. Standard errors are defined
	// in [MS-ERREF] section 2.2.
	//
	// Standard errors are defined in [MS-ERREF] section 4.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000172 E_CM_VERSION_SET_NOTSUPPORTED | The return value indicates that the callee partner does not support the caller’s |
	//	|                                          | BindVersionSet parameter and will not execute the requested operation.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000124 E_CM_S_TIMEDOUT               | The return value indicates that the callee timed out while waiting for the       |
	//	|                                          | caller to complete the bind. This is returned by a secondary partner to a        |
	//	|                                          | primary partner if the primary partner does not return from the secondary        |
	//	|                                          | partner's call to BuildContext within half of the Session Setup Timer (section   |
	//	|                                          | 3.2.2.1) interval.                                                               |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter are supported by the partner.                                          |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table of return values describes the possible errors that SHOULD be
	// returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000120 E_CM_SESSION_DOWN     | In a scenario where the value of the sRank parameter is SRANK_SECONDARY, if      |
	//	|                                  | BuildContext is called and an existing session object is not found, the call     |
	//	|                                  | SHOULD return this value.<21>                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Connecting state.<22>                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is 1. For more information, see [C706].
	//
	// This method has different effects depending on the value of the sRank parameter.
	//
	// For the structure and sequence of data on the wire, see [C706] Transfer Syntax Network
	// Data Representation (NDR) topics.
	BuildContext(context.Context, *BuildContextRequest, ...dcerpc.CallOption) (*BuildContextResponse, error)

	// The NegotiateResources method is invoked by one partner to request that the other
	// partner allocate resources for future use.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.4. Standard errors are defined in
	// [MS-ERREF] section 2.2.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS        | The return value indicates success.                                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000127 E_CM_OUTOFRESOURCES | The server was unable to allocate the resources requested and will continue to   |
	//	|                                | operate with the current set of resources.                                       |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table of return values describes the possible errors that SHOULD be
	// returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG          | This value is returned in the following scenarios: If the resource type that was |
	//	|                                  | passed in the resourceType parameter is not a valid resource. If the value of    |
	//	|                                  | the dwcRequested parameter is not between 1 and 1000.                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Active state.                                   |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is 2. See [C706].
	//
	// For the structure and sequence of data on the wire, see [C706] Transfer Syntax Network
	// Data Representation (NDR) topics.
	NegotiateResources(context.Context, *NegotiateResourcesRequest, ...dcerpc.CallOption) (*NegotiateResourcesResponse, error)

	// The SendReceive method is invoked by one partner to transmit messages to the other
	// partner. Both the primary and the secondary participants have the option to call
	// this method multiple times after a session has been established between them.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.4. Standard errors are defined in
	// [MS-ERREF] section 2.2.
	//
	//	+-------------------------+-------------------------------------+
	//	|         RETURN          |                                     |
	//	|       VALUE/CODE        |             DESCRIPTION             |
	//	|                         |                                     |
	//	+-------------------------+-------------------------------------+
	//	+-------------------------+-------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success. |
	//	+-------------------------+-------------------------------------+
	//
	// The table below describes the possible errors that SHOULD be returned by this method.
	//
	//	+----------------------------------+---------------------------------------------------------------------+
	//	|              RETURN              |                                                                     |
	//	|            VALUE/CODE            |                             DESCRIPTION                             |
	//	|                                  |                                                                     |
	//	+----------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------+---------------------------------------------------------------------+
	//	| 0x80000119 E_CM_TEARING_DOWN     | The session object is in the Requesting Teardown or Teardown state. |
	//	+----------------------------------+---------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Active state.                      |
	//	+----------------------------------+---------------------------------------------------------------------+
	//
	// The opnum field value for this method is 3, as specified in [C706].
	//
	// For the structure and sequence of data on the wire, see [C706] section 14.
	SendReceive(context.Context, *SendReceiveRequest, ...dcerpc.CallOption) (*SendReceiveResponse, error)

	// The TearDownContext method is invoked by either a primary partner or a secondary
	// partner. When invoked by a primary partner, the TearDownContext method requests that
	// the secondary partner begin the next step of tearing down a session. When invoked
	// by a secondary partner, the TearDownContext method requests that the primary partner
	// complete the teardown of the session. The Microsoft Interface Definition Language
	// (MIDL) syntax of the method is as follows.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.2). Standard errors
	// are defined in [MS-ERREF] section 2.2. A client MUST NOT exhibit behavior observable
	// on the wire that is dependent on implementation-specific failure HRESULT values.
	//
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN          |                                                                                  |
	//	|       VALUE/CODE        |                                   DESCRIPTION                                    |
	//	|                         |                                                                                  |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success.                                              |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG | This value MAY be returned when an invalid sRank value is passed as a            |
	//	|                         | parameter.<27>                                                                   |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x80004005 E_FAIL       | This return value indicates that the session failed to tear down within the      |
	//	|                         | interval specified by the Session Teardown Timer (section 3.2.2.2).              |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//
	// Thereafter, the method has a different effect depending on the value of the sRank
	// parameter and the value of the teardownType parameter.
	TearDownContext(context.Context, *TearDownContextRequest, ...dcerpc.CallOption) (*TearDownContextResponse, error)

	// The BeginTearDown method is invoked by a secondary partner to request that a primary
	// partner begin session teardown.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.2). Standard errors
	// are defined in [MS-ERREF] section 2.2.
	//
	//	+-------------------------+-------------------------------------+
	//	|         RETURN          |                                     |
	//	|       VALUE/CODE        |             DESCRIPTION             |
	//	|                         |                                     |
	//	+-------------------------+-------------------------------------+
	//	+-------------------------+-------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success. |
	//	+-------------------------+-------------------------------------+
	//
	// BeginTearDown MUST NOT be invoked on a secondary partner.
	//
	// If the session object is in the Teardown state, the primary partner MUST immediately
	// return from the method with S_OK. Otherwise, the primary partner MUST set the state
	// of the session object associated with the context handle to Teardown and return S_OK
	// from the method. Also, it MUST start the Session Teardown timer associated with that
	// session object and attempt to call the TearDownContext method on the secondary partner.
	// The secondary partner SHOULD choose to perform these actions asynchronously.
	BeginTearDown(context.Context, *BeginTearDownRequest, ...dcerpc.CallOption) (*BeginTearDownResponse, error)

	// The PokeW method is equivalent in all ways to the Poke method except that its string
	// parameters are encoded in UTF-16.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.1.2). Standard errors
	// are defined in [MS-ERREF] section 2.2.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006D1 RPC_S_PROCNUM_OUT_OF_RANGE    | The return value indicates that the caller does not support this call.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY         | The session object is not in the Connecting state.<28>                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.<29>   |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// When a partner calls PokeW on another partner, an error code of RPC_S_PROCNUM_OUT_OF_RANGE
	// means that the callee does not support PokeW.
	PokeW(context.Context, *PokeWRequest, ...dcerpc.CallOption) (*PokeWResponse, error)

	// The BuildContextW method is equivalent in all ways to the BuildContext method, except
	// that its string parameters are encoded in UTF-16. The MIDL syntax of the method is
	// as follows.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either 0x80000172 (E_CM_VERSION_SET_NOTSUPPORTED) or an implementation-specific
	// HRESULT. A client SHOULD distinguish between 0x80000172 and other error codes, as
	// specified in sections 3.3.4.2.1 and 3.3.4.2.2, but MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only behaviors for the errors described in the following table.
	//
	// Standard errors are defined in [MS-ERREF] section 4.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000172 E_CM_VERSION_SET_NOTSUPPORTED | The return value indicates that the callee partner does not support the caller's |
	//	|                                          | BindVersionSet parameter and will not execute the requested operation.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006D1 RPC_S_PROCNUM_OUT_OF_RANGE    | The return value indicates that the caller does not support this call.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000124 E_CM_S_TIMEDOUT               | The return value indicates that the callee timed out while waiting for the       |
	//	|                                          | caller to complete the bind. This value is returned by a secondary partner to    |
	//	|                                          | a primary partner if the primary partner does not return from the secondary      |
	//	|                                          | partner's call to BuildContext within half the amount of time specified in the   |
	//	|                                          | Session Setup Timer (section 3.2.2.1).                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table describes the possible implementation-specific errors that SHOULD
	// be returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000120 E_CM_SESSION_DOWN     | In a scenario where the value of the sRank parameter is SRANK_SECONDARY, if      |
	//	|                                  | BuildContextW is called and an existing session object is not found, the call    |
	//	|                                  | SHOULD return this value.<30>                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Connecting state.<31>                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// When a partner calls BuildContextW on another partner, an error code of RPC_S_PROCNUM_OUT_OF_RANGE
	// means that the callee does not support BuildContextW.
	BuildContextW(context.Context, *BuildContextWRequest, ...dcerpc.CallOption) (*BuildContextWResponse, error)

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

IXnRemote interface.

func NewIxnRemoteClient

func NewIxnRemoteClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (IxnRemoteClient, error)

type IxnRemoteServer

type IxnRemoteServer interface {

	// The Poke method is used by a secondary partner to request the primary partner session
	// initiation. The parameter values specified in the call identify both participants.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table or an implementation-specific
	// HRESULT. A client MUST NOT depend on implementation-specific failure HRESULT values.
	// For more information about how the client SHOULD behave based on the possible return
	// values, see section 3.4.6.1.2. Standard errors are defined in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY         | The session object is not in the Connecting state.<16>                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.<17>   |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5                 |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is zero.
	//
	// Poke SHOULD NOT be invoked on a secondary partner. If it is, the secondary partner
	// SHOULD respond by making a Poke callback on the primary partner.<18> In this case,
	// the parameters to the Poke call MUST be calculated from the incoming parameters and
	// the secondary partner's local name object; specifically, the pszCalleeUuid parameter
	// MUST be set to the value of the pszUuidString parameter; the pszHostName parameter
	// MUST be the Hostname field of the secondary partner's local name object; and the
	// pszUuidString parameter MUST be the string form of the CID field of the secondary
	// partner's local name object. The secondary partner MAY return from the Poke method
	// before this call has completed.
	//
	// When Poke is invoked on a primary partner, the primary partner MUST construct a name
	// object using the host name specified in the pszHostName parameter, the contact identifier
	// (CID) specified in the pszUuidString parameter, and the RPC protocols specified in
	// the grbitComProtocols field of the BIND_INFO_BLOB structure.
	//
	// The primary partner MUST use this name object to check whether or not an existing
	// session with a matching name object already exists in the session table.
	//
	// If an existing session is found, the primary partner MUST check the State field of
	// the session object.
	//
	// * If the value is set to Connecting, the existing session will be used during the
	// rest of the call.
	//
	// * Otherwise, the primary partner MUST return an implementation-specific error code.
	// <19> ( 2f0b4979-92b7-46f5-9e94-81531e68f3fe#Appendix_A_19 )
	//
	// If an existing session is not found, a new session object MUST be created and added
	// to the session table. The new session object MUST be initialized with the created
	// name object. An RPC binding handle to the secondary partner MUST be created and stored
	// in the session object. For binding handles, see [C706]. The State field MUST be set
	// to Connecting.
	//
	// At this point, the primary partner does not have to wait until the entire process
	// is completed. It SHOULD return success from the method, while it continues to perform
	// the following actions.<20>
	//
	// After identifying a valid existing session or initializing a new session object and
	// adding it to the session table, the primary partner MUST attempt to call either the
	// BuildContextW method or the BuildContext method on the secondary partner with the
	// RPC binding handle stored in the session object. For details on making BuildContext
	// calls to a partner, see section 3.3.4.2 and section 3.4.6.1.1.
	//
	// To determine whether the secondary partner supports BuildContextW, the primary partner
	// calls BuildContextW on the secondary partner and waits for a return value.
	//
	// If the secondary partner does not support the BuildContextW method, the primary partner
	// MUST call the BuildContext method.
	//
	// If the secondary partner does support the BuildContextW method, the primary partner
	// MUST NOT call the BuildContext method. During this call, the secondary partner will
	// make a nested synchronous callback to the primary partner to complete the session
	// establishment. See section 3.4.6.1.1.
	//
	// If the call completes successfully, the primary partner MUST examine the State field
	// of the session object; if the value is "Confirming Connection", it MUST set the state
	// of the session object to Active and cancel the Session Setup timer associated with
	// that session object.
	//
	// If the call completes unsuccessfully, the primary partner SHOULD behave according
	// to the error code that was returned:
	//
	// * If the error code is 0x80000712 (E_CM_VERSION_SET_NOTSUPPORTED), or 0x800000173
	// (E_CM_S_PROTOCOL_NOT_SUPPORTED), or it retried the nested call for more than the
	// number of times specified in the *Session Setup Retry Count* ADM element, or if the
	// State field of the session object is not "Confirming Connection", the primary partner
	// MUST remove the session object from the session table and clean it up. For instructions
	// on cleaning up a session object, see section 3.2.1.3 ( ff2a0bdc-9952-4357-971e-9e659c8824c8
	// ).
	//
	// * If the error code is ox800000123 (E_CM_SERVER_NOT_READY) or 0x000006BB (RPC_S_SERVER_TOO_BUSY),
	// or any other implementation-specific error code, the primary partner SHOULD retry
	// the call for the number of times specified in the *Session Setup Retry Count* ADM
	// element.
	Poke(context.Context, *PokeRequest) (*PokeResponse, error)

	// The BuildContext method is invoked by either a primary partner or a secondary partner.
	// When invoked by a primary partner, the BuildContext method requests that the secondary
	// partner begin the next step of establishing a session. When invoked by a secondary
	// partner, the BuildContext method requests that the primary partner complete the establishment
	// of the session.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.1.1. Standard errors are defined
	// in [MS-ERREF] section 2.2.
	//
	// Standard errors are defined in [MS-ERREF] section 4.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000172 E_CM_VERSION_SET_NOTSUPPORTED | The return value indicates that the callee partner does not support the caller’s |
	//	|                                          | BindVersionSet parameter and will not execute the requested operation.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000124 E_CM_S_TIMEDOUT               | The return value indicates that the callee timed out while waiting for the       |
	//	|                                          | caller to complete the bind. This is returned by a secondary partner to a        |
	//	|                                          | primary partner if the primary partner does not return from the secondary        |
	//	|                                          | partner's call to BuildContext within half of the Session Setup Timer (section   |
	//	|                                          | 3.2.2.1) interval.                                                               |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter are supported by the partner.                                          |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table of return values describes the possible errors that SHOULD be
	// returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000120 E_CM_SESSION_DOWN     | In a scenario where the value of the sRank parameter is SRANK_SECONDARY, if      |
	//	|                                  | BuildContext is called and an existing session object is not found, the call     |
	//	|                                  | SHOULD return this value.<21>                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Connecting state.<22>                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is 1. For more information, see [C706].
	//
	// This method has different effects depending on the value of the sRank parameter.
	//
	// For the structure and sequence of data on the wire, see [C706] Transfer Syntax Network
	// Data Representation (NDR) topics.
	BuildContext(context.Context, *BuildContextRequest) (*BuildContextResponse, error)

	// The NegotiateResources method is invoked by one partner to request that the other
	// partner allocate resources for future use.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.4. Standard errors are defined in
	// [MS-ERREF] section 2.2.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS        | The return value indicates success.                                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000127 E_CM_OUTOFRESOURCES | The server was unable to allocate the resources requested and will continue to   |
	//	|                                | operate with the current set of resources.                                       |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table of return values describes the possible errors that SHOULD be
	// returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG          | This value is returned in the following scenarios: If the resource type that was |
	//	|                                  | passed in the resourceType parameter is not a valid resource. If the value of    |
	//	|                                  | the dwcRequested parameter is not between 1 and 1000.                            |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Active state.                                   |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// The opnum field value for this method is 2. See [C706].
	//
	// For the structure and sequence of data on the wire, see [C706] Transfer Syntax Network
	// Data Representation (NDR) topics.
	NegotiateResources(context.Context, *NegotiateResourcesRequest) (*NegotiateResourcesResponse, error)

	// The SendReceive method is invoked by one partner to transmit messages to the other
	// partner. Both the primary and the secondary participants have the option to call
	// this method multiple times after a session has been established between them.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either one of the values described in the following table of return
	// values or an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. For more information about how the client SHOULD behave based
	// on the possible return values, see section 3.4.6.4. Standard errors are defined in
	// [MS-ERREF] section 2.2.
	//
	//	+-------------------------+-------------------------------------+
	//	|         RETURN          |                                     |
	//	|       VALUE/CODE        |             DESCRIPTION             |
	//	|                         |                                     |
	//	+-------------------------+-------------------------------------+
	//	+-------------------------+-------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success. |
	//	+-------------------------+-------------------------------------+
	//
	// The table below describes the possible errors that SHOULD be returned by this method.
	//
	//	+----------------------------------+---------------------------------------------------------------------+
	//	|              RETURN              |                                                                     |
	//	|            VALUE/CODE            |                             DESCRIPTION                             |
	//	|                                  |                                                                     |
	//	+----------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------+---------------------------------------------------------------------+
	//	| 0x80000119 E_CM_TEARING_DOWN     | The session object is in the Requesting Teardown or Teardown state. |
	//	+----------------------------------+---------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Active state.                      |
	//	+----------------------------------+---------------------------------------------------------------------+
	//
	// The opnum field value for this method is 3, as specified in [C706].
	//
	// For the structure and sequence of data on the wire, see [C706] section 14.
	SendReceive(context.Context, *SendReceiveRequest) (*SendReceiveResponse, error)

	// The TearDownContext method is invoked by either a primary partner or a secondary
	// partner. When invoked by a primary partner, the TearDownContext method requests that
	// the secondary partner begin the next step of tearing down a session. When invoked
	// by a secondary partner, the TearDownContext method requests that the primary partner
	// complete the teardown of the session. The Microsoft Interface Definition Language
	// (MIDL) syntax of the method is as follows.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.2). Standard errors
	// are defined in [MS-ERREF] section 2.2. A client MUST NOT exhibit behavior observable
	// on the wire that is dependent on implementation-specific failure HRESULT values.
	//
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	|         RETURN          |                                                                                  |
	//	|       VALUE/CODE        |                                   DESCRIPTION                                    |
	//	|                         |                                                                                  |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success.                                              |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG | This value MAY be returned when an invalid sRank value is passed as a            |
	//	|                         | parameter.<27>                                                                   |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| 0x80004005 E_FAIL       | This return value indicates that the session failed to tear down within the      |
	//	|                         | interval specified by the Session Teardown Timer (section 3.2.2.2).              |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//
	// Thereafter, the method has a different effect depending on the value of the sRank
	// parameter and the value of the teardownType parameter.
	TearDownContext(context.Context, *TearDownContextRequest) (*TearDownContextResponse, error)

	// The BeginTearDown method is invoked by a secondary partner to request that a primary
	// partner begin session teardown.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.2). Standard errors
	// are defined in [MS-ERREF] section 2.2.
	//
	//	+-------------------------+-------------------------------------+
	//	|         RETURN          |                                     |
	//	|       VALUE/CODE        |             DESCRIPTION             |
	//	|                         |                                     |
	//	+-------------------------+-------------------------------------+
	//	+-------------------------+-------------------------------------+
	//	| 0x00000000 ERROR_STATUS | The return value indicates success. |
	//	+-------------------------+-------------------------------------+
	//
	// BeginTearDown MUST NOT be invoked on a secondary partner.
	//
	// If the session object is in the Teardown state, the primary partner MUST immediately
	// return from the method with S_OK. Otherwise, the primary partner MUST set the state
	// of the session object associated with the context handle to Teardown and return S_OK
	// from the method. Also, it MUST start the Session Teardown timer associated with that
	// session object and attempt to call the TearDownContext method on the secondary partner.
	// The secondary partner SHOULD choose to perform these actions asynchronously.
	BeginTearDown(context.Context, *BeginTearDownRequest) (*BeginTearDownResponse, error)

	// The PokeW method is equivalent in all ways to the Poke method except that its string
	// parameters are encoded in UTF-16.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return an implementation-specific HRESULT. A client MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only a behavior for the case when the call succeeds and another behavior
	// for the case when the call does not succeed, (see section 3.4.6.1.2). Standard errors
	// are defined in [MS-ERREF] section 2.2.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006D1 RPC_S_PROCNUM_OUT_OF_RANGE    | The return value indicates that the caller does not support this call.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY         | The session object is not in the Connecting state.<28>                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.<29>   |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// When a partner calls PokeW on another partner, an error code of RPC_S_PROCNUM_OUT_OF_RANGE
	// means that the callee does not support PokeW.
	PokeW(context.Context, *PokeWRequest) (*PokeWResponse, error)

	// The BuildContextW method is equivalent in all ways to the BuildContext method, except
	// that its string parameters are encoded in UTF-16. The MIDL syntax of the method is
	// as follows.
	//
	// Return Values: This method MUST return zero (0x00000000) on success. On failure,
	// it MUST return either 0x80000172 (E_CM_VERSION_SET_NOTSUPPORTED) or an implementation-specific
	// HRESULT. A client SHOULD distinguish between 0x80000172 and other error codes, as
	// specified in sections 3.3.4.2.1 and 3.3.4.2.2, but MUST NOT depend on implementation-specific
	// failure HRESULT values. From an over-the-wire communication point of view, the client
	// MUST implement only behaviors for the errors described in the following table.
	//
	// Standard errors are defined in [MS-ERREF] section 4.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                  RETURN                  |                                                                                  |
	//	|                VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                  | The return value indicates success.                                              |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000172 E_CM_VERSION_SET_NOTSUPPORTED | The return value indicates that the callee partner does not support the caller's |
	//	|                                          | BindVersionSet parameter and will not execute the requested operation.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006D1 RPC_S_PROCNUM_OUT_OF_RANGE    | The return value indicates that the caller does not support this call.           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000124 E_CM_S_TIMEDOUT               | The return value indicates that the callee timed out while waiting for the       |
	//	|                                          | caller to complete the bind. This value is returned by a secondary partner to    |
	//	|                                          | a primary partner if the primary partner does not return from the secondary      |
	//	|                                          | partner's call to BuildContext within half the amount of time specified in the   |
	//	|                                          | Session Setup Timer (section 3.2.2.1).                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000006BB RPC_S_SERVER_TOO_BUSY         | The return value indicates that the partner is too busy to complete this         |
	//	|                                          | operation. For more information, see [MS-RPCE] section 3.1.1.5.5.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000173 E_CM_S_PROTOCOL_NOT_SUPPORTED | The return value indicates that none of the protocols described in the rguchBlob |
	//	|                                          | parameter is supported by the partner.                                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80070057 E_INVALIDARG                  | The return value indicates that one of the specified arguments is invalid.       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//
	// The following table describes the possible implementation-specific errors that SHOULD
	// be returned by this method.
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|              RETURN              |                                                                                  |
	//	|            VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000120 E_CM_SESSION_DOWN     | In a scenario where the value of the sRank parameter is SRANK_SECONDARY, if      |
	//	|                                  | BuildContextW is called and an existing session object is not found, the call    |
	//	|                                  | SHOULD return this value.<30>                                                    |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| 0x80000123 E_CM_SERVER_NOT_READY | The session object is not in the Connecting state.<31>                           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//
	// When a partner calls BuildContextW on another partner, an error code of RPC_S_PROCNUM_OUT_OF_RANGE
	// means that the callee does not support BuildContextW.
	BuildContextW(context.Context, *BuildContextWRequest) (*BuildContextWResponse, error)
}

IXnRemote server interface.

type NegotiateResourcesRequest

type NegotiateResourcesRequest struct {
	// phContext: An RPC context, returned by a call to BuildContext or BuildContextW, correlated
	// with a session object that is in the Active state. For context handles, see [C706].
	Context *dcetypes.ContextHandle `idl:"name:phContext" json:"context"`
	// resourceType: A RESOURCE_TYPE enumerated value indicating the resource type to be
	// negotiated.
	//
	//	+---------------------+------------------------------------------------+
	//	|                     |                                                |
	//	|        VALUE        |                    MEANING                     |
	//	|                     |                                                |
	//	+---------------------+------------------------------------------------+
	//	+---------------------+------------------------------------------------+
	//	| RT_CONNECTIONS 0x00 | The resource to be negotiated is a connection. |
	//	+---------------------+------------------------------------------------+
	ResourceType ResourceType `idl:"name:resourceType" json:"resource_type"`
	// dwcRequested: An unsigned 32-bit integer that specifies the number of resources to
	// allocate. This value MUST be greater than 0x00 and less than 1,000.
	RequestedCount uint32 `idl:"name:dwcRequested" json:"requested_count"`
	// pdwcAccepted: A pointer to an unsigned 32-bit integer that receives the number of
	// resources that were allocated on behalf of the caller. This value SHOULD be smaller
	// than the value of dwcRequested if the partner was incapable of allocating all of
	// the requested resources. On input, this value MUST be set to 0x00000000.
	AcceptedCount uint32 `idl:"name:pdwcAccepted" json:"accepted_count"`
}

NegotiateResourcesRequest structure represents the NegotiateResources operation request

func (*NegotiateResourcesRequest) MarshalNDR

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

func (*NegotiateResourcesRequest) UnmarshalNDR

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

type NegotiateResourcesResponse

type NegotiateResourcesResponse struct {
	// pdwcAccepted: A pointer to an unsigned 32-bit integer that receives the number of
	// resources that were allocated on behalf of the caller. This value SHOULD be smaller
	// than the value of dwcRequested if the partner was incapable of allocating all of
	// the requested resources. On input, this value MUST be set to 0x00000000.
	AcceptedCount uint32 `idl:"name:pdwcAccepted" json:"accepted_count"`
	// Return: The NegotiateResources return value.
	Return int32 `idl:"name:Return" json:"return"`
}

NegotiateResourcesResponse structure represents the NegotiateResources operation response

func (*NegotiateResourcesResponse) MarshalNDR

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

func (*NegotiateResourcesResponse) UnmarshalNDR

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

type PokeRequest

type PokeRequest struct {
	// sRank: The session rank of the partner making the call. This parameter MUST be set
	// to 0x02 (SRANK_SECONDARY).
	//
	//	+----------------------+------------------------------------------+
	//	|                      |                                          |
	//	|        VALUE         |                 MEANING                  |
	//	|                      |                                          |
	//	+----------------------+------------------------------------------+
	//	+----------------------+------------------------------------------+
	//	| SRANK_SECONDARY 0x02 | The caller is the secondary participant. |
	//	+----------------------+------------------------------------------+
	Rank SessionRank `idl:"name:sRank" json:"rank"`
	// pszCalleeUuid: A string containing the primary partner's contact identifier (CID)
	// in the form of a GUID. The contact identifier (CID) MUST match the CID in the primary
	// partner's local name object and MUST be formatted into a string.
	CalleeUUID string `idl:"name:pszCalleeUuid;string" json:"callee_uuid"`
	// pszHostName: The string form of the caller's host name. This host name identifies
	// the machine on which the caller's instance of the MSDTC Connection Manager: OleTx
	// Transports Protocol is running. This value is used by the primary participant to
	// establish the RPC binding handle for its subsequent call to BuildContext. This MUST
	// be a NetBIOS name. For NetBIOS, see [NETBEUI], [RFC1001], and [RFC1002].
	HostName string `idl:"name:pszHostName;string" json:"host_name"`
	// pszUuidString: The string form of the caller's contact identifier (CID) in the form
	// of a GUID. This contact identifier (CID) identifies the caller's instance of the
	// MSDTC Connection Manager: OleTx Transports Protocol. It MUST match the CID in the
	// caller's local name object, and MUST be formatted into a string. This value is used
	// by the primary participant to establish the RPC binding handle for its subsequent
	// call to BuildContext.
	UUIDString string `idl:"name:pszUuidString;string" json:"uuid_string"`
	// dwcbSizeOfBlob: The count, in bytes, of the size of the binding info structure. This
	// parameter MUST be set to 0x00000008.
	SizeOfBlob uint32 `idl:"name:dwcbSizeOfBlob" json:"size_of_blob"`
	// rguchBlob: A byte array containing a BIND_INFO_BLOB structure specifying the transport
	// protocols supported. This information is used to build the RPC binding for the reverse
	// connection.
	Blob []byte `idl:"name:rguchBlob;size_is:(dwcbSizeOfBlob)" json:"blob"`
}

PokeRequest structure represents the Poke operation request

func (*PokeRequest) MarshalNDR

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

func (*PokeRequest) UnmarshalNDR

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

type PokeResponse

type PokeResponse struct {
	// Return: The Poke return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PokeResponse structure represents the Poke operation response

func (*PokeResponse) MarshalNDR

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

func (*PokeResponse) UnmarshalNDR

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

type PokeWRequest

type PokeWRequest struct {
	// sRank: The SESSION_RANK of the partner making the call. This parameter MUST be set
	// to 0x02 (SRANK_SECONDARY).
	//
	//	+----------------------+------------------------------------------+
	//	|                      |                                          |
	//	|        VALUE         |                 MEANING                  |
	//	|                      |                                          |
	//	+----------------------+------------------------------------------+
	//	+----------------------+------------------------------------------+
	//	| SRANK_SECONDARY 0x02 | The caller is the secondary participant. |
	//	+----------------------+------------------------------------------+
	Rank SessionRank `idl:"name:sRank" json:"rank"`
	// pwszCalleeUuid: The string form of the primary partner contact identifier (CID).
	// The contact identifier (CID) MUST match the contact identifier (CID) in the primary
	// partner local name object, and MUST be formatted into a string.
	CalleeUUID string `idl:"name:pwszCalleeUuid;string" json:"callee_uuid"`
	// pwszHostName: The string form of the caller's host name. This host name identifies
	// the machine in which the caller's instance of the MSDTC Connection Manager: OleTx
	// Transports Protocol is running. This MUST be a NetBIOS name. For NetBIOS, see [NETBEUI],
	// [RFC1001], and [RFC1002].
	HostName string `idl:"name:pwszHostName;string" json:"host_name"`
	// pwszUuidString: The string form of the caller's contact identifier (CID). This contact
	// identifier (CID) identifies the caller's instance of the MSDTC Connection Manager:
	// OleTx Transports Protocol; it MUST match the contact identifier (CID) in the caller's
	// local name object and MUST be formatted into a string.
	UUIDString string `idl:"name:pwszUuidString;string" json:"uuid_string"`
	// dwcbSizeOfBlob: The count, in bytes, of the size of the binding info structure. This
	// parameter MUST be set to the size of the BIND_INFO_BLOB, 8.
	SizeOfBlob uint32 `idl:"name:dwcbSizeOfBlob" json:"size_of_blob"`
	// rguchBlob: A byte array that contains a BIND_INFO_BLOB structure.
	Blob []byte `idl:"name:rguchBlob;size_is:(dwcbSizeOfBlob)" json:"blob"`
}

PokeWRequest structure represents the PokeW operation request

func (*PokeWRequest) MarshalNDR

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

func (*PokeWRequest) UnmarshalNDR

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

type PokeWResponse

type PokeWResponse struct {
	// Return: The PokeW return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PokeWResponse structure represents the PokeW operation response

func (*PokeWResponse) MarshalNDR

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

func (*PokeWResponse) UnmarshalNDR

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

type ResourceType

type ResourceType uint16

ResourceType type represents RESOURCE_TYPE RPC enumeration.

var (
	ResourceTypeConnections ResourceType = 0
)

func (ResourceType) String

func (o ResourceType) String() string

type SendReceiveRequest

type SendReceiveRequest struct {
	// phContext: An RPC context handle, returned by a call to BuildContext or BuildContextW,
	// correlated with a session object in the Active state. For context handles, see [C706].
	Context *dcetypes.ContextHandle `idl:"name:phContext" json:"context"`
	// dwcMessages: An unsigned 32-bit integer specifying the number of messages being sent.
	MessagesCount uint32 `idl:"name:dwcMessages" json:"messages_count"`
	// dwcbSizeOfBoxCar: Size in bytes of the box car specified by rguchBoxCar.
	SizeOfBoxCar uint32 `idl:"name:dwcbSizeOfBoxCar" json:"size_of_box_car"`
	// rguchBoxCar: An array of bytes that contains the messages being sent.
	BoxCar []byte `idl:"name:rguchBoxCar;size_is:(dwcbSizeOfBoxCar)" json:"box_car"`
}

SendReceiveRequest structure represents the SendReceive operation request

func (*SendReceiveRequest) MarshalNDR

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

func (*SendReceiveRequest) UnmarshalNDR

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

type SendReceiveResponse

type SendReceiveResponse struct {
	// Return: The SendReceive return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SendReceiveResponse structure represents the SendReceive operation response

func (*SendReceiveResponse) MarshalNDR

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

func (*SendReceiveResponse) UnmarshalNDR

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

type SessionRank

type SessionRank uint16

SessionRank type represents SESSION_RANK RPC enumeration.

var (
	SessionRankSrankPrimary   SessionRank = 1
	SessionRankSrankSecondary SessionRank = 2
)

func (SessionRank) String

func (o SessionRank) String() string

type TearDownContextRequest

type TearDownContextRequest struct {
	// contextHandle: An RPC context handle, returned by a call to BuildContext or BuildContextW,
	// is correlated with a session object that is in the Active state. After TearDownContext
	// is executed, on either success or failure requests, contextHandle will be set to
	// null. For context handles, see [C706].
	ContextHandle *dcetypes.ContextHandle `idl:"name:contextHandle" json:"context_handle"`
	// sRank: A SESSION_RANK enumerated value indicating whether the teardown request is
	// being made by a primary partner or secondary partner. The teardown request MUST be
	// sent from a primary partner only.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| SRANK_PRIMARY 0x01   | The caller is the primary partner in this session. The callee MUST be a          |
	//	|                      | secondary partner in this session, and the caller MUST be a primary partner in   |
	//	|                      | this session.                                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| SRANK_SECONDARY 0x02 | The caller is the secondary partner in this session. The callee MUST be a        |
	//	|                      | primary partner in this session, and the caller MUST be a secondary partner in   |
	//	|                      | this session.                                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	Rank SessionRank `idl:"name:sRank" json:"rank"`
	// tearDownType: The reason for tearing down the session. It MUST be one of the following
	// values.
	//
	//	+-----------------+---------------------------------------------------------------+
	//	|                 |                                                               |
	//	|      VALUE      |                            MEANING                            |
	//	|                 |                                                               |
	//	+-----------------+---------------------------------------------------------------+
	//	+-----------------+---------------------------------------------------------------+
	//	| TT_FORCE 0x00   | The session is being forcefully torn down.                    |
	//	+-----------------+---------------------------------------------------------------+
	//	| TT_PROBLEM 0x02 | The session is being torn down because an error has occurred. |
	//	+-----------------+---------------------------------------------------------------+
	TearDownType TeardownType `idl:"name:tearDownType" json:"tear_down_type"`
}

TearDownContextRequest structure represents the TearDownContext operation request

func (*TearDownContextRequest) MarshalNDR

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

func (*TearDownContextRequest) UnmarshalNDR

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

type TearDownContextResponse

type TearDownContextResponse struct {
	// contextHandle: An RPC context handle, returned by a call to BuildContext or BuildContextW,
	// is correlated with a session object that is in the Active state. After TearDownContext
	// is executed, on either success or failure requests, contextHandle will be set to
	// null. For context handles, see [C706].
	ContextHandle *dcetypes.ContextHandle `idl:"name:contextHandle" json:"context_handle"`
	// Return: The TearDownContext return value.
	Return int32 `idl:"name:Return" json:"return"`
}

TearDownContextResponse structure represents the TearDownContext operation response

func (*TearDownContextResponse) MarshalNDR

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

func (*TearDownContextResponse) UnmarshalNDR

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

type TeardownType

type TeardownType uint16

TeardownType type represents TEARDOWN_TYPE RPC enumeration.

var (
	TeardownTypeForce   TeardownType = 0
	TeardownTypeProblem TeardownType = 2
)

func (TeardownType) String

func (o TeardownType) String() string

Jump to

Keyboard shortcuts

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