rpcinterface_906b0ce0c70b1067b31700dd010662da_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/906b0ce0-c70b-1067-b317-00dd010662da/1.0"
Package rpcinterface_906b0ce0c70b1067b31700dd010662da_1_0 is the descriptor for the IXnRemote RPC interface, abstract syntax 906b0ce0-c70b-1067-b317-00dd010662da version 1.0 ([MS-CMPO]).
Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed by hand: the transport note (IXnRemote is ncacn_ip_tcp, not a named pipe) and the HRESULT status table are not derivable from the IDL and were added on review.
Index
Constants
Opnums for the on-the-wire methods.
const (
OpnumPoke uint16 = 0
OpnumBuildContext uint16 = 1
OpnumNegotiateResources uint16 = 2
OpnumSendReceive uint16 = 3
OpnumTearDownContext uint16 = 4
OpnumBeginTearDown uint16 = 5
OpnumPokeW uint16 = 6
OpnumBuildContextW uint16 = 7
)
HRESULT codes returned by the IXnRemote methods. Every method returns an HRESULT ([MS-DTYP] 2.2.18); success is S_OK. [MS-CMPO] does not enumerate a closed set of failure codes, so beyond S_OK only the standard HRESULT values a partner may surface are named here — any other code is rendered as hex by StatusString.
const (
// StatusSuccess (S_OK) indicates the method succeeded.
StatusSuccess uint32 = 0x00000000
// StatusFail (E_FAIL) is the generic unspecified-failure HRESULT.
StatusFail uint32 = 0x80004005
// StatusOutOfMemory (E_OUTOFMEMORY) indicates the partner could not allocate memory.
StatusOutOfMemory uint32 = 0x8007000E
// StatusInvalidArg (E_INVALIDARG) indicates one or more arguments were invalid.
StatusInvalidArg uint32 = 0x80070057
)
PipeName is retained for descriptor uniformity, but IXnRemote is NOT a named-pipe interface: per [MS-CMPO] 2.1 the protocol is carried over ncacn_ip_tcp on a dynamic endpoint that the client resolves through the RPC endpoint mapper (TCP/135) by this interface’s UUID — the endpoint and options are passed empty to rpc_string_binding_compose ([MS-CMPO] 3.4.2.1). The value below is a placeholder, not the standard binding for this interface.
const PipeName = `\IXnRemote`
Variables
NameToOpnum is the reverse of OpnumToName, built at init so the two never drift.
var NameToOpnum = func() map[string]uint16 {
m := make(map[string]uint16, len(OpnumToName))
for op, name := range OpnumToName {
m[name] = op
}
return m
}()
OpnumToName maps each on-the-wire opnum to its method name; the single source of truth.
var OpnumToName = map[uint16]string{
OpnumPoke: "Poke",
OpnumBuildContext: "BuildContext",
OpnumNegotiateResources: "NegotiateResources",
OpnumSendReceive: "SendReceive",
OpnumTearDownContext: "TearDownContext",
OpnumBeginTearDown: "BeginTearDown",
OpnumPokeW: "PokeW",
OpnumBuildContextW: "BuildContextW",
}
func StatusString
func StatusString(status uint32) string
StatusString returns a mnemonic for the recognized HRESULT codes, otherwise the hex value.
func SyntaxID
func SyntaxID() syntax.SyntaxID
SyntaxID returns the IXnRemote abstract syntax identifier: 906b0ce0-c70b-1067-b317-00dd010662da, version 1.0.