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

rpcinterface_da5a86c512c24943ab307f74a813d853_1_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/da5a86c5-12c2-4943-ab30-7f74a813d853/1.0"

Package rpcinterface_da5a86c512c24943ab307f74a813d853_1_0 is the descriptor for the PerflibV2 RPC interface, abstract syntax da5a86c5-12c2-4943-ab30-7f74a813d853 version 1.0 ([MS-PCQ]).

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 (
    OpnumPerflibV2EnumerateCounterSet             uint16 = 0
    OpnumPerflibV2QueryCounterSetRegistrationInfo uint16 = 1
    OpnumPerflibV2EnumerateCounterSetInstances    uint16 = 2
    OpnumPerflibV2OpenQueryHandle                 uint16 = 3
    OpnumPerflibV2CloseQueryHandle                uint16 = 4
    OpnumPerflibV2QueryCounterInfo                uint16 = 5
    OpnumPerflibV2QueryCounterData                uint16 = 6
    OpnumPerflibV2ValidateCounters                uint16 = 7
)

Status codes returned by this interface. Every method returns error_status_t, a Win32 error code from [MS-ERREF] section 2.2; the codes below are those [MS-PCQ] documents explicitly for the PerflibV2 methods (sections 3.1.4.1-3.1.4.8).

const (
    StatusSuccess          uint32 = 0x00000000 // ERROR_SUCCESS
    ErrorAccessDenied      uint32 = 0x00000005 // ERROR_ACCESS_DENIED: auth level below RPC_C_AUTHN_LEVEL_PKT_PRIVACY
    ErrorInvalidHandle     uint32 = 0x00000006 // ERROR_INVALID_HANDLE: the query handle is not valid
    ErrorNotEnoughMemory   uint32 = 0x00000008 // ERROR_NOT_ENOUGH_MEMORY: lpData buffer too small (pdwRtnSize holds the required size)
    ErrorInvalidParameter  uint32 = 0x00000057 // ERROR_INVALID_PARAMETER: a parameter is out of range
    ErrorWmiGuidNotFound   uint32 = 0x00001068 // ERROR_WMI_GUID_NOT_FOUND: no counterset/provider with the given GUID
    ErrorWmiItemIdNotFound uint32 = 0x0000106A // ERROR_WMI_ITEMID_NOT_FOUND: counter id not found in the counterset
)

PipeName is the IPC$-relative named pipe for the PerflibV2 interface. [MS-PCQ] 2.1 specifies the ncacn_np well-known endpoint \PIPE\winreg (shared with other interfaces multiplexed over that pipe; the interface is identified by its UUID, not the pipe).

const PipeName = `\winreg`

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{
    OpnumPerflibV2EnumerateCounterSet:             "PerflibV2EnumerateCounterSet",
    OpnumPerflibV2QueryCounterSetRegistrationInfo: "PerflibV2QueryCounterSetRegistrationInfo",
    OpnumPerflibV2EnumerateCounterSetInstances:    "PerflibV2EnumerateCounterSetInstances",
    OpnumPerflibV2OpenQueryHandle:                 "PerflibV2OpenQueryHandle",
    OpnumPerflibV2CloseQueryHandle:                "PerflibV2CloseQueryHandle",
    OpnumPerflibV2QueryCounterInfo:                "PerflibV2QueryCounterInfo",
    OpnumPerflibV2QueryCounterData:                "PerflibV2QueryCounterData",
    OpnumPerflibV2ValidateCounters:                "PerflibV2ValidateCounters",
}

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 PerflibV2 abstract syntax identifier: da5a86c5-12c2-4943-ab30-7f74a813d853, version 1.0.

Subpackages