rpcinterface_123456781234abcdef000123456789ab_1_0
import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/12345678-1234-abcd-ef00-0123456789ab/1.0"
Package rpcinterface_123456781234abcdef000123456789ab_1_0 is the descriptor for the winspool RPC interface, abstract syntax 12345678-1234-abcd-ef00-0123456789ab version 1.0 ([MS-RPRN]).
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 37, 38, 43, 44, 45, 49, 50, 54, 55, 57, 63, 64, 68, 74, 75, 76, 83, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 103, 105, 106, 107, 108, 109, 114, 115, 118 are “not used on the wire” and are omitted.
const (
OpnumRpcEnumPrinters uint16 = 0
OpnumRpcOpenPrinter uint16 = 1
OpnumRpcSetJob uint16 = 2
OpnumRpcGetJob uint16 = 3
OpnumRpcEnumJobs uint16 = 4
OpnumRpcAddPrinter uint16 = 5
OpnumRpcDeletePrinter uint16 = 6
OpnumRpcSetPrinter uint16 = 7
OpnumRpcGetPrinter uint16 = 8
OpnumRpcAddPrinterDriver uint16 = 9
OpnumRpcEnumPrinterDrivers uint16 = 10
OpnumRpcGetPrinterDriver uint16 = 11
OpnumRpcGetPrinterDriverDirectory uint16 = 12
OpnumRpcDeletePrinterDriver uint16 = 13
OpnumRpcAddPrintProcessor uint16 = 14
OpnumRpcEnumPrintProcessors uint16 = 15
OpnumRpcGetPrintProcessorDirectory uint16 = 16
OpnumRpcStartDocPrinter uint16 = 17
OpnumRpcStartPagePrinter uint16 = 18
OpnumRpcWritePrinter uint16 = 19
OpnumRpcEndPagePrinter uint16 = 20
OpnumRpcAbortPrinter uint16 = 21
OpnumRpcReadPrinter uint16 = 22
OpnumRpcEndDocPrinter uint16 = 23
OpnumRpcAddJob uint16 = 24
OpnumRpcScheduleJob uint16 = 25
OpnumRpcGetPrinterData uint16 = 26
OpnumRpcSetPrinterData uint16 = 27
OpnumRpcWaitForPrinterChange uint16 = 28
OpnumRpcClosePrinter uint16 = 29
OpnumRpcAddForm uint16 = 30
OpnumRpcDeleteForm uint16 = 31
OpnumRpcGetForm uint16 = 32
OpnumRpcSetForm uint16 = 33
OpnumRpcEnumForms uint16 = 34
OpnumRpcEnumPorts uint16 = 35
OpnumRpcEnumMonitors uint16 = 36
OpnumRpcDeletePort uint16 = 39
OpnumRpcCreatePrinterIC uint16 = 40
OpnumRpcPlayGdiScriptOnPrinterIC uint16 = 41
OpnumRpcDeletePrinterIC uint16 = 42
OpnumRpcAddMonitor uint16 = 46
OpnumRpcDeleteMonitor uint16 = 47
OpnumRpcDeletePrintProcessor uint16 = 48
OpnumRpcEnumPrintProcessorDatatypes uint16 = 51
OpnumRpcResetPrinter uint16 = 52
OpnumRpcGetPrinterDriver2 uint16 = 53
OpnumRpcFindClosePrinterChangeNotification uint16 = 56
OpnumRpcReplyOpenPrinter uint16 = 58
OpnumRpcRouterReplyPrinter uint16 = 59
OpnumRpcReplyClosePrinter uint16 = 60
OpnumRpcAddPortEx uint16 = 61
OpnumRpcRemoteFindFirstPrinterChangeNotification uint16 = 62
OpnumRpcRemoteFindFirstPrinterChangeNotificationEx uint16 = 65
OpnumRpcRouterReplyPrinterEx uint16 = 66
OpnumRpcRouterRefreshPrinterChangeNotification uint16 = 67
OpnumRpcOpenPrinterEx uint16 = 69
OpnumRpcAddPrinterEx uint16 = 70
OpnumRpcSetPort uint16 = 71
OpnumRpcEnumPrinterData uint16 = 72
OpnumRpcDeletePrinterData uint16 = 73
OpnumRpcSetPrinterDataEx uint16 = 77
OpnumRpcGetPrinterDataEx uint16 = 78
OpnumRpcEnumPrinterDataEx uint16 = 79
OpnumRpcEnumPrinterKey uint16 = 80
OpnumRpcDeletePrinterDataEx uint16 = 81
OpnumRpcDeletePrinterKey uint16 = 82
OpnumRpcDeletePrinterDriverEx uint16 = 84
OpnumRpcAddPerMachineConnection uint16 = 85
OpnumRpcDeletePerMachineConnection uint16 = 86
OpnumRpcEnumPerMachineConnections uint16 = 87
OpnumRpcXcvData uint16 = 88
OpnumRpcAddPrinterDriverEx uint16 = 89
OpnumRpcFlushPrinter uint16 = 96
OpnumRpcSendRecvBidiData uint16 = 97
OpnumRpcGetCorePrinterDrivers uint16 = 102
OpnumRpcGetPrinterDriverPackagePath uint16 = 104
OpnumRpcGetJobNamedPropertyValue uint16 = 110
OpnumRpcSetJobNamedProperty uint16 = 111
OpnumRpcDeleteJobNamedProperty uint16 = 112
OpnumRpcEnumJobNamedProperties uint16 = 113
OpnumRpcLogJobInfoForBranchOffice uint16 = 116
OpnumRpcRegeneratePrintDeviceCapabilities uint16 = 117
OpnumRpcIppCreateJobOnPrinter uint16 = 119
OpnumRpcIppGetJobAttributes uint16 = 120
OpnumRpcIppSetJobAttributes uint16 = 121
OpnumRpcIppGetPrinterAttributes uint16 = 122
OpnumRpcIppSetPrinterAttributes uint16 = 123
)
Status codes returned by this interface. MS-RPRN methods return a Win32 error code as their result ([MS-RPRN] 2.2.5, [MS-ERREF] 2.2), not an NTSTATUS. Only the codes commonly returned by the print protocol are enumerated here; StatusString falls back to the hex value for anything else.
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
ErrorNotSupported uint32 = 0x00000032 // ERROR_NOT_SUPPORTED
ErrorInvalidParameter uint32 = 0x00000057 // ERROR_INVALID_PARAMETER
ErrorInsufficientBuffer uint32 = 0x0000007A // ERROR_INSUFFICIENT_BUFFER
ErrorInvalidLevel uint32 = 0x0000007C // ERROR_INVALID_LEVEL
ErrorInvalidName uint32 = 0x0000007B // ERROR_INVALID_NAME
ErrorMoreData uint32 = 0x000000EA // ERROR_MORE_DATA
ErrorNoMoreItems uint32 = 0x00000103 // ERROR_NO_MORE_ITEMS
ErrorUnknownPort uint32 = 0x00000704 // ERROR_UNKNOWN_PORT (1796)
ErrorUnknownPrinterDriver uint32 = 0x00000705 // ERROR_UNKNOWN_PRINTER_DRIVER (1797)
ErrorUnknownPrintProcessor uint32 = 0x00000706 // ERROR_UNKNOWN_PRINTPROCESSOR (1798)
ErrorInvalidPrinterName uint32 = 0x00000709 // ERROR_INVALID_PRINTER_NAME (1801)
ErrorPrinterAlreadyExists uint32 = 0x0000070A // ERROR_PRINTER_ALREADY_EXISTS (1802)
ErrorInvalidDatatype uint32 = 0x0000070C // ERROR_INVALID_DATATYPE (1804)
ErrorPrinterDeleted uint32 = 0x00000771 // ERROR_PRINTER_DELETED (1905)
ErrorInvalidPrinterState uint32 = 0x00000772 // ERROR_INVALID_PRINTER_STATE (1906)
ErrorPrinterDriverInUse uint32 = 0x00000BB9 // ERROR_PRINTER_DRIVER_IN_USE (3001)
ErrorSplNoStartdoc uint32 = 0x00000E15 // ERROR_SPL_NO_STARTDOC (3605)
)
PipeName is the IPC$-relative named pipe for the winspool interface ([MS-RPRN] 1.9, 2.1): the Print System Remote Protocol is reached over \PIPE\spoolss.
const PipeName = `\spoolss`
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{
OpnumRpcEnumPrinters: "RpcEnumPrinters",
OpnumRpcOpenPrinter: "RpcOpenPrinter",
OpnumRpcSetJob: "RpcSetJob",
OpnumRpcGetJob: "RpcGetJob",
OpnumRpcEnumJobs: "RpcEnumJobs",
OpnumRpcAddPrinter: "RpcAddPrinter",
OpnumRpcDeletePrinter: "RpcDeletePrinter",
OpnumRpcSetPrinter: "RpcSetPrinter",
OpnumRpcGetPrinter: "RpcGetPrinter",
OpnumRpcAddPrinterDriver: "RpcAddPrinterDriver",
OpnumRpcEnumPrinterDrivers: "RpcEnumPrinterDrivers",
OpnumRpcGetPrinterDriver: "RpcGetPrinterDriver",
OpnumRpcGetPrinterDriverDirectory: "RpcGetPrinterDriverDirectory",
OpnumRpcDeletePrinterDriver: "RpcDeletePrinterDriver",
OpnumRpcAddPrintProcessor: "RpcAddPrintProcessor",
OpnumRpcEnumPrintProcessors: "RpcEnumPrintProcessors",
OpnumRpcGetPrintProcessorDirectory: "RpcGetPrintProcessorDirectory",
OpnumRpcStartDocPrinter: "RpcStartDocPrinter",
OpnumRpcStartPagePrinter: "RpcStartPagePrinter",
OpnumRpcWritePrinter: "RpcWritePrinter",
OpnumRpcEndPagePrinter: "RpcEndPagePrinter",
OpnumRpcAbortPrinter: "RpcAbortPrinter",
OpnumRpcReadPrinter: "RpcReadPrinter",
OpnumRpcEndDocPrinter: "RpcEndDocPrinter",
OpnumRpcAddJob: "RpcAddJob",
OpnumRpcScheduleJob: "RpcScheduleJob",
OpnumRpcGetPrinterData: "RpcGetPrinterData",
OpnumRpcSetPrinterData: "RpcSetPrinterData",
OpnumRpcWaitForPrinterChange: "RpcWaitForPrinterChange",
OpnumRpcClosePrinter: "RpcClosePrinter",
OpnumRpcAddForm: "RpcAddForm",
OpnumRpcDeleteForm: "RpcDeleteForm",
OpnumRpcGetForm: "RpcGetForm",
OpnumRpcSetForm: "RpcSetForm",
OpnumRpcEnumForms: "RpcEnumForms",
OpnumRpcEnumPorts: "RpcEnumPorts",
OpnumRpcEnumMonitors: "RpcEnumMonitors",
OpnumRpcDeletePort: "RpcDeletePort",
OpnumRpcCreatePrinterIC: "RpcCreatePrinterIC",
OpnumRpcPlayGdiScriptOnPrinterIC: "RpcPlayGdiScriptOnPrinterIC",
OpnumRpcDeletePrinterIC: "RpcDeletePrinterIC",
OpnumRpcAddMonitor: "RpcAddMonitor",
OpnumRpcDeleteMonitor: "RpcDeleteMonitor",
OpnumRpcDeletePrintProcessor: "RpcDeletePrintProcessor",
OpnumRpcEnumPrintProcessorDatatypes: "RpcEnumPrintProcessorDatatypes",
OpnumRpcResetPrinter: "RpcResetPrinter",
OpnumRpcGetPrinterDriver2: "RpcGetPrinterDriver2",
OpnumRpcFindClosePrinterChangeNotification: "RpcFindClosePrinterChangeNotification",
OpnumRpcReplyOpenPrinter: "RpcReplyOpenPrinter",
OpnumRpcRouterReplyPrinter: "RpcRouterReplyPrinter",
OpnumRpcReplyClosePrinter: "RpcReplyClosePrinter",
OpnumRpcAddPortEx: "RpcAddPortEx",
OpnumRpcRemoteFindFirstPrinterChangeNotification: "RpcRemoteFindFirstPrinterChangeNotification",
OpnumRpcRemoteFindFirstPrinterChangeNotificationEx: "RpcRemoteFindFirstPrinterChangeNotificationEx",
OpnumRpcRouterReplyPrinterEx: "RpcRouterReplyPrinterEx",
OpnumRpcRouterRefreshPrinterChangeNotification: "RpcRouterRefreshPrinterChangeNotification",
OpnumRpcOpenPrinterEx: "RpcOpenPrinterEx",
OpnumRpcAddPrinterEx: "RpcAddPrinterEx",
OpnumRpcSetPort: "RpcSetPort",
OpnumRpcEnumPrinterData: "RpcEnumPrinterData",
OpnumRpcDeletePrinterData: "RpcDeletePrinterData",
OpnumRpcSetPrinterDataEx: "RpcSetPrinterDataEx",
OpnumRpcGetPrinterDataEx: "RpcGetPrinterDataEx",
OpnumRpcEnumPrinterDataEx: "RpcEnumPrinterDataEx",
OpnumRpcEnumPrinterKey: "RpcEnumPrinterKey",
OpnumRpcDeletePrinterDataEx: "RpcDeletePrinterDataEx",
OpnumRpcDeletePrinterKey: "RpcDeletePrinterKey",
OpnumRpcDeletePrinterDriverEx: "RpcDeletePrinterDriverEx",
OpnumRpcAddPerMachineConnection: "RpcAddPerMachineConnection",
OpnumRpcDeletePerMachineConnection: "RpcDeletePerMachineConnection",
OpnumRpcEnumPerMachineConnections: "RpcEnumPerMachineConnections",
OpnumRpcXcvData: "RpcXcvData",
OpnumRpcAddPrinterDriverEx: "RpcAddPrinterDriverEx",
OpnumRpcFlushPrinter: "RpcFlushPrinter",
OpnumRpcSendRecvBidiData: "RpcSendRecvBidiData",
OpnumRpcGetCorePrinterDrivers: "RpcGetCorePrinterDrivers",
OpnumRpcGetPrinterDriverPackagePath: "RpcGetPrinterDriverPackagePath",
OpnumRpcGetJobNamedPropertyValue: "RpcGetJobNamedPropertyValue",
OpnumRpcSetJobNamedProperty: "RpcSetJobNamedProperty",
OpnumRpcDeleteJobNamedProperty: "RpcDeleteJobNamedProperty",
OpnumRpcEnumJobNamedProperties: "RpcEnumJobNamedProperties",
OpnumRpcLogJobInfoForBranchOffice: "RpcLogJobInfoForBranchOffice",
OpnumRpcRegeneratePrintDeviceCapabilities: "RpcRegeneratePrintDeviceCapabilities",
OpnumRpcIppCreateJobOnPrinter: "RpcIppCreateJobOnPrinter",
OpnumRpcIppGetJobAttributes: "RpcIppGetJobAttributes",
OpnumRpcIppSetJobAttributes: "RpcIppSetJobAttributes",
OpnumRpcIppGetPrinterAttributes: "RpcIppGetPrinterAttributes",
OpnumRpcIppSetPrinterAttributes: "RpcIppSetPrinterAttributes",
}
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 winspool abstract syntax identifier: 12345678-1234-abcd-ef00-0123456789ab, version 1.0.