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

rpcinterface_77df7a80f29811d0835800a024c480a8_1_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/77df7a80-f298-11d0-8358-00a024c480a8/1.0"

Package rpcinterface_77df7a80f29811d0835800a024c480a8_1_0 is the descriptor for the dscomm RPC interface, abstract syntax 77df7a80-f298-11d0-8358-00a024c480a8 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 9, 15, 16, 17, 18, 24, 25, 26 are “not used on the wire” and are omitted.

const (
    OpnumS_DSCreateObject           uint16 = 0
    OpnumS_DSDeleteObject           uint16 = 1
    OpnumS_DSGetProps               uint16 = 2
    OpnumS_DSSetProps               uint16 = 3
    OpnumS_DSGetObjectSecurity      uint16 = 4
    OpnumS_DSSetObjectSecurity      uint16 = 5
    OpnumS_DSLookupBegin            uint16 = 6
    OpnumS_DSLookupNext             uint16 = 7
    OpnumS_DSLookupEnd              uint16 = 8
    OpnumS_DSDeleteObjectGuid       uint16 = 10
    OpnumS_DSGetPropsGuid           uint16 = 11
    OpnumS_DSSetPropsGuid           uint16 = 12
    OpnumS_DSGetObjectSecurityGuid  uint16 = 13
    OpnumS_DSSetObjectSecurityGuid  uint16 = 14
    OpnumS_DSQMSetMachineProperties uint16 = 19
    OpnumS_DSCreateServersCache     uint16 = 20
    OpnumS_DSQMGetObjectSecurity    uint16 = 21
    OpnumS_DSValidateServer         uint16 = 22
    OpnumS_DSCloseServerHandle      uint16 = 23
    OpnumS_DSGetServerPort          uint16 = 27
)

Status codes returned by this interface. Every dscomm method returns an HRESULT; the values are the Message Queuing result codes ([MS-MQMQ] 2.4, mqerror.h). 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_QUEUE_EXISTS               uint32 = 0xC00E0005
    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_MQCOLUMNS          uint32 = 0xC00E0038
    MQ_ERROR_ILLEGAL_PROPID             uint32 = 0xC00E0039
    MQ_ERROR_ILLEGAL_RELATION           uint32 = 0xC00E003A
    MQ_ERROR_ILLEGAL_PROPERTY_VALUE     uint32 = 0xC00E003C
    MQ_ERROR_ILLEGAL_RESTRICTION_PROPID uint32 = 0xC00E003E
    MQ_ERROR_DS_ERROR                   uint32 = 0xC00E0043
    MQ_ERROR_ILLEGAL_SORT_PROPID        uint32 = 0xC00E0055
)

PipeName is retained for descriptor uniformity, but dscomm 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 = `\dscomm`

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_DSCreateObject:           "S_DSCreateObject",
    OpnumS_DSDeleteObject:           "S_DSDeleteObject",
    OpnumS_DSGetProps:               "S_DSGetProps",
    OpnumS_DSSetProps:               "S_DSSetProps",
    OpnumS_DSGetObjectSecurity:      "S_DSGetObjectSecurity",
    OpnumS_DSSetObjectSecurity:      "S_DSSetObjectSecurity",
    OpnumS_DSLookupBegin:            "S_DSLookupBegin",
    OpnumS_DSLookupNext:             "S_DSLookupNext",
    OpnumS_DSLookupEnd:              "S_DSLookupEnd",
    OpnumS_DSDeleteObjectGuid:       "S_DSDeleteObjectGuid",
    OpnumS_DSGetPropsGuid:           "S_DSGetPropsGuid",
    OpnumS_DSSetPropsGuid:           "S_DSSetPropsGuid",
    OpnumS_DSGetObjectSecurityGuid:  "S_DSGetObjectSecurityGuid",
    OpnumS_DSSetObjectSecurityGuid:  "S_DSSetObjectSecurityGuid",
    OpnumS_DSQMSetMachineProperties: "S_DSQMSetMachineProperties",
    OpnumS_DSCreateServersCache:     "S_DSCreateServersCache",
    OpnumS_DSQMGetObjectSecurity:    "S_DSQMGetObjectSecurity",
    OpnumS_DSValidateServer:         "S_DSValidateServer",
    OpnumS_DSCloseServerHandle:      "S_DSCloseServerHandle",
    OpnumS_DSGetServerPort:          "S_DSGetServerPort",
}

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 dscomm abstract syntax identifier: 77df7a80-f298-11d0-8358-00a024c480a8, version 1.0.

Subpackages