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

rpcinterface_e35142354b0611d1ab0400c04fc2dcd2_4_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/e3514235-4b06-11d1-ab04-00c04fc2dcd2/4.0"

Package rpcinterface_e35142354b0611d1ab0400c04fc2dcd2_4_0 is the descriptor for the drsuapi RPC interface, abstract syntax e3514235-4b06-11d1-ab04-00c04fc2dcd2 version 4.0 ([MS-DRSR]).

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.

const (
    OpnumIDL_DRSBind                 uint16 = 0
    OpnumIDL_DRSUnbind               uint16 = 1
    OpnumIDL_DRSReplicaSync          uint16 = 2
    OpnumIDL_DRSGetNCChanges         uint16 = 3
    OpnumIDL_DRSUpdateRefs           uint16 = 4
    OpnumIDL_DRSReplicaAdd           uint16 = 5
    OpnumIDL_DRSReplicaDel           uint16 = 6
    OpnumIDL_DRSReplicaModify        uint16 = 7
    OpnumIDL_DRSVerifyNames          uint16 = 8
    OpnumIDL_DRSGetMemberships       uint16 = 9
    OpnumIDL_DRSInterDomainMove      uint16 = 10
    OpnumIDL_DRSGetNT4ChangeLog      uint16 = 11
    OpnumIDL_DRSCrackNames           uint16 = 12
    OpnumIDL_DRSWriteSPN             uint16 = 13
    OpnumIDL_DRSRemoveDsServer       uint16 = 14
    OpnumIDL_DRSRemoveDsDomain       uint16 = 15
    OpnumIDL_DRSDomainControllerInfo uint16 = 16
    OpnumIDL_DRSAddEntry             uint16 = 17
    OpnumIDL_DRSExecuteKCC           uint16 = 18
    OpnumIDL_DRSGetReplInfo          uint16 = 19
    OpnumIDL_DRSAddSidHistory        uint16 = 20
    OpnumIDL_DRSGetMemberships2      uint16 = 21
    OpnumIDL_DRSReplicaVerifyObjects uint16 = 22
    OpnumIDL_DRSGetObjectExistence   uint16 = 23
    OpnumIDL_DRSQuerySitesByCost     uint16 = 24
    OpnumIDL_DRSInitDemotion         uint16 = 25
    OpnumIDL_DRSReplicaDemotion      uint16 = 26
    OpnumIDL_DRSFinishDemotion       uint16 = 27
    OpnumIDL_DRSAddCloneDC           uint16 = 28
    OpnumIDL_DRSWriteNgcKey          uint16 = 29
    OpnumIDL_DRSReadNgcKey           uint16 = 30
)

Status codes returned by this interface. drsuapi methods return Win32 error codes (a ULONG/DWORD return value), NOT NTSTATUS — so StatusSuccess is ERROR_SUCCESS (0). Below are the generic Win32 codes plus the directory-replication (DRA) block from winerror.h / [MS-ERREF] 2.2. This is a curated subset; extend it (and StatusString) with additional DRA codes as each method is wire-validated.

const (
    StatusSuccess          uint32 = 0x00000000 // ERROR_SUCCESS
    ErrorAccessDenied      uint32 = 0x00000005 // ERROR_ACCESS_DENIED
    ErrorNotSupported      uint32 = 0x00000032 // ERROR_NOT_SUPPORTED
    ErrorInvalidParameter  uint32 = 0x00000057 // ERROR_INVALID_PARAMETER
    ErrorDsDraInvalidParam uint32 = 0x000020F5 // ERROR_DS_DRA_INVALID_PARAMETER (8437)
    ErrorDsDraBusy         uint32 = 0x000020F6 // ERROR_DS_DRA_BUSY (8438)
    ErrorDsDraBadDN        uint32 = 0x000020F7 // ERROR_DS_DRA_BAD_DN (8439)
    ErrorDsDraBadNC        uint32 = 0x000020F8 // ERROR_DS_DRA_BAD_NC (8440)
    ErrorDsDraDNExists     uint32 = 0x000020F9 // ERROR_DS_DRA_DN_EXISTS (8441)
    ErrorDsDraInternal     uint32 = 0x000020FA // ERROR_DS_DRA_INTERNAL_ERROR (8442)
    ErrorDsDraOutOfMem     uint32 = 0x000020FE // ERROR_DS_DRA_OUT_OF_MEM (8446)
    ErrorDsDraAccessDenied uint32 = 0x00002105 // ERROR_DS_DRA_ACCESS_DENIED (8453)
)

PipeName is retained for descriptor uniformity, but drsuapi is NOT a named-pipe interface: per [MS-DRSR] 2.1 the protocol is carried over ncacn_ip_tcp on a dynamic endpoint that the client resolves through the endpoint mapper (TCP/135), with RPC_C_AUTHN_LEVEL_PKT_PRIVACY. The transport wiring is added in a later phase; this constant is not the standard binding for this interface.

const PipeName = `\drsuapi`

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{
    OpnumIDL_DRSBind:                 "IDL_DRSBind",
    OpnumIDL_DRSUnbind:               "IDL_DRSUnbind",
    OpnumIDL_DRSReplicaSync:          "IDL_DRSReplicaSync",
    OpnumIDL_DRSGetNCChanges:         "IDL_DRSGetNCChanges",
    OpnumIDL_DRSUpdateRefs:           "IDL_DRSUpdateRefs",
    OpnumIDL_DRSReplicaAdd:           "IDL_DRSReplicaAdd",
    OpnumIDL_DRSReplicaDel:           "IDL_DRSReplicaDel",
    OpnumIDL_DRSReplicaModify:        "IDL_DRSReplicaModify",
    OpnumIDL_DRSVerifyNames:          "IDL_DRSVerifyNames",
    OpnumIDL_DRSGetMemberships:       "IDL_DRSGetMemberships",
    OpnumIDL_DRSInterDomainMove:      "IDL_DRSInterDomainMove",
    OpnumIDL_DRSGetNT4ChangeLog:      "IDL_DRSGetNT4ChangeLog",
    OpnumIDL_DRSCrackNames:           "IDL_DRSCrackNames",
    OpnumIDL_DRSWriteSPN:             "IDL_DRSWriteSPN",
    OpnumIDL_DRSRemoveDsServer:       "IDL_DRSRemoveDsServer",
    OpnumIDL_DRSRemoveDsDomain:       "IDL_DRSRemoveDsDomain",
    OpnumIDL_DRSDomainControllerInfo: "IDL_DRSDomainControllerInfo",
    OpnumIDL_DRSAddEntry:             "IDL_DRSAddEntry",
    OpnumIDL_DRSExecuteKCC:           "IDL_DRSExecuteKCC",
    OpnumIDL_DRSGetReplInfo:          "IDL_DRSGetReplInfo",
    OpnumIDL_DRSAddSidHistory:        "IDL_DRSAddSidHistory",
    OpnumIDL_DRSGetMemberships2:      "IDL_DRSGetMemberships2",
    OpnumIDL_DRSReplicaVerifyObjects: "IDL_DRSReplicaVerifyObjects",
    OpnumIDL_DRSGetObjectExistence:   "IDL_DRSGetObjectExistence",
    OpnumIDL_DRSQuerySitesByCost:     "IDL_DRSQuerySitesByCost",
    OpnumIDL_DRSInitDemotion:         "IDL_DRSInitDemotion",
    OpnumIDL_DRSReplicaDemotion:      "IDL_DRSReplicaDemotion",
    OpnumIDL_DRSFinishDemotion:       "IDL_DRSFinishDemotion",
    OpnumIDL_DRSAddCloneDC:           "IDL_DRSAddCloneDC",
    OpnumIDL_DRSWriteNgcKey:          "IDL_DRSWriteNgcKey",
    OpnumIDL_DRSReadNgcKey:           "IDL_DRSReadNgcKey",
}

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 drsuapi abstract syntax identifier: e3514235-4b06-11d1-ab04-00c04fc2dcd2, version 4.0.

Subpackages