Generated from Manticore v1.1.6 • 388 packages. View on pkg.go.dev

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.

Subpackages