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

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.

Subpackages