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.