rpcinterface_1088a980eae511d08d9b00a02453c337_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/1088a980-eae5-11d0-8d9b-00a02453c337/1.0"
Package rpcinterface_1088a980eae511d08d9b00a02453c337_1_0 is the descriptor for the qm2qm RPC interface, abstract syntax 1088a980-eae5-11d0-8d9b-00a02453c337 version 1.0 ([MS-MQQP]).
Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed by hand against [MS-MQQP] and [MS-MQMQ]: the transport note on PipeName, the status-code table, and the doc comments are not derivable from the IDL and were confirmed against the spec.
Index
Constants
Opnums for the on-the-wire methods.
const (
OpnumRemoteQMStartReceive uint16 = 0
OpnumRemoteQMEndReceive uint16 = 1
OpnumRemoteQMOpenQueue uint16 = 2
OpnumRemoteQMCloseQueue uint16 = 3
OpnumRemoteQMCloseCursor uint16 = 4
OpnumRemoteQMCancelReceive uint16 = 5
OpnumRemoteQMPurgeQueue uint16 = 6
OpnumRemoteQMGetQMQMServerPort uint16 = 7
OpnumRemoteQmGetVersion uint16 = 8
OpnumRemoteQMStartReceive2 uint16 = 9
OpnumRemoteQMStartReceiveByLookupId uint16 = 10
)
Status codes returned by the HRESULT-returning methods of this interface. The values are the Message Queuing result codes ([MS-MQMQ] 2.4, mqerror.h), plus the one NTSTATUS the spec cites directly. MQ_OK is success; per [MS-MQQP] 3.1.4.x the client MUST treat every failure HRESULT identically. Only the codes the [MS-MQQP] method sections enumerate are listed here; StatusString falls back to the hex value for any other code.
Note the two exceptions among the opnums: RemoteQMGetQMQMServerPort (opnum 7) does NOT return an HRESULT — its DWORD result is a TCP/SPX port, with 0x00000000 signalling failure — and RemoteQmGetVersion (opnum 8) has no return value at all.
const (
StatusSuccess uint32 = 0x00000000 // MQ_OK
MQ_ERROR uint32 = 0xC00E0001
MQ_ERROR_INVALID_PARAMETER uint32 = 0xC00E0006
MQ_ERROR_INVALID_HANDLE uint32 = 0xC00E0007
MQ_ERROR_IO_TIMEOUT uint32 = 0xC00E001B
STATUS_INVALID_PARAMETER uint32 = 0xC000000D
)
PipeName is empty: qm2qm has no named-pipe endpoint. Per [MS-MQQP] section 2.1 the interface is bound over RPC-on-TCP (ncacn_ip_tcp) — and, on legacy Windows NT/2000, ncacn_spx — at an RPC dynamic endpoint assigned by the endpoint mapper ([C706] Part 4), so there is no IPC$-relative pipe. A static endpoint MAY instead be obtained by calling RemoteQMGetQMQMServerPort (opnum 7, section 3.1.4.8).
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{
OpnumRemoteQMStartReceive: "RemoteQMStartReceive",
OpnumRemoteQMEndReceive: "RemoteQMEndReceive",
OpnumRemoteQMOpenQueue: "RemoteQMOpenQueue",
OpnumRemoteQMCloseQueue: "RemoteQMCloseQueue",
OpnumRemoteQMCloseCursor: "RemoteQMCloseCursor",
OpnumRemoteQMCancelReceive: "RemoteQMCancelReceive",
OpnumRemoteQMPurgeQueue: "RemoteQMPurgeQueue",
OpnumRemoteQMGetQMQMServerPort: "RemoteQMGetQMQMServerPort",
OpnumRemoteQmGetVersion: "RemoteQmGetVersion",
OpnumRemoteQMStartReceive2: "RemoteQMStartReceive2",
OpnumRemoteQMStartReceiveByLookupId: "RemoteQMStartReceiveByLookupId",
}
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 qm2qm abstract syntax identifier: 1088a980-eae5-11d0-8d9b-00a02453c337, version 1.0.