rpcinterface_fdb3a030065f11d1bb9b00a024ea5525_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/fdb3a030-065f-11d1-bb9b-00a024ea5525/1.0"
Package rpcinterface_fdb3a030065f11d1bb9b00a024ea5525_1_0 is the descriptor for the qmcomm RPC interface, abstract syntax fdb3a030-065f-11d1-bb9b-00a024ea5525 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. Opnums 0, 5, 13, 21, 24, 25, 29, 30, 32, 33, 34 are “not used on the wire” and are omitted.
const (
OpnumR_QMGetRemoteQueueName uint16 = 1
OpnumR_QMOpenRemoteQueue uint16 = 2
OpnumR_QMCloseRemoteQueueContext uint16 = 3
OpnumR_QMCreateRemoteCursor uint16 = 4
OpnumR_QMCreateObjectInternal uint16 = 6
OpnumR_QMSetObjectSecurityInternal uint16 = 7
OpnumR_QMGetObjectSecurityInternal uint16 = 8
OpnumR_QMDeleteObject uint16 = 9
OpnumR_QMGetObjectProperties uint16 = 10
OpnumR_QMSetObjectProperties uint16 = 11
OpnumR_QMObjectPathToObjectFormat uint16 = 12
OpnumR_QMGetTmWhereabouts uint16 = 14
OpnumR_QMEnlistTransaction uint16 = 15
OpnumR_QMEnlistInternalTransaction uint16 = 16
OpnumR_QMCommitTransaction uint16 = 17
OpnumR_QMAbortTransaction uint16 = 18
Opnumrpc_QMOpenQueueInternal uint16 = 19
Opnumrpc_ACCloseHandle uint16 = 20
Opnumrpc_ACCloseCursor uint16 = 22
Opnumrpc_ACSetCursorProperties uint16 = 23
Opnumrpc_ACHandleToFormatName uint16 = 26
Opnumrpc_ACPurgeQueue uint16 = 27
OpnumR_QMQueryQMRegistryInternal uint16 = 28
OpnumR_QMGetRTQMServerPort uint16 = 31
)
Status codes returned by this interface. Every qmcomm method returns an HRESULT (except R_QMGetRTQMServerPort, which returns a port number); the values are the Message Queuing result codes ([MS-MQMQ] 2.4, mqerror.h). Only the codes most relevant to queue-manager 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_PROPERTY uint32 = 0xC00E0002
MQ_ERROR_QUEUE_NOT_FOUND uint32 = 0xC00E0003
MQ_ERROR_QUEUE_NOT_ACTIVE uint32 = 0xC00E0004
MQ_ERROR_QUEUE_EXISTS uint32 = 0xC00E0005
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_NO_DS uint32 = 0xC00E0013
MQ_ERROR_ILLEGAL_QUEUE_PATHNAME uint32 = 0xC00E0014
MQ_ERROR_ILLEGAL_FORMATNAME uint32 = 0xC00E001E
MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL uint32 = 0xC00E001F
MQ_ERROR_ACCESS_DENIED uint32 = 0xC00E0025
MQ_ERROR_PRIVILEGE_NOT_HELD uint32 = 0xC00E0026
MQ_ERROR_INSUFFICIENT_RESOURCES uint32 = 0xC00E0027
MQ_ERROR_QUEUE_DELETED uint32 = 0xC00E002E
MQ_ERROR_TRANSACTION_USAGE uint32 = 0xC00E0050
MQ_ERROR_TRANSACTION_ENLIST uint32 = 0xC00E0058
)
PipeName is retained for descriptor uniformity, but qmcomm 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 = `\qmcomm`
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{
OpnumR_QMGetRemoteQueueName: "R_QMGetRemoteQueueName",
OpnumR_QMOpenRemoteQueue: "R_QMOpenRemoteQueue",
OpnumR_QMCloseRemoteQueueContext: "R_QMCloseRemoteQueueContext",
OpnumR_QMCreateRemoteCursor: "R_QMCreateRemoteCursor",
OpnumR_QMCreateObjectInternal: "R_QMCreateObjectInternal",
OpnumR_QMSetObjectSecurityInternal: "R_QMSetObjectSecurityInternal",
OpnumR_QMGetObjectSecurityInternal: "R_QMGetObjectSecurityInternal",
OpnumR_QMDeleteObject: "R_QMDeleteObject",
OpnumR_QMGetObjectProperties: "R_QMGetObjectProperties",
OpnumR_QMSetObjectProperties: "R_QMSetObjectProperties",
OpnumR_QMObjectPathToObjectFormat: "R_QMObjectPathToObjectFormat",
OpnumR_QMGetTmWhereabouts: "R_QMGetTmWhereabouts",
OpnumR_QMEnlistTransaction: "R_QMEnlistTransaction",
OpnumR_QMEnlistInternalTransaction: "R_QMEnlistInternalTransaction",
OpnumR_QMCommitTransaction: "R_QMCommitTransaction",
OpnumR_QMAbortTransaction: "R_QMAbortTransaction",
Opnumrpc_QMOpenQueueInternal: "rpc_QMOpenQueueInternal",
Opnumrpc_ACCloseHandle: "rpc_ACCloseHandle",
Opnumrpc_ACCloseCursor: "rpc_ACCloseCursor",
Opnumrpc_ACSetCursorProperties: "rpc_ACSetCursorProperties",
Opnumrpc_ACHandleToFormatName: "rpc_ACHandleToFormatName",
Opnumrpc_ACPurgeQueue: "rpc_ACPurgeQueue",
OpnumR_QMQueryQMRegistryInternal: "R_QMQueryQMRegistryInternal",
OpnumR_QMGetRTQMServerPort: "R_QMGetRTQMServerPort",
}
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 qmcomm abstract syntax identifier: fdb3a030-065f-11d1-bb9b-00a024ea5525, version 1.0.