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.