rpcinterface_708cca10956911d1b2a50060977d8118_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/708cca10-9569-11d1-b2a5-0060977d8118/1.0"
Package rpcinterface_708cca10956911d1b2a50060977d8118_1_0 is the descriptor for the dscomm2 RPC interface, abstract syntax 708cca10-9569-11d1-b2a5-0060977d8118 version 1.0 ([MS-MQDS]).
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 7 are “not used on the wire” and are omitted.
const (
OpnumS_DSGetComputerSites uint16 = 0
OpnumS_DSGetPropsEx uint16 = 1
OpnumS_DSGetPropsGuidEx uint16 = 2
OpnumS_DSBeginDeleteNotification uint16 = 3
OpnumS_DSNotifyDelete uint16 = 4
OpnumS_DSEndDeleteNotification uint16 = 5
OpnumS_DSIsServerGC uint16 = 6
OpnumS_DSGetGCListInDomain uint16 = 8
)
Status codes returned by this interface. Most dscomm2 methods return an HRESULT (the Message Queuing result codes, [MS-MQMQ] 2.4, mqerror.h); S_DSIsServerGC returns a Boolean-valued long. Only the codes most relevant to directory 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_INVALID_PARAMETER uint32 = 0xC00E0006
MQ_ERROR_INVALID_HANDLE uint32 = 0xC00E0007
MQ_ERROR_NO_DS uint32 = 0xC00E0013
MQ_ERROR_ILLEGAL_QUEUE_PATHNAME uint32 = 0xC00E0014
MQ_ERROR_ACCESS_DENIED uint32 = 0xC00E0025
MQ_ERROR_ILLEGAL_PROPID uint32 = 0xC00E0039
MQ_ERROR_ILLEGAL_PROPERTY_VALUE uint32 = 0xC00E003C
MQ_ERROR_DS_ERROR uint32 = 0xC00E0043
)
PipeName is retained for descriptor uniformity, but dscomm2 is NOT a named-pipe interface: per [MS-MQDS] 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 = `\dscomm2`
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{
OpnumS_DSGetComputerSites: "S_DSGetComputerSites",
OpnumS_DSGetPropsEx: "S_DSGetPropsEx",
OpnumS_DSGetPropsGuidEx: "S_DSGetPropsGuidEx",
OpnumS_DSBeginDeleteNotification: "S_DSBeginDeleteNotification",
OpnumS_DSNotifyDelete: "S_DSNotifyDelete",
OpnumS_DSEndDeleteNotification: "S_DSEndDeleteNotification",
OpnumS_DSIsServerGC: "S_DSIsServerGC",
OpnumS_DSGetGCListInDomain: "S_DSGetGCListInDomain",
}
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 dscomm2 abstract syntax identifier: 708cca10-9569-11d1-b2a5-0060977d8118, version 1.0.