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

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.

Subpackages