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

rpcinterface_f5cc5a184264101a8c5908002b2f8426_56_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/f5cc5a18-4264-101a-8c59-08002b2f8426/56.0"

Package rpcinterface_f5cc5a184264101a8c5908002b2f8426_56_0 is the descriptor for the nspi RPC interface, abstract syntax f5cc5a18-4264-101a-8c59-08002b2f8426 version 56.0 ([MS-NSPI]).

Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed and refined by hand: the PipeName (transport, [MS-NSPI] 2.1) and the status-code table ([MS-NSPI] 2.2.2 / [MS-OXCDATA]) are not derivable from the IDL.

Index

Constants

Opnums for the on-the-wire methods. Opnums 15 are “not used on the wire” and are omitted.

const (
    OpnumNspiBind              uint16 = 0
    OpnumNspiUnbind            uint16 = 1
    OpnumNspiUpdateStat        uint16 = 2
    OpnumNspiQueryRows         uint16 = 3
    OpnumNspiSeekEntries       uint16 = 4
    OpnumNspiGetMatches        uint16 = 5
    OpnumNspiResortRestriction uint16 = 6
    OpnumNspiDNToMId           uint16 = 7
    OpnumNspiGetPropList       uint16 = 8
    OpnumNspiGetProps          uint16 = 9
    OpnumNspiCompareMIds       uint16 = 10
    OpnumNspiModProps          uint16 = 11
    OpnumNspiGetSpecialTable   uint16 = 12
    OpnumNspiGetTemplateInfo   uint16 = 13
    OpnumNspiModLinkAtt        uint16 = 14
    OpnumNspiQueryColumns      uint16 = 16
    OpnumNspiGetNamesFromIDs   uint16 = 17
    OpnumNspiGetIDsFromNames   uint16 = 18
    OpnumNspiResolveNames      uint16 = 19
    OpnumNspiResolveNamesW     uint16 = 20
)

Status codes an NSPI method may return. NSPI methods return a LONG whose permitted values are the [MS-NSPI] section 2.2.2 “Permitted Error Code Values”, defined in [MS-OXCDATA] section 2.4 (Error Codes) and 2.5 (Warning Codes). The two success-severity codes (high bit clear) are Success and the ErrorsReturned warning; the remainder are failures ([MS-OXCDATA] values). [MS-NSPI] also permits “TooBig”, whose numeric value is defined in [MS-OXCDATA]; it is intentionally not hardcoded here.

const (
    StatusSuccess            uint32 = 0x00000000 // Success (S_OK)
    StatusErrorsReturned     uint32 = 0x00040380 // ErrorsReturned (MAPI_W_ERRORS_RETURNED) — warning
    StatusGeneralFailure     uint32 = 0x80004005 // GeneralFailure (MAPI_E_CALL_FAILED)
    StatusNotSupported       uint32 = 0x80040102 // NotSupported (MAPI_E_NO_SUPPORT)
    StatusInvalidObject      uint32 = 0x80040108 // InvalidObject (MAPI_E_INVALID_OBJECT)
    StatusOutOfResources     uint32 = 0x8004010E // OutOfResources (MAPI_E_NOT_ENOUGH_RESOURCES)
    StatusNotFound           uint32 = 0x8004010F // NotFound (MAPI_E_NOT_FOUND)
    StatusLogonFailed        uint32 = 0x80040111 // LogonFailed (MAPI_E_LOGON_FAILED)
    StatusTooComplex         uint32 = 0x80040117 // TooComplex (MAPI_E_TOO_COMPLEX)
    StatusInvalidCodepage    uint32 = 0x8004011E // InvalidCodepage (MAPI_E_UNKNOWN_CPID)
    StatusInvalidLocale      uint32 = 0x8004011F // InvalidLocale (MAPI_E_UNKNOWN_LCID)
    StatusTableTooBig        uint32 = 0x80040403 // TableTooBig (MAPI_E_TABLE_TOO_BIG)
    StatusInvalidBookmark    uint32 = 0x80040405 // InvalidBookmark (MAPI_E_INVALID_BOOKMARK)
    StatusAmbiguousRecipient uint32 = 0x80040700 // AmbiguousRecipient (MAPI_E_AMBIGUOUS_RECIP)
    StatusAccessDenied       uint32 = 0x80070005 // AccessDenied (MAPI_E_NO_ACCESS)
    StatusNotEnoughMemory    uint32 = 0x8007000E // NotEnoughMemory (MAPI_E_NOT_ENOUGH_MEMORY)
    StatusInvalidParameter   uint32 = 0x80070057 // InvalidParameter (MAPI_E_INVALID_PARAMETER)
)

PipeName is empty: NSPI has no well-known named-pipe endpoint. [MS-NSPI] section 2.1 (Transport) binds this interface over RPC on dynamic endpoints ([C706] Part 4) across the ncacn_np, ncacn_http, and ncacn_ip_tcp protocol sequences; a client discovers the endpoint through the RPC endpoint mapper (or, for TCP, a server-configured static port), so there is no fixed IPC$-relative pipe. The interface is identified by its UUID/version.

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{
    OpnumNspiBind:              "NspiBind",
    OpnumNspiUnbind:            "NspiUnbind",
    OpnumNspiUpdateStat:        "NspiUpdateStat",
    OpnumNspiQueryRows:         "NspiQueryRows",
    OpnumNspiSeekEntries:       "NspiSeekEntries",
    OpnumNspiGetMatches:        "NspiGetMatches",
    OpnumNspiResortRestriction: "NspiResortRestriction",
    OpnumNspiDNToMId:           "NspiDNToMId",
    OpnumNspiGetPropList:       "NspiGetPropList",
    OpnumNspiGetProps:          "NspiGetProps",
    OpnumNspiCompareMIds:       "NspiCompareMIds",
    OpnumNspiModProps:          "NspiModProps",
    OpnumNspiGetSpecialTable:   "NspiGetSpecialTable",
    OpnumNspiGetTemplateInfo:   "NspiGetTemplateInfo",
    OpnumNspiModLinkAtt:        "NspiModLinkAtt",
    OpnumNspiQueryColumns:      "NspiQueryColumns",
    OpnumNspiGetNamesFromIDs:   "NspiGetNamesFromIDs",
    OpnumNspiGetIDsFromNames:   "NspiGetIDsFromNames",
    OpnumNspiResolveNames:      "NspiResolveNames",
    OpnumNspiResolveNamesW:     "NspiResolveNamesW",
}

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 nspi abstract syntax identifier: f5cc5a18-4264-101a-8c59-08002b2f8426, version 56.0.

Subpackages