rpcinterface_1a9134dd7b3945baad8844d01ca47f28_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/1a9134dd-7b39-45ba-ad88-44d01ca47f28/1.0"
Package rpcinterface_1a9134dd7b3945baad8844d01ca47f28_1_0 is the descriptor for the RemoteRead RPC interface, abstract syntax 1a9134dd-7b39-45ba-ad88-44d01ca47f28 version 1.0 ([MS-MQRR]).
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 must be confirmed by hand (see the TODO markers).
Index
Constants
Opnums for the on-the-wire methods. Opnums 1 are “not used on the wire” and are omitted.
const (
OpnumR_GetServerPort uint16 = 0
OpnumR_OpenQueue uint16 = 2
OpnumR_CloseQueue uint16 = 3
OpnumR_CreateCursor uint16 = 4
OpnumR_CloseCursor uint16 = 5
OpnumR_PurgeQueue uint16 = 6
OpnumR_StartReceive uint16 = 7
OpnumR_CancelReceive uint16 = 8
OpnumR_EndReceive uint16 = 9
OpnumR_MoveMessage uint16 = 10
OpnumR_OpenQueueForMove uint16 = 11
OpnumR_QMEnlistRemoteTransaction uint16 = 12
OpnumR_StartTransactionalReceive uint16 = 13
OpnumR_SetUserAcknowledgementClass uint16 = 14
OpnumR_EndTransactionalReceive uint16 = 15
)
Status codes returned by the HRESULT-returning methods of this interface. The values are the Message Queuing result codes ([MS-MQMQ] section 2.4, mqerror.h). MQ_OK is success; per [MS-MQRR] the client treats every failure HRESULT identically. Only the codes the [MS-MQRR] method sections enumerate for remote-read/cursor/transaction operations are listed here; StatusString falls back to the hex value for any other code.
Note: R_GetServerPort (opnum 0) does NOT return an HRESULT — its DWORD result is the RPC port on which the server receives remote-read requests (0x00000000 signals failure).
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_IO_TIMEOUT uint32 = 0xC00E001B
MQ_ERROR_ILLEGAL_CURSOR_ACTION uint32 = 0xC00E001C
MQ_ERROR_MESSAGE_ALREADY_RECEIVED uint32 = 0xC00E001D
MQ_ERROR_ACCESS_DENIED uint32 = 0xC00E0025
MQ_ERROR_PRIVILEGE_NOT_HELD uint32 = 0xC00E0026
MQ_ERROR_INSUFFICIENT_RESOURCES uint32 = 0xC00E0027
MQ_ERROR_TRANSACTION_USAGE uint32 = 0xC00E0050
MQ_ERROR_TRANSACTION_SEQUENCE uint32 = 0xC00E0051
MQ_ERROR_TRANSACTION_ENLIST uint32 = 0xC00E0058
MQ_ERROR_STALE_HANDLE uint32 = 0xC00E0056
MQ_ERROR_QUEUE_DELETED uint32 = 0xC00E005A
MQ_ERROR_ILLEGAL_CONTEXT uint32 = 0xC00E005B
MQ_ERROR_MESSAGE_NOT_FOUND uint32 = 0xC00E0088
)
PipeName is empty: the RemoteRead interface is not reached over a named pipe. Per [MS-MQRR] section 2.1 the protocol uses RPC over ncacn_ip_tcp with a dynamically assigned endpoint; a client discovers the server’s port via R_GetServerPort (opnum 0) or the RPC endpoint mapper. This mirrors its sibling MS-MQQP (qm2qm).
const PipeName = ``
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_GetServerPort: "R_GetServerPort",
OpnumR_OpenQueue: "R_OpenQueue",
OpnumR_CloseQueue: "R_CloseQueue",
OpnumR_CreateCursor: "R_CreateCursor",
OpnumR_CloseCursor: "R_CloseCursor",
OpnumR_PurgeQueue: "R_PurgeQueue",
OpnumR_StartReceive: "R_StartReceive",
OpnumR_CancelReceive: "R_CancelReceive",
OpnumR_EndReceive: "R_EndReceive",
OpnumR_MoveMessage: "R_MoveMessage",
OpnumR_OpenQueueForMove: "R_OpenQueueForMove",
OpnumR_QMEnlistRemoteTransaction: "R_QMEnlistRemoteTransaction",
OpnumR_StartTransactionalReceive: "R_StartTransactionalReceive",
OpnumR_SetUserAcknowledgementClass: "R_SetUserAcknowledgementClass",
OpnumR_EndTransactionalReceive: "R_EndTransactionalReceive",
}
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 RemoteRead abstract syntax identifier: 1a9134dd-7b39-45ba-ad88-44d01ca47f28, version 1.0.