rpcinterface_76d12b80346711d391ff0090272f9ea3_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/76d12b80-3467-11d3-91ff-0090272f9ea3/1.0"
Package rpcinterface_76d12b80346711d391ff0090272f9ea3_1_0 is the descriptor for the qmcomm2 RPC interface, abstract syntax 76d12b80-3467-11d3-91ff-0090272f9ea3 version 1.0 ([MS-MQMP]).
Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed: the PipeName, the status-code table, and doc comments are not derivable from the IDL, and have been reviewed by hand against [MS-MQMP] and [MS-MQMQ].
Index
Constants
Opnums for the on-the-wire methods.
const (
OpnumQMSendMessageInternalEx uint16 = 0
Opnumrpc_ACSendMessageEx uint16 = 1
Opnumrpc_ACReceiveMessageEx uint16 = 2
Opnumrpc_ACCreateCursorEx uint16 = 3
)
Status codes returned by this interface. Every qmcomm2 method returns an HRESULT; the values are the Message Queuing result codes ([MS-MQMQ] 2.4, mqerror.h). Only the codes most relevant to the send/receive operations are enumerated here; StatusString falls back to the hex value for any other HRESULT.
const (
StatusSuccess uint32 = 0x00000000 // MQ_OK
MQ_ERROR uint32 = 0xC00E0001
MQ_ERROR_QUEUE_NOT_FOUND uint32 = 0xC00E0003
MQ_ERROR_QUEUE_NOT_ACTIVE uint32 = 0xC00E0004
MQ_ERROR_INVALID_PARAMETER uint32 = 0xC00E0006
MQ_ERROR_INVALID_HANDLE uint32 = 0xC00E0007
MQ_ERROR_OPERATION_CANCELLED uint32 = 0xC00E0008
MQ_ERROR_SHARING_VIOLATION uint32 = 0xC00E0009
MQ_ERROR_SERVICE_NOT_AVAILABLE uint32 = 0xC00E000B
MQ_ERROR_MESSAGE_ALREADY_RECEIVED uint32 = 0xC00E001D
MQ_ERROR_ACCESS_DENIED uint32 = 0xC00E0025
MQ_ERROR_INSUFFICIENT_RESOURCES uint32 = 0xC00E0027
MQ_ERROR_IO_TIMEOUT uint32 = 0xC00E001B
MQ_ERROR_TRANSACTION_USAGE uint32 = 0xC00E0050
)
PipeName is retained for descriptor uniformity, but qmcomm2 is NOT a named-pipe interface: per [MS-MQMP] 2.1 the protocol is carried over ncacn_ip_tcp on an RPC dynamic endpoint (resolved through the endpoint mapper), with ncacn_spx as an optional legacy sequence. There is no fixed \pipe transport; the value below is only a stable short name for the interface.
const PipeName = `\qmcomm2`
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{
OpnumQMSendMessageInternalEx: "QMSendMessageInternalEx",
Opnumrpc_ACSendMessageEx: "rpc_ACSendMessageEx",
Opnumrpc_ACReceiveMessageEx: "rpc_ACReceiveMessageEx",
Opnumrpc_ACCreateCursorEx: "rpc_ACCreateCursorEx",
}
func StatusString
func StatusString(status uint32) string
StatusString returns a mnemonic for the documented status codes, otherwise the hex value.
func SyntaxID
func SyntaxID() syntax.SyntaxID
SyntaxID returns the qmcomm2 abstract syntax identifier: 76d12b80-3467-11d3-91ff-0090272f9ea3, version 1.0.