rpcinterface_338cd001224431f1aaaa900038001003_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/338cd001-2244-31f1-aaaa-900038001003/1.0"
Package rpcinterface_338cd001224431f1aaaa900038001003_1_0 is the descriptor for the winreg RPC interface, abstract syntax 338cd001-2244-31f1-aaaa-900038001003 version 1.0 ([MS-RRP]).
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. Opnums 14, 24, 25, 28 and 30 are reserved slots the server does not implement (the IDL declares them OpnumNNotImplemented); they are kept in the maps below to document the complete wire numbering but expose no callable stub.
const (
OpnumOpenClassesRoot uint16 = 0
OpnumOpenCurrentUser uint16 = 1
OpnumOpenLocalMachine uint16 = 2
OpnumOpenPerformanceData uint16 = 3
OpnumOpenUsers uint16 = 4
OpnumBaseRegCloseKey uint16 = 5
OpnumBaseRegCreateKey uint16 = 6
OpnumBaseRegDeleteKey uint16 = 7
OpnumBaseRegDeleteValue uint16 = 8
OpnumBaseRegEnumKey uint16 = 9
OpnumBaseRegEnumValue uint16 = 10
OpnumBaseRegFlushKey uint16 = 11
OpnumBaseRegGetKeySecurity uint16 = 12
OpnumBaseRegLoadKey uint16 = 13
OpnumOpnum14NotImplemented uint16 = 14
OpnumBaseRegOpenKey uint16 = 15
OpnumBaseRegQueryInfoKey uint16 = 16
OpnumBaseRegQueryValue uint16 = 17
OpnumBaseRegReplaceKey uint16 = 18
OpnumBaseRegRestoreKey uint16 = 19
OpnumBaseRegSaveKey uint16 = 20
OpnumBaseRegSetKeySecurity uint16 = 21
OpnumBaseRegSetValue uint16 = 22
OpnumBaseRegUnLoadKey uint16 = 23
OpnumOpnum24NotImplemented uint16 = 24
OpnumOpnum25NotImplemented uint16 = 25
OpnumBaseRegGetVersion uint16 = 26
OpnumOpenCurrentConfig uint16 = 27
OpnumOpnum28NotImplemented uint16 = 28
OpnumBaseRegQueryMultipleValues uint16 = 29
OpnumOpnum30NotImplemented uint16 = 30
OpnumBaseRegSaveKeyEx uint16 = 31
OpnumOpenPerformanceText uint16 = 32
OpnumOpenPerformanceNlsText uint16 = 33
OpnumBaseRegQueryMultipleValues2 uint16 = 34
OpnumBaseRegDeleteKeyEx uint16 = 35
)
Status codes returned by winreg methods. The methods return error_status_t, a Win32 error code ([MS-ERREF] 2.2 / [MS-RRP] 3.1.5); the values below are the Win32 codes (in hex) the methods document. StatusSuccess (ERROR_SUCCESS) is the canonical success value.
const (
StatusSuccess uint32 = 0x00000000 // ERROR_SUCCESS
ErrorFileNotFound uint32 = 0x00000002 // ERROR_FILE_NOT_FOUND
ErrorAccessDenied uint32 = 0x00000005 // ERROR_ACCESS_DENIED
ErrorInvalidHandle uint32 = 0x00000006 // ERROR_INVALID_HANDLE
ErrorInvalidParameter uint32 = 0x00000057 // ERROR_INVALID_PARAMETER
ErrorInsufficientBuffer uint32 = 0x0000007A // ERROR_INSUFFICIENT_BUFFER
ErrorMoreData uint32 = 0x000000EA // ERROR_MORE_DATA
ErrorNoMoreItems uint32 = 0x00000103 // ERROR_NO_MORE_ITEMS
ErrorBadPathname uint32 = 0x000000A1 // ERROR_BAD_PATHNAME
ErrorCallNotImplemented uint32 = 0x00000078 // ERROR_CALL_NOT_IMPLEMENTED
ErrorKeyDeleted uint32 = 0x000003FA // ERROR_KEY_DELETED
ErrorKeyHasChildren uint32 = 0x000003FB // ERROR_KEY_HAS_CHILDREN
ErrorRegSubkeyNotFound uint32 = 0x000003F9 // (ERROR_BADKEY family) subkey not found
ErrorShutdownInProgress uint32 = 0x0000045B // ERROR_SHUTDOWN_IN_PROGRESS
)
Registry value types (the dwType field of values) ([MS-RRP] 3.1.1.6, [MS-DTYP]).
const (
RegNone uint32 = 0
RegSz uint32 = 1
RegExpandSz uint32 = 2
RegBinary uint32 = 3
RegDword uint32 = 4 // little-endian
RegDwordBigEndian uint32 = 5
RegLink uint32 = 6
RegMultiSz uint32 = 7
RegResourceList uint32 = 8
RegFullResourceDescriptor uint32 = 9
RegResourceRequirementList uint32 = 10
RegQword uint32 = 11
)
REGSAM key-access rights (the samDesired argument) ([MS-RRP] 2.2.3, [MS-DTYP] 2.4.3).
const (
KeyQueryValue uint32 = 0x00000001
KeySetValue uint32 = 0x00000002
KeyCreateSubKey uint32 = 0x00000004
KeyEnumerateSubKeys uint32 = 0x00000008
KeyNotify uint32 = 0x00000010
KeyCreateLink uint32 = 0x00000020
KeyWow64_64Key uint32 = 0x00000100
KeyWow64_32Key uint32 = 0x00000200
KeyRead uint32 = 0x00020019
KeyWrite uint32 = 0x00020006
KeyExecute uint32 = 0x00020019
KeyAllAccess uint32 = 0x000F003F
RegOptionVolatile uint32 = 0x00000001 // dwOptions for BaseRegCreateKey
RegOptionNonVolatile uint32 = 0x00000000
)
Key-creation disposition (the lpdwDisposition out value of BaseRegCreateKey) ([MS-RRP] 3.1.5.7).
const (
RegCreatedNewKey uint32 = 0x00000001
RegOpenedExistingKey uint32 = 0x00000002
)
SECURITY_INFORMATION bits selecting parts of a security descriptor ([MS-DTYP] 2.4.7).
const (
OwnerSecurityInformation uint32 = 0x00000001
GroupSecurityInformation uint32 = 0x00000002
DaclSecurityInformation uint32 = 0x00000004
SaclSecurityInformation uint32 = 0x00000008
)
PipeName is the IPC$-relative named pipe for the winreg interface ([MS-RRP] 1.9 / 2.1: the Remote Registry service listens on the \PIPE\winreg endpoint over ncacn_np).
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{
OpnumOpenClassesRoot: "OpenClassesRoot",
OpnumOpenCurrentUser: "OpenCurrentUser",
OpnumOpenLocalMachine: "OpenLocalMachine",
OpnumOpenPerformanceData: "OpenPerformanceData",
OpnumOpenUsers: "OpenUsers",
OpnumBaseRegCloseKey: "BaseRegCloseKey",
OpnumBaseRegCreateKey: "BaseRegCreateKey",
OpnumBaseRegDeleteKey: "BaseRegDeleteKey",
OpnumBaseRegDeleteValue: "BaseRegDeleteValue",
OpnumBaseRegEnumKey: "BaseRegEnumKey",
OpnumBaseRegEnumValue: "BaseRegEnumValue",
OpnumBaseRegFlushKey: "BaseRegFlushKey",
OpnumBaseRegGetKeySecurity: "BaseRegGetKeySecurity",
OpnumBaseRegLoadKey: "BaseRegLoadKey",
OpnumOpnum14NotImplemented: "Opnum14NotImplemented",
OpnumBaseRegOpenKey: "BaseRegOpenKey",
OpnumBaseRegQueryInfoKey: "BaseRegQueryInfoKey",
OpnumBaseRegQueryValue: "BaseRegQueryValue",
OpnumBaseRegReplaceKey: "BaseRegReplaceKey",
OpnumBaseRegRestoreKey: "BaseRegRestoreKey",
OpnumBaseRegSaveKey: "BaseRegSaveKey",
OpnumBaseRegSetKeySecurity: "BaseRegSetKeySecurity",
OpnumBaseRegSetValue: "BaseRegSetValue",
OpnumBaseRegUnLoadKey: "BaseRegUnLoadKey",
OpnumOpnum24NotImplemented: "Opnum24NotImplemented",
OpnumOpnum25NotImplemented: "Opnum25NotImplemented",
OpnumBaseRegGetVersion: "BaseRegGetVersion",
OpnumOpenCurrentConfig: "OpenCurrentConfig",
OpnumOpnum28NotImplemented: "Opnum28NotImplemented",
OpnumBaseRegQueryMultipleValues: "BaseRegQueryMultipleValues",
OpnumOpnum30NotImplemented: "Opnum30NotImplemented",
OpnumBaseRegSaveKeyEx: "BaseRegSaveKeyEx",
OpnumOpenPerformanceText: "OpenPerformanceText",
OpnumOpenPerformanceNlsText: "OpenPerformanceNlsText",
OpnumBaseRegQueryMultipleValues2: "BaseRegQueryMultipleValues2",
OpnumBaseRegDeleteKeyEx: "BaseRegDeleteKeyEx",
}
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 winreg abstract syntax identifier: 338cd001-2244-31f1-aaaa-900038001003, version 1.0.