winspool

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	WinspoolSyntaxUUID = &uuid.UUID{TimeLow: 0x12345678, TimeMid: 0x1234, TimeHiAndVersion: 0xabcd, ClockSeqHiAndReserved: 0xef, ClockSeqLow: 0x0, Node: [6]uint8{0x1, 0x23, 0x45, 0x67, 0x89, 0xab}}
	// Syntax ID
	WinspoolSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: WinspoolSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "rprn"
)
View Source
var SplfileContentTypePropertyName = "Spool File Contents"

SplfileContentTypePropertyName represents the SPLFILE_CONTENT_TYPE_PROP_NAME RPC constant

View Source
var TableDevMode = 3

TableDevMode represents the TABLE_DEVMODE RPC constant

View Source
var TableDword = 1

TableDword represents the TABLE_DWORD RPC constant

View Source
var TableSecurityDescriptor = 5

TableSecurityDescriptor represents the TABLE_SECURITYDESCRIPTOR RPC constant

View Source
var TableString = 2

TableString represents the TABLE_STRING RPC constant

View Source
var TableTime = 4

TableTime represents the TABLE_TIME RPC constant

Functions

func NewWinspoolServerHandle

func NewWinspoolServerHandle(o WinspoolServer) dcerpc.ServerHandle

func RegisterWinspoolServer

func RegisterWinspoolServer(conn dcerpc.Conn, o WinspoolServer, opts ...dcerpc.Option)

func WinspoolServerHandle

func WinspoolServerHandle(ctx context.Context, o WinspoolServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

Types

type AbortPrinterRequest

type AbortPrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

AbortPrinterRequest structure represents the RpcAbortPrinter operation request

func (*AbortPrinterRequest) MarshalNDR

func (o *AbortPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AbortPrinterRequest) UnmarshalNDR

func (o *AbortPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AbortPrinterResponse

type AbortPrinterResponse struct {
	// Return: The RpcAbortPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AbortPrinterResponse structure represents the RpcAbortPrinter operation response

func (*AbortPrinterResponse) MarshalNDR

func (o *AbortPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AbortPrinterResponse) UnmarshalNDR

func (o *AbortPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddFormRequest

type AddFormRequest struct {
	// hPrinter: A handle to a printer object or server object that MUST have been opened
	// using the RpcAddPrinter, RpcAddPrinterEx, RpcOpenPrinter, or RpcOpenPrinterEx methods.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pFormInfoContainer: This parameter MUST adhere to the parameter specification in
	// FORM_CONTAINER Parameters (section 3.1.4.1.8.4).
	FormInfoContainer *FormContainer `idl:"name:pFormInfoContainer" json:"form_info_container"`
}

AddFormRequest structure represents the RpcAddForm operation request

func (*AddFormRequest) MarshalNDR

func (o *AddFormRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddFormRequest) UnmarshalNDR

func (o *AddFormRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddFormResponse

type AddFormResponse struct {
	// Return: The RpcAddForm return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddFormResponse structure represents the RpcAddForm operation response

func (*AddFormResponse) MarshalNDR

func (o *AddFormResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddFormResponse) UnmarshalNDR

func (o *AddFormResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddJobRequest

type AddJobRequest struct {
	// hPrinter: A handle to a printer object that was opened using RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// Level: A value that MUST be 0x00000001, 0x00000002 or 0x00000003.
	Level uint32 `idl:"name:Level" json:"level"`
	// pAddJob: A pointer to a buffer of undefined values. This value can be NULL if cbBuf
	// is zero and Level is 0x00000001.
	AddJob []byte `idl:"name:pAddJob;size_is:(cbBuf);pointer:unique" json:"add_job"`
	// cbBuf: The size, in bytes, of the buffer pointed to by pAddJob. If Level is 0x00000002
	// or 0x00000003, this value SHOULD be greater than or equal to 10 bytes.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

AddJobRequest structure represents the RpcAddJob operation request

func (*AddJobRequest) MarshalNDR

func (o *AddJobRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddJobRequest) UnmarshalNDR

func (o *AddJobRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddJobResponse

type AddJobResponse struct {
	// pAddJob: A pointer to a buffer of undefined values. This value can be NULL if cbBuf
	// is zero and Level is 0x00000001.
	AddJob []byte `idl:"name:pAddJob;size_is:(cbBuf);pointer:unique" json:"add_job"`
	// pcbNeeded: A pointer to a variable that SHOULD receive zero.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcAddJob return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddJobResponse structure represents the RpcAddJob operation response

func (*AddJobResponse) MarshalNDR

func (o *AddJobResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddJobResponse) UnmarshalNDR

func (o *AddJobResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddMonitorRequest

type AddMonitorRequest struct {
	// Name: A parameter that adheres to the specification in Print Server Name Parameters
	// (section 3.1.4.1.4).
	Name string `idl:"name:Name;string;pointer:unique" json:"name"`
	// pMonitorContainer: A parameter that adheres to the specification in MONITOR_CONTAINER
	// Parameters (section 3.1.4.1.8.9). The Level member of the MONITOR_CONTAINER MUST
	// be 0x00000002.
	MonitorContainer *MonitorContainer `idl:"name:pMonitorContainer" json:"monitor_container"`
}

AddMonitorRequest structure represents the RpcAddMonitor operation request

func (*AddMonitorRequest) MarshalNDR

func (o *AddMonitorRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddMonitorRequest) UnmarshalNDR

func (o *AddMonitorRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddMonitorResponse

type AddMonitorResponse struct {
	// Return: The RpcAddMonitor return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddMonitorResponse structure represents the RpcAddMonitor operation response

func (*AddMonitorResponse) MarshalNDR

func (o *AddMonitorResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddMonitorResponse) UnmarshalNDR

func (o *AddMonitorResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPerMachineConnectionRequest

type AddPerMachineConnectionRequest struct {
	// pServer: A value that adheres to the specification in Print Server Name Parameters
	// (section 3.1.4.1.4).
	Server string `idl:"name:pServer;string;pointer:unique" json:"server"`
	// pPrinterName: A value that adheres to the specification in Printer Name Parameters
	// (section 3.1.4.1.5). A printer connection of the form:
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	// pPrintServer: A pointer to a string that specifies the name of the print server that
	// is hosting the printer to which the connection is established. For rules governing
	// server names, see section 2.2.4.16.
	PrintServer string `idl:"name:pPrintServer;string" json:"print_server"`
	// pProvider: A pointer to a string that specifies the name of a print provider. If
	// the string is the empty string "", an implementation-specific default print provider
	// name is used.<312> For rules governing print provider names, see section 2.2.4.12.
	Provider string `idl:"name:pProvider;string" json:"provider"`
}

AddPerMachineConnectionRequest structure represents the RpcAddPerMachineConnection operation request

func (*AddPerMachineConnectionRequest) MarshalNDR

func (*AddPerMachineConnectionRequest) UnmarshalNDR

type AddPerMachineConnectionResponse

type AddPerMachineConnectionResponse struct {
	// Return: The RpcAddPerMachineConnection return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPerMachineConnectionResponse structure represents the RpcAddPerMachineConnection operation response

func (*AddPerMachineConnectionResponse) MarshalNDR

func (*AddPerMachineConnectionResponse) UnmarshalNDR

type AddPortExRequest

type AddPortExRequest struct {
	// pName: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pPortContainer: A parameter specified in PORT_CONTAINER Parameters (section 3.1.4.1.8.5).
	// The value of the Level member in the PORT_CONTAINER that is referenced by this parameter
	// MUST be 0x00000001 or 0xFFFFFFFF.
	PortContainer *PortContainer `idl:"name:pPortContainer" json:"port_container"`
	// pPortVarContainer: A pointer to a PORT_VAR_CONTAINER (section 2.2.1.2.8) information
	// structure that contains information about the port.
	PortVarContainer *PortVarContainer `idl:"name:pPortVarContainer" json:"port_var_container"`
	// pMonitorName: A pointer to a string that specifies the monitor associated with the
	// port. For rules governing monitor names, see section 2.2.4.8.
	MonitorName string `idl:"name:pMonitorName;string" json:"monitor_name"`
}

AddPortExRequest structure represents the RpcAddPortEx operation request

func (*AddPortExRequest) MarshalNDR

func (o *AddPortExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPortExRequest) UnmarshalNDR

func (o *AddPortExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPortExResponse

type AddPortExResponse struct {
	// Return: The RpcAddPortEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPortExResponse structure represents the RpcAddPortEx operation response

func (*AddPortExResponse) MarshalNDR

func (o *AddPortExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPortExResponse) UnmarshalNDR

func (o *AddPortExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrintProcessorRequest

type AddPrintProcessorRequest struct {
	// pName: This parameter MUST adhere to the parameter specification in Print Server
	// Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: This parameter MUST adhere to the parameter specification in Environment
	// Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string" json:"environment"`
	// pPathName: A pointer to a string that specifies the file name of the print processor.
	// For rules governing path names, see section 2.2.4.9.
	PathName string `idl:"name:pPathName;string" json:"path_name"`
	// pPrintProcessorName: A pointer to a string that specifies the name of the print processor.
	// For rules governing print processor names, see section 2.2.4.11.
	PrintProcessorName string `idl:"name:pPrintProcessorName;string" json:"print_processor_name"`
}

AddPrintProcessorRequest structure represents the RpcAddPrintProcessor operation request

func (*AddPrintProcessorRequest) MarshalNDR

func (o *AddPrintProcessorRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrintProcessorRequest) UnmarshalNDR

func (o *AddPrintProcessorRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrintProcessorResponse

type AddPrintProcessorResponse struct {
	// Return: The RpcAddPrintProcessor return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPrintProcessorResponse structure represents the RpcAddPrintProcessor operation response

func (*AddPrintProcessorResponse) MarshalNDR

func (o *AddPrintProcessorResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrintProcessorResponse) UnmarshalNDR

func (o *AddPrintProcessorResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterDriverExRequest

type AddPrinterDriverExRequest struct {
	// pName: A string that conforms to the parameter specification in Print Server Name
	// Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pDriverContainer: A pointer to a DRIVER_CONTAINER structure (section 2.2.1.2.3) that
	// MUST conform to the specification in DRIVER_CONTAINER parameters (section 3.1.4.1.8.3).
	//
	// The Level member of the DRIVER_CONTAINER refers to the level of driver information
	// structure, as follows:
	//
	//	+------------+----------------------------------------+
	//	|            |                                        |
	//	|   VALUE    |              DESCRIPTION               |
	//	|            |                                        |
	//	+------------+----------------------------------------+
	//	+------------+----------------------------------------+
	//	| 0x00000002 | DRIVER_INFO_2 (section 2.2.1.5.2).     |
	//	+------------+----------------------------------------+
	//	| 0x00000003 | RPC_DRIVER_INFO_3 (section 2.2.1.5.3). |
	//	+------------+----------------------------------------+
	//	| 0x00000004 | RPC_DRIVER_INFO_4 (section 2.2.1.5.4). |
	//	+------------+----------------------------------------+
	//	| 0x00000006 | RPC_DRIVER_INFO_6 (section 2.2.1.5.5). |
	//	+------------+----------------------------------------+
	//	| 0x00000008 | RPC_DRIVER_INFO_8 (section 2.2.1.5.6). |
	//	+------------+----------------------------------------+
	DriverContainer *DriverContainer `idl:"name:pDriverContainer" json:"driver_container"`
	// dwFileCopyFlags: A bit field that specifies options for copying replacement printer
	// driver files. The value of this parameter is a combination of flags from the following
	// tables.
	//
	// Exactly one of the following flags MUST be specified:
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|                                 |                                                                                  |
	//	|           NAME/VALUE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| APD_STRICT_UPGRADE 0x00000001   | Add the replacement printer driver only if none of the files of the replacement  |
	//	|                                 | driver are older than any corresponding files of the currently installed driver. |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| APD_STRICT_DOWNGRADE 0x00000002 | Add the replacement printer driver only if none of the files of the currently    |
	//	|                                 | installed driver are older than any corresponding files of the replacement       |
	//	|                                 | driver.                                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| APD_COPY_ALL_FILES 0x00000004   | Add the printer driver and copy all the files in the driver directory. File time |
	//	|                                 | stamps MUST be ignored.                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| APD_COPY_NEW_FILES 0x00000008   | Add the printer driver and copy the files in the driver directory that are newer |
	//	|                                 | than any of the corresponding files that are currently in use.                   |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//
	// Zero or more of the following flags can be specified.
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                            |                                                                                  |
	//	|                 NAME/VALUE                 |                                   DESCRIPTION                                    |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| APD_COPY_FROM_DIRECTORY 0x00000010         | Add the printer driver by using the fully qualified file names that are          |
	//	|                                            | specified in the _DRIVER_INFO_6 structure. If this flag is specified, one of the |
	//	|                                            | other copy flags in this bit field MUST be specified.                            |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| APD_DONT_COPY_FILES_TO_CLUSTER 0x00001000  | When adding a printer driver to a print server cluster, do not copy the driver   |
	//	|                                            | files to the shared cluster disk.                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| APD_COPY_TO_ALL_SPOOLERS 0x00002000        | Add the printer driver to cluster spooler servers.                               |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| APD_INSTALL_WARNED_DRIVER 0x00008000       | Add the printer driver, even if it is in the server's List of Warned Printer     |
	//	|                                            | Drivers (section 3.1.1).<343>                                                    |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| APD_RETURN_BLOCKING_STATUS_CODE 0x00010000 | Specifies the implementation-specific error code to return if the printer driver |
	//	|                                            | is blocked from installation by server policy.<344>                              |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	FileCopyFlags uint32 `idl:"name:dwFileCopyFlags" json:"file_copy_flags"`
}

AddPrinterDriverExRequest structure represents the RpcAddPrinterDriverEx operation request

func (*AddPrinterDriverExRequest) MarshalNDR

func (o *AddPrinterDriverExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterDriverExRequest) UnmarshalNDR

func (o *AddPrinterDriverExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterDriverExResponse

type AddPrinterDriverExResponse struct {
	// Return: The RpcAddPrinterDriverEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPrinterDriverExResponse structure represents the RpcAddPrinterDriverEx operation response

func (*AddPrinterDriverExResponse) MarshalNDR

func (o *AddPrinterDriverExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterDriverExResponse) UnmarshalNDR

func (o *AddPrinterDriverExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterDriverRequest

type AddPrinterDriverRequest struct {
	// pName: Specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pDriverContainer: Specified in DRIVER_CONTAINER Parameters (section 3.1.4.1.8.3).
	// The Level member of the DRIVER_CONTAINER MUST be 0x00000002, 0x00000003, or 0x00000004.
	DriverContainer *DriverContainer `idl:"name:pDriverContainer" json:"driver_container"`
}

AddPrinterDriverRequest structure represents the RpcAddPrinterDriver operation request

func (*AddPrinterDriverRequest) MarshalNDR

func (o *AddPrinterDriverRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterDriverRequest) UnmarshalNDR

func (o *AddPrinterDriverRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterDriverResponse

type AddPrinterDriverResponse struct {
	// Return: The RpcAddPrinterDriver return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPrinterDriverResponse structure represents the RpcAddPrinterDriver operation response

func (*AddPrinterDriverResponse) MarshalNDR

func (o *AddPrinterDriverResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterDriverResponse) UnmarshalNDR

func (o *AddPrinterDriverResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterExRequest

type AddPrinterExRequest struct {
	// pName: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pPrinterContainer: A parameter specified in PRINTER_CONTAINER Parameters (section
	// 3.1.4.1.8.6). The Level member of the PRINTER_CONTAINER MUST be 0x00000001 or 0x00000002.
	PrinterContainer *PrinterContainer `idl:"name:pPrinterContainer" json:"printer_container"`
	// pDevModeContainer: A parameter specified in DEVMODE_CONTAINER Parameters (section
	// 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
	// pSecurityContainer: A parameter specified in SECURITY_CONTAINER Parameters (section
	// 3.1.4.1.8.7).
	SecurityContainer *SecurityContainer `idl:"name:pSecurityContainer" json:"security_container"`
	// pClientInfo: A parameter specified in SPLCLIENT_CONTAINER Parameters (section 3.1.4.1.8.8).
	ClientInfo *ClientContainer `idl:"name:pClientInfo" json:"client_info"`
}

AddPrinterExRequest structure represents the RpcAddPrinterEx operation request

func (*AddPrinterExRequest) MarshalNDR

func (o *AddPrinterExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterExRequest) UnmarshalNDR

func (o *AddPrinterExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterExResponse

type AddPrinterExResponse struct {
	// pHandle: A pointer to a variable that MUST receive the printer remote procedure call
	// (RPC) context handle to the printer object added. RPC context handles are specified
	// in [C706].
	Handle *Printer `idl:"name:pHandle" json:"handle"`
	// Return: The RpcAddPrinterEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPrinterExResponse structure represents the RpcAddPrinterEx operation response

func (*AddPrinterExResponse) MarshalNDR

func (o *AddPrinterExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterExResponse) UnmarshalNDR

func (o *AddPrinterExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterRequest

type AddPrinterRequest struct {
	// pName: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pPrinterContainer: A parameter specified in PRINTER_CONTAINER Parameters (section
	// 3.1.4.1.8.6). The Level member of the PRINTER_CONTAINER MUST be 0x00000001 or 0x00000002.
	PrinterContainer *PrinterContainer `idl:"name:pPrinterContainer" json:"printer_container"`
	// pDevModeContainer: A parameter specified in DEVMODE_CONTAINER Parameters (section
	// 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
	// pSecurityContainer: A parameter specified in SECURITY_CONTAINER Parameters (section
	// 3.1.4.1.8.7).
	SecurityContainer *SecurityContainer `idl:"name:pSecurityContainer" json:"security_container"`
}

AddPrinterRequest structure represents the RpcAddPrinter operation request

func (*AddPrinterRequest) MarshalNDR

func (o *AddPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterRequest) UnmarshalNDR

func (o *AddPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddPrinterResponse

type AddPrinterResponse struct {
	// pHandle: A pointer to a variable that receives the printer RPC context handle to
	// the printer object added. RPC context handles are specified in [C706].
	Handle *Printer `idl:"name:pHandle" json:"handle"`
	// Return: The RpcAddPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddPrinterResponse structure represents the RpcAddPrinter operation response

func (*AddPrinterResponse) MarshalNDR

func (o *AddPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddPrinterResponse) UnmarshalNDR

func (o *AddPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type BIDIData

type BIDIData struct {
	// dwBidiType: The type of data in a bidirectional request. The value of this member
	// specifies a valid structure for the u union. The value of this member MUST be one
	// of the BIDI_TYPE enumeration values specified in section 2.2.3.13.
	BIDIType uint32 `idl:"name:dwBidiType" json:"bidi_type"`
	// u: The bidirectional data in the format specified by the value of the dwBidiType
	// member.
	Union *BIDIData_Union `idl:"name:u;switch_is:dwBidiType" json:"union"`
}

BIDIData structure represents RPC_BIDI_DATA RPC structure.

The RPC_BIDI_DATA structure is used to store the values of a bidirectional schema.<72>

func (*BIDIData) MarshalNDR

func (o *BIDIData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData) UnmarshalNDR

func (o *BIDIData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIData_Union

type BIDIData_Union struct {
	// Types that are assignable to Value
	//
	// *BIDIData_Union_BoolData
	// *BIDIData_Union_IntData
	// *BIDIData_Union_StringData
	// *BIDIData_Union_FloatData
	// *BIDIData_Union_BinaryData
	Value is_BIDIData_Union `json:"value"`
}

BIDIData_Union structure represents RPC_BIDI_DATA union anonymous member.

The RPC_BIDI_DATA structure is used to store the values of a bidirectional schema.<72>

func (*BIDIData_Union) GetValue

func (o *BIDIData_Union) GetValue() any

func (*BIDIData_Union) MarshalUnionNDR

func (o *BIDIData_Union) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*BIDIData_Union) NDRSwitchValue

func (o *BIDIData_Union) NDRSwitchValue(sw uint32) uint32

func (*BIDIData_Union) UnmarshalUnionNDR

func (o *BIDIData_Union) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type BIDIData_Union_BinaryData

type BIDIData_Union_BinaryData struct {
	BinaryData *BinaryContainer `idl:"name:binaryData" json:"binary_data"`
}

BIDIData_Union_BinaryData structure represents BIDIData_Union RPC union arm.

It has following labels: 7

func (*BIDIData_Union_BinaryData) MarshalNDR

func (o *BIDIData_Union_BinaryData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData_Union_BinaryData) UnmarshalNDR

func (o *BIDIData_Union_BinaryData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIData_Union_BoolData

type BIDIData_Union_BoolData struct {
	BoolData int32 `idl:"name:boolData" json:"bool_data"`
}

BIDIData_Union_BoolData structure represents BIDIData_Union RPC union arm.

It has following labels: 0, 3

func (*BIDIData_Union_BoolData) MarshalNDR

func (o *BIDIData_Union_BoolData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData_Union_BoolData) UnmarshalNDR

func (o *BIDIData_Union_BoolData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIData_Union_FloatData

type BIDIData_Union_FloatData struct {
	FloatData float32 `idl:"name:floatData" json:"float_data"`
}

BIDIData_Union_FloatData structure represents BIDIData_Union RPC union arm.

It has following labels: 2

func (*BIDIData_Union_FloatData) MarshalNDR

func (o *BIDIData_Union_FloatData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData_Union_FloatData) UnmarshalNDR

func (o *BIDIData_Union_FloatData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIData_Union_IntData

type BIDIData_Union_IntData struct {
	IntData int32 `idl:"name:intData" json:"int_data"`
}

BIDIData_Union_IntData structure represents BIDIData_Union RPC union arm.

It has following labels: 1

func (*BIDIData_Union_IntData) MarshalNDR

func (o *BIDIData_Union_IntData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData_Union_IntData) UnmarshalNDR

func (o *BIDIData_Union_IntData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIData_Union_StringData

type BIDIData_Union_StringData struct {
	StringData string `idl:"name:stringData;string;pointer:unique" json:"string_data"`
}

BIDIData_Union_StringData structure represents BIDIData_Union RPC union arm.

It has following labels: 4, 5, 6

func (*BIDIData_Union_StringData) MarshalNDR

func (o *BIDIData_Union_StringData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIData_Union_StringData) UnmarshalNDR

func (o *BIDIData_Union_StringData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIRequestContainer

type BIDIRequestContainer struct {
	// Version: The version of the bidirectional API schema. The value of this member MUST
	// be 0x00000001.
	Version uint32 `idl:"name:Version" json:"version"`
	// Flags: A value that MUST be set to zero when sent and MUST be ignored on receipt.
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// Count: The number of bidirectional requests in the aData member.
	Count uint32 `idl:"name:Count" json:"count"`
	// aData: An array of RPC_BIDI_REQUEST_DATA structures. Each structure in this member
	// contains a single bidirectional request. For details, see section 2.2.1.12.1.
	Data []*BIDIRequestData `idl:"name:aData;size_is:(Count);pointer:unique" json:"data"`
}

BIDIRequestContainer structure represents RPC_BIDI_REQUEST_CONTAINER RPC structure.

The RPC_BIDI_REQUEST_CONTAINER structure is a container for a list of bidirectional requests.<6>

func (*BIDIRequestContainer) MarshalNDR

func (o *BIDIRequestContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIRequestContainer) NDRSizeInfo

func (o *BIDIRequestContainer) NDRSizeInfo() []uint64

func (*BIDIRequestContainer) UnmarshalNDR

func (o *BIDIRequestContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIRequestData

type BIDIRequestData struct {
	// dwReqNumber: The index of the request, which is used to match a response to a request
	// in a multirequest operation.
	RequestNumber uint32 `idl:"name:dwReqNumber" json:"request_number"`
	// pSchema: A pointer to the schema string that identifies the requested information.<68>
	Schema string `idl:"name:pSchema;string;pointer:unique" json:"schema"`
	// data: The data that is associated with the schema.
	Data *BIDIData `idl:"name:data" json:"data"`
}

BIDIRequestData structure represents RPC_BIDI_REQUEST_DATA RPC structure.

The RPC_BIDI_REQUEST_DATA structure holds a single bidirectional request.<67> The request is part of a bidirectional communication request using the RpcSendRecvBidiData (section 3.1.4.2.27) method. One or more RPC_BIDI_REQUEST_DATA structures MUST be contained in a RPC_BIDI_REQUEST_CONTAINER (section 2.2.1.2.10).

func (*BIDIRequestData) MarshalNDR

func (o *BIDIRequestData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIRequestData) UnmarshalNDR

func (o *BIDIRequestData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIResponseContainer

type BIDIResponseContainer struct {
	// Version: This member MUST contain the value that specifies the version of the bidirectional
	// API schema. The value of this member MUST be 0x00000001.
	Version uint32 `idl:"name:Version" json:"version"`
	// Flags: This member is a set of flags that are reserved for system use. The value
	// of this member MUST be set to zero when sent and MUST be ignored on receipt.
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// Count: This member specifies the number of bidirectional responses in the aData member.
	Count uint32 `idl:"name:Count" json:"count"`
	// aData: This member is an array of RPC_BIDI_RESPONSE_DATA structures. Each structure
	// in this member MUST contain a single bidirectional response. For more information,
	// see section 2.2.1.12.2.
	Data []*BIDIResponseData `idl:"name:aData;size_is:(Count);pointer:unique" json:"data"`
}

BIDIResponseContainer structure represents RPC_BIDI_RESPONSE_CONTAINER RPC structure.

The RPC_BIDI_RESPONSE_CONTAINER structure is a container for a list of bidirectional responses.<7>

func (*BIDIResponseContainer) MarshalNDR

func (o *BIDIResponseContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIResponseContainer) NDRSizeInfo

func (o *BIDIResponseContainer) NDRSizeInfo() []uint64

func (*BIDIResponseContainer) UnmarshalNDR

func (o *BIDIResponseContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIResponseData

type BIDIResponseData struct {
	// dwResult: The result of the operation that used this structure. If the operation
	// was successful, the value of this member MUST be set to zero; otherwise, the value
	// of this member MUST be set to a nonzero value.<70>
	Result uint32 `idl:"name:dwResult" json:"result"`
	// dwReqNumber: The index of the response, which is used to match the response to the
	// request in a multi-request operation.
	RequestNumber uint32 `idl:"name:dwReqNumber" json:"request_number"`
	// pSchema: A pointer to the schema string that identifies the requested information.<71>
	Schema string `idl:"name:pSchema;string;pointer:unique" json:"schema"`
	// data: The data that is associated with the schema. This can be a single piece of
	// data or a homogeneous data list. The data MUST be composed of a name, a type, and
	// a value; for example, "\Printer.Stapler:CurrentValue". It is referenced by its name
	// under Properties.
	Data *BIDIData `idl:"name:data" json:"data"`
}

BIDIResponseData structure represents RPC_BIDI_RESPONSE_DATA RPC structure.

The RPC_BIDI_RESPONSE_DATA structure holds a single bidirectional response.<69>

func (*BIDIResponseData) MarshalNDR

func (o *BIDIResponseData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BIDIResponseData) UnmarshalNDR

func (o *BIDIResponseData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BIDIType

type BIDIType uint16

BIDIType type represents BIDI_TYPE RPC enumeration.

The BIDI_TYPE enumeration specifies the type of data transferred in a bidirectional operation.

var (
	// BIDI_NULL:  No bidirectional data.
	BIDITypeNull BIDIType = 0
	// BIDI_INT:  Bidirectional data is an integer.
	BIDITypeInt BIDIType = 1
	// BIDI_FLOAT:  Bidirectional data is a floating-point number.
	BIDITypeFloat BIDIType = 2
	// BIDI_BOOL:  Bidirectional data is a Boolean value.
	BIDITypeBool BIDIType = 3
	// BIDI_STRING:  Bidirectional data is a string.
	BIDITypeString BIDIType = 4
	// BIDI_TEXT:  Bidirectional data is text data.
	BIDITypeText BIDIType = 5
	// BIDI_ENUM:  Bidirectional data is an enumeration.
	BIDITypeEnum BIDIType = 6
	// BIDI_BLOB:  Bidirectional data is a data BLOB.
	BIDITypeBlob BIDIType = 7
)

func (BIDIType) String

func (o BIDIType) String() string

type BinaryContainer

type BinaryContainer struct {
	// cbBuf: This member specifies the size, in bytes, of the buffer that is pointed to
	// by the pszString member.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pszString: A pointer to an array of bytes that contain binary printer data.
	String []byte `idl:"name:pszString;size_is:(cbBuf);pointer:unique" json:"string"`
}

BinaryContainer structure represents RPC_BINARY_CONTAINER RPC structure.

The RPC_BINARY_CONTAINER structure is a container for binary printer data and is used in the RPC_BIDI_DATA (section 2.2.1.12.3) structure.<8>

func (*BinaryContainer) MarshalNDR

func (o *BinaryContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BinaryContainer) UnmarshalNDR

func (o *BinaryContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobData

type BranchOfficeJobData struct {
	// eEventType: The type of Windows Event to which the Branch Office Print Remote Log
	// Entry corresponds, which MUST be an EBranchOfficeJobEventType (section 2.2.1.15.1)
	// value.
	EventType BranchOfficeJobEventType `idl:"name:eEventType" json:"event_type"`
	// JobId: The identifier of a print job.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// JobInfo: The branch office print remote logging structure that contains the data
	// required to log a Branch Office Print Remote Log Entry corresponding to the eEventType
	// member value.
	JobInfo *BranchOfficeJobData_JobInfo `idl:"name:JobInfo;switch_is:eEventType" json:"job_info"`
}

BranchOfficeJobData structure represents RPC_BranchOfficeJobData RPC structure.

The RPC_BranchOfficeJobData structure holds a branch office print remote logging structure that contains the data required to log a single Branch Office Print Remote Log Entry (section 3.1.1) corresponding to a specific type of Windows Event.<85>

func (*BranchOfficeJobData) MarshalNDR

func (o *BranchOfficeJobData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BranchOfficeJobData) UnmarshalNDR

func (o *BranchOfficeJobData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobDataContainer

type BranchOfficeJobDataContainer struct {
	// cJobDataEntries: The number of RPC_BranchOfficeJobData structures in the JobData
	// member.
	JobDataEntriesCount uint32 `idl:"name:cJobDataEntries" json:"job_data_entries_count"`
	// JobData: An array of RPC_BranchOfficeJobData structures. Each structure in the array
	// contains a single Branch Office Print Remote Log Entry (section 3.1.1).
	JobData []*BranchOfficeJobData `idl:"name:JobData;size_is:(cJobDataEntries);pointer:unique" json:"job_data"`
}

BranchOfficeJobDataContainer structure represents RPC_BranchOfficeJobDataContainer RPC structure.

The RPC_BranchOfficeJobDataContainer structure is a container for an array of RPC_BranchOfficeJobData structures (section 2.2.1.15.2).<12>

func (*BranchOfficeJobDataContainer) MarshalNDR

func (*BranchOfficeJobDataContainer) NDRSizeInfo

func (o *BranchOfficeJobDataContainer) NDRSizeInfo() []uint64

func (*BranchOfficeJobDataContainer) UnmarshalNDR

func (o *BranchOfficeJobDataContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobDataError

type BranchOfficeJobDataError struct {
	// LastError: A 32-bit unsigned integer that specifies an implementation-specific error
	// code for the last error that occurred during processing of this print job.
	LastError uint32 `idl:"name:LastError" json:"last_error"`
	// pDocumentName: A pointer to a string that specifies the name of the print document
	// for this print job.
	DocumentName string `idl:"name:pDocumentName;string" json:"document_name"`
	// pUserName: A pointer to a string that specifies the name of the user that owns the
	// print job. For rules governing user names, see section 2.2.4.17.
	UserName string `idl:"name:pUserName;string" json:"user_name"`
	// pPrinterName: A pointer to a string that specifies the name of the printer used for
	// the print job. For rules governing printer names, see section 2.2.4.14.
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	// pDataType: A pointer to a string that specifies the type of data that the printing
	// application sent to the printer in the print job. The identified data type MUST be
	// supported by the print processor that is associated with the printer that is processing
	// the job. For rules governing data type names, see section 2.2.4.2.
	DataType string `idl:"name:pDataType;string" json:"data_type"`
	// TotalSize: A 64-bit signed integer that specifies the size of the print job, in bytes.
	// This value MUST be greater than zero.
	TotalSize int64 `idl:"name:TotalSize" json:"total_size"`
	// PrintedSize: A 64-bit signed integer that specifies the amount of data for the print
	// job that actually got processed and sent to the printer, in bytes. This value MUST
	// be zero or greater.
	PrintedSize int64 `idl:"name:PrintedSize" json:"printed_size"`
	// TotalPages: A 32-bit unsigned integer that specifies the number of pages the document
	// contains.
	TotalPages uint32 `idl:"name:TotalPages" json:"total_pages"`
	// PrintedPages: A 32-bit unsigned integer that specifies the number of pages of the
	// document that actually got processed and sent to the printer.
	PrintedPages uint32 `idl:"name:PrintedPages" json:"printed_pages"`
	// pMachineName: A pointer to a string that specifies the name of the client computer
	// that owns the print job. For rules governing computer names, see section 2.2.4.16.
	MachineName string `idl:"name:pMachineName;string" json:"machine_name"`
	// pJobError: A pointer to a string that specifies the text representation of the value
	// of the LastError error code.
	JobError string `idl:"name:pJobError;string" json:"job_error"`
	// pErrorDescription: A pointer to an optional string that specifies message text for
	// a system-defined error corresponding to the value of the LastError error code.
	ErrorDescription string `idl:"name:pErrorDescription;string" json:"error_description"`
}

BranchOfficeJobDataError structure represents RPC_BranchOfficeJobDataError RPC structure.

The RPC_BranchOfficeJobDataError structure holds a single Branch Office Print Remote Log Entry (section 3.1.1).<86> This entry contains the information needed to create event ID 372 in the Microsoft-Windows-PrintService/Admin event channel.

func (*BranchOfficeJobDataError) MarshalNDR

func (o *BranchOfficeJobDataError) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BranchOfficeJobDataError) UnmarshalNDR

func (o *BranchOfficeJobDataError) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobDataPipelineFailed

type BranchOfficeJobDataPipelineFailed struct {
	// pDocumentName: A pointer to a string that specifies the name of the print document
	// for this print job.
	DocumentName string `idl:"name:pDocumentName;string" json:"document_name"`
	// pPrinterName: A pointer to a string that specifies the name of the printer used for
	// the print job. For rules governing printer names, see section 2.2.4.14.
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	// pExtraErrorInfo: A pointer to an optional string that specifies additional text associated
	// with the failure in the Print Pipeline.
	ExtraErrorInfo string `idl:"name:pExtraErrorInfo;string" json:"extra_error_info"`
}

BranchOfficeJobDataPipelineFailed structure represents RPC_BranchOfficeJobDataPipelineFailed RPC structure.

The RPC_BranchOfficeJobDataPipelineFailed structure holds a single Branch Office Print Remote Log Entry (section 3.1.1).<87> This entry contains the information needed to create event ID 824 in the Microsoft-Windows-PrintService/Operational event channel.

func (*BranchOfficeJobDataPipelineFailed) MarshalNDR

func (*BranchOfficeJobDataPipelineFailed) UnmarshalNDR

type BranchOfficeJobDataPrinted

type BranchOfficeJobDataPrinted struct {
	// Status: A 32-bit unsigned integer that specifies an implementation-specific error
	// code for the last error that occurred during the processing of this print job.
	Status uint32 `idl:"name:Status" json:"status"`
	// pDocumentName: A string that specifies the name of the print document for this print
	// job.
	DocumentName string `idl:"name:pDocumentName;string" json:"document_name"`
	// pUserName: A pointer to a string that specifies the name of the user that owns the
	// print job. For rules governing user names, see section 2.2.4.17.
	UserName string `idl:"name:pUserName;string" json:"user_name"`
	// pMachineName: A pointer to a string that specifies the name of the client computer
	// that owns the print job. For rules governing computer names, see section 2.2.4.16.
	MachineName string `idl:"name:pMachineName;string" json:"machine_name"`
	// pPrinterName: A pointer to a string that specifies the name of the printer used for
	// the print job. For rules governing printer names, see section 2.2.4.14.
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	// pPortName: A pointer to a string that specifies a supported printer port. For rules
	// governing port names, see section 2.2.4.10.
	PortName string `idl:"name:pPortName;string" json:"port_name"`
	// Size: A 64-bit signed integer that specifies the size of the print job, in bytes.
	Size int64 `idl:"name:Size" json:"size"`
	// TotalPages: A 32-bit unsigned integer that specifies the number of pages the document
	// contains.
	TotalPages uint32 `idl:"name:TotalPages" json:"total_pages"`
}

BranchOfficeJobDataPrinted structure represents RPC_BranchOfficeJobDataPrinted RPC structure.

The RPC_BranchOfficeJobDataPrinted structure holds a single Branch Office Print Remote Log Entry (section 3.1.1).<88> This entry contains the information needed to create event ID 307 in the Microsoft-Windows-PrintService/Operational event channel.

func (*BranchOfficeJobDataPrinted) MarshalNDR

func (o *BranchOfficeJobDataPrinted) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BranchOfficeJobDataPrinted) UnmarshalNDR

func (o *BranchOfficeJobDataPrinted) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobDataRendered

type BranchOfficeJobDataRendered struct {
	// Size: A 64-bit signed integer that specifies the size of the print job, in bytes.
	Size int64 `idl:"name:Size" json:"size"`
	// ICMMethod: A 32-bit unsigned integer that specifies how Image Color Management (ICM)
	// is handled for the print job. See the definition of the dmICMMethod field in section
	// 2.2.2.1.
	ICMMethod uint32 `idl:"name:ICMMethod" json:"icm_method"`
	// Color: A 16-bit signed integer that specifies the color mode to use for the print
	// job. See the definition of the dmColor field in section 2.2.2.1.
	Color int16 `idl:"name:Color" json:"color"`
	// PrintQuality: A 16-bit signed integer that specifies the printer resolution for the
	// print job. See the definition of the dmPrintQuality field in section 2.2.2.1.
	PrintQuality int16 `idl:"name:PrintQuality" json:"print_quality"`
	// YResolution: A 16-bit signed integer that specifies the vertical-resolution in dots
	// per inch for the print job. See the definition of the dmYResolution field in section
	// 2.2.2.1.
	YResolution int16 `idl:"name:YResolution" json:"y_resolution"`
	// Copies: A 16-bit signed integer that specifies the number of copies to be printed
	// for the print job. See the definition of the dmCopies field in section 2.2.2.1.
	Copies int16 `idl:"name:Copies" json:"copies"`
	// TTOption: A 16-bit signed integer that specifies how TrueType fonts are printed for
	// the print job. See the definition of the dmTTOption field in section 2.2.2.1.
	TTOption int16 `idl:"name:TTOption" json:"tt_option"`
}

BranchOfficeJobDataRendered structure represents RPC_BranchOfficeJobDataRendered RPC structure.

The RPC_BranchOfficeJobDataRendered structure holds a single Branch Office Print Remote Log Entry (section 3.1.1).<89> This entry contains the information needed to create event ID 805 in the Microsoft-Windows-PrintService/Operational event channel.

func (*BranchOfficeJobDataRendered) MarshalNDR

func (*BranchOfficeJobDataRendered) UnmarshalNDR

func (o *BranchOfficeJobDataRendered) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BranchOfficeJobData_JobInfo

type BranchOfficeJobData_JobInfo struct {
	// Types that are assignable to Value
	//
	// *BranchOfficeJobData_JobInfo_LogJobPrinted
	// *BranchOfficeJobData_JobInfo_LogJobRendered
	// *BranchOfficeJobData_JobInfo_LogJobError
	// *BranchOfficeJobData_JobInfo_LogPipelineFailed
	// *BranchOfficeJobData_JobInfo_LogOfflineFileFull
	Value is_BranchOfficeJobData_JobInfo `json:"value"`
}

BranchOfficeJobData_JobInfo structure represents RPC_BranchOfficeJobData union anonymous member.

The RPC_BranchOfficeJobData structure holds a branch office print remote logging structure that contains the data required to log a single Branch Office Print Remote Log Entry (section 3.1.1) corresponding to a specific type of Windows Event.<85>

func (*BranchOfficeJobData_JobInfo) GetValue

func (o *BranchOfficeJobData_JobInfo) GetValue() any

func (*BranchOfficeJobData_JobInfo) MarshalUnionNDR

func (o *BranchOfficeJobData_JobInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*BranchOfficeJobData_JobInfo) NDRSwitchValue

func (o *BranchOfficeJobData_JobInfo) NDRSwitchValue(sw uint16) uint16

func (*BranchOfficeJobData_JobInfo) UnmarshalUnionNDR

func (o *BranchOfficeJobData_JobInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type BranchOfficeJobData_JobInfo_LogJobError

type BranchOfficeJobData_JobInfo_LogJobError struct {
	// LogJobError: An RPC_BranchOfficeJobDataError (section 2.2.1.15.3) structure for a
	// Branch Office Print Remote Log Entry corresponding to event ID 372. This structure
	// is present only if eEventType is set to kLogJobError.
	LogJobError *BranchOfficeJobDataError `idl:"name:LogJobError" json:"log_job_error"`
}

BranchOfficeJobData_JobInfo_LogJobError structure represents BranchOfficeJobData_JobInfo RPC union arm.

It has following labels: 3

func (*BranchOfficeJobData_JobInfo_LogJobError) MarshalNDR

func (*BranchOfficeJobData_JobInfo_LogJobError) UnmarshalNDR

type BranchOfficeJobData_JobInfo_LogJobPrinted

type BranchOfficeJobData_JobInfo_LogJobPrinted struct {
	// LogJobPrinted: An RPC_BranchOfficeJobDataPrinted (section 2.2.1.15.5) structure for
	// a Branch Office Print Remote Log Entry corresponding to event ID 307. This structure
	// is present only if eEventType is set to kLogJobPrinted.
	LogJobPrinted *BranchOfficeJobDataPrinted `idl:"name:LogJobPrinted" json:"log_job_printed"`
}

BranchOfficeJobData_JobInfo_LogJobPrinted structure represents BranchOfficeJobData_JobInfo RPC union arm.

It has following labels: 1

func (*BranchOfficeJobData_JobInfo_LogJobPrinted) MarshalNDR

func (*BranchOfficeJobData_JobInfo_LogJobPrinted) UnmarshalNDR

type BranchOfficeJobData_JobInfo_LogJobRendered

type BranchOfficeJobData_JobInfo_LogJobRendered struct {
	// LogJobRendered: An RPC_BranchOfficeJobDataRendered (section 2.2.1.15.6) structure
	// for a Branch Office Print Remote Log Entry corresponding to event ID 805. This structure
	// is present only if eEventType is set to kLogJobRendered.
	LogJobRendered *BranchOfficeJobDataRendered `idl:"name:LogJobRendered" json:"log_job_rendered"`
}

BranchOfficeJobData_JobInfo_LogJobRendered structure represents BranchOfficeJobData_JobInfo RPC union arm.

It has following labels: 2

func (*BranchOfficeJobData_JobInfo_LogJobRendered) MarshalNDR

func (*BranchOfficeJobData_JobInfo_LogJobRendered) UnmarshalNDR

type BranchOfficeJobData_JobInfo_LogOfflineFileFull

type BranchOfficeJobData_JobInfo_LogOfflineFileFull struct {
	// LogOfflineFileFull: An RPC_BranchOfficeLogOfflineFileFull (section 2.2.1.15.7) structure
	// for a Branch Office Print Remote Log Entry corresponding to event ID 868. This structure
	// is present only if eEventType is set to kLogOfflineFileFull.
	LogOfflineFileFull *BranchOfficeLogOfflineFileFull `idl:"name:LogOfflineFileFull" json:"log_offline_file_full"`
}

BranchOfficeJobData_JobInfo_LogOfflineFileFull structure represents BranchOfficeJobData_JobInfo RPC union arm.

It has following labels: 5

func (*BranchOfficeJobData_JobInfo_LogOfflineFileFull) MarshalNDR

func (*BranchOfficeJobData_JobInfo_LogOfflineFileFull) UnmarshalNDR

type BranchOfficeJobData_JobInfo_LogPipelineFailed

type BranchOfficeJobData_JobInfo_LogPipelineFailed struct {
	// LogPipelineFailed: An RPC_BranchOfficeJobDataPipelineFailed (section 2.2.1.15.4)
	// structure for a Branch Office Print Remote Log Entry corresponding to event ID 824.
	// This structure is present only if eEventType is set to kLogJobPipelineError.
	LogPipelineFailed *BranchOfficeJobDataPipelineFailed `idl:"name:LogPipelineFailed" json:"log_pipeline_failed"`
}

BranchOfficeJobData_JobInfo_LogPipelineFailed structure represents BranchOfficeJobData_JobInfo RPC union arm.

It has following labels: 4

func (*BranchOfficeJobData_JobInfo_LogPipelineFailed) MarshalNDR

func (*BranchOfficeJobData_JobInfo_LogPipelineFailed) UnmarshalNDR

type BranchOfficeJobEventType

type BranchOfficeJobEventType uint16

BranchOfficeJobEventType type represents EBranchOfficeJobEventType RPC enumeration.

The EBranchOfficeJobEventType enumeration specifies the type of Windows Event contained by a Branch Office Print Remote Log Entry (section 3.1.1).<84>

var (
	// kInvalidJobState: The Windows Event is an unknown type.
	BranchOfficeJobEventTypeInvalidJobState BranchOfficeJobEventType = 0
	// kLogJobPrinted: The Branch Office Print Remote Log Entry contains a Windows Event
	// that corresponds to event ID 307.
	BranchOfficeJobEventTypeLogJobPrinted BranchOfficeJobEventType = 1
	// kLogJobRendered: The Branch Office Print Remote Log Entry contains a Windows Event
	// that corresponds to event ID 805.
	BranchOfficeJobEventTypeLogJobRendered BranchOfficeJobEventType = 2
	// kLogJobError: The Branch Office Print Remote Log Entry contains a Windows Event that
	// corresponds to event ID 372.
	BranchOfficeJobEventTypeLogJobError BranchOfficeJobEventType = 3
	// kLogJobPipelineError: The Branch Office Print Remote Log Entry contains a Windows
	// Event that corresponds to event ID 824.
	BranchOfficeJobEventTypeLogJobPipelineError BranchOfficeJobEventType = 4
	// kLogOfflineFileFull: The Branch Office Print Remote Log Entry contains a Windows
	// Event that corresponds to event ID 868.
	BranchOfficeJobEventTypeLogOfflineFileFull BranchOfficeJobEventType = 5
)

func (BranchOfficeJobEventType) String

func (o BranchOfficeJobEventType) String() string

type BranchOfficeLogOfflineFileFull

type BranchOfficeLogOfflineFileFull struct {
	// pMachineName: A pointer to a string that specifies the name of the client computer
	// that encountered the Branch Office Print Remote Log Offline Archive full condition.
	// For rules governing computer names, see section 2.2.4.16.
	MachineName string `idl:"name:pMachineName;string" json:"machine_name"`
}

BranchOfficeLogOfflineFileFull structure represents RPC_BranchOfficeLogOfflineFileFull RPC structure.

The RPC_BranchOfficeLogOfflineFileFull structure holds a single Branch Office Print Remote Log Entry (section 3.1.1)<90> that indicates the Branch Office Print Remote Log Offline Archive (section 3.2.1) has exceeded the maximum allowed size.<91> This entry contains the information needed to create event ID 868 in the Microsoft-Windows-PrintService/Admin event channel.

func (*BranchOfficeLogOfflineFileFull) MarshalNDR

func (*BranchOfficeLogOfflineFileFull) UnmarshalNDR

type ClientContainer

type ClientContainer struct {
	// Level: The information level that is used by the ClientInfo member to determine the
	// information structure. The value MUST be 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// ClientInfo: Client information in a structure that corresponds to the information
	// level specified by the Level member.
	ClientInfo *ClientContainer_ClientInfo `idl:"name:ClientInfo;switch_is:Level" json:"client_info"`
}

ClientContainer structure represents SPLCLIENT_CONTAINER RPC structure.

The SPLCLIENT_CONTAINER structure contains an information structure that provides data about the connecting client.<9>

func (*ClientContainer) MarshalNDR

func (o *ClientContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClientContainer) UnmarshalNDR

func (o *ClientContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClientContainer_ClientInfo

type ClientContainer_ClientInfo struct {
	// Types that are assignable to Value
	//
	// *ClientContainer_ClientInfo_ClientInfo1
	// *ClientContainer_ClientInfo_NotUsed1
	// *ClientContainer_ClientInfo_NotUsed2
	Value is_ClientContainer_ClientInfo `json:"value"`
}

ClientContainer_ClientInfo structure represents SPLCLIENT_CONTAINER union anonymous member.

The SPLCLIENT_CONTAINER structure contains an information structure that provides data about the connecting client.<9>

func (*ClientContainer_ClientInfo) GetValue

func (o *ClientContainer_ClientInfo) GetValue() any

func (*ClientContainer_ClientInfo) MarshalUnionNDR

func (o *ClientContainer_ClientInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ClientContainer_ClientInfo) NDRSwitchValue

func (o *ClientContainer_ClientInfo) NDRSwitchValue(sw uint32) uint32

func (*ClientContainer_ClientInfo) UnmarshalUnionNDR

func (o *ClientContainer_ClientInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ClientContainer_ClientInfo_ClientInfo1

type ClientContainer_ClientInfo_ClientInfo1 struct {
	// pClientInfo1: A pointer to an SPLCLIENT_INFO_1 structure (section 2.2.1.11.1) information.
	ClientInfo1 *ClientInfo1 `idl:"name:pClientInfo1" json:"client_info1"`
}

ClientContainer_ClientInfo_ClientInfo1 structure represents ClientContainer_ClientInfo RPC union arm.

It has following labels: 1

func (*ClientContainer_ClientInfo_ClientInfo1) MarshalNDR

func (*ClientContainer_ClientInfo_ClientInfo1) UnmarshalNDR

type ClientContainer_ClientInfo_NotUsed1

type ClientContainer_ClientInfo_NotUsed1 struct {
	// pNotUsed1: A pointer to a structure that is specified only as a placeholder in the
	// IDL and MUST be ignored.
	NotUsed1 *ClientInfo2 `idl:"name:pNotUsed1" json:"not_used1"`
}

ClientContainer_ClientInfo_NotUsed1 structure represents ClientContainer_ClientInfo RPC union arm.

It has following labels: 2

func (*ClientContainer_ClientInfo_NotUsed1) MarshalNDR

func (*ClientContainer_ClientInfo_NotUsed1) UnmarshalNDR

type ClientContainer_ClientInfo_NotUsed2

type ClientContainer_ClientInfo_NotUsed2 struct {
	// pNotUsed2: A pointer to a structure that is specified only as a placeholder in the
	// IDL and MUST be ignored.
	NotUsed2 *ClientInfo3 `idl:"name:pNotUsed2" json:"not_used2"`
}

ClientContainer_ClientInfo_NotUsed2 structure represents ClientContainer_ClientInfo RPC union arm.

It has following labels: 3

func (*ClientContainer_ClientInfo_NotUsed2) MarshalNDR

func (*ClientContainer_ClientInfo_NotUsed2) UnmarshalNDR

type ClientInfo1

type ClientInfo1 struct {
	// dwSize: The size, in bytes, of the structure.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.7 and 2.2.1.3.
	Size                  uint32 `idl:"name:dwSize" json:"size"`
	MachineName           string `idl:"name:pMachineName;string" json:"machine_name"`
	UserName              string `idl:"name:pUserName;string" json:"user_name"`
	BuildNum              uint32 `idl:"name:dwBuildNum" json:"build_num"`
	MajorVersion          uint32 `idl:"name:dwMajorVersion" json:"major_version"`
	MinorVersion          uint32 `idl:"name:dwMinorVersion" json:"minor_version"`
	ProcessorArchitecture uint16 `idl:"name:wProcessorArchitecture" json:"processor_architecture"`
}

ClientInfo1 structure represents SPLCLIENT_INFO_1 RPC structure.

The SPLCLIENT_INFO_1 structure provides information about the calling client of the print server.<65>

func (*ClientInfo1) MarshalNDR

func (o *ClientInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClientInfo1) UnmarshalNDR

func (o *ClientInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClientInfo2

type ClientInfo2 struct {
	// notUsed: A value that MUST be ignored.
	NotUsed int64 `idl:"name:notUsed" json:"not_used"`
}

ClientInfo2 structure represents SPLCLIENT_INFO_2 RPC structure.

The SPLCLIENT_INFO_2 structure is specified only as a placeholder in the IDL. It is not sent over the wire.

func (*ClientInfo2) MarshalNDR

func (o *ClientInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClientInfo2) UnmarshalNDR

func (o *ClientInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClientInfo3

type ClientInfo3 struct {
	// cbSize: The size, in bytes, of the structure.
	Length uint32 `idl:"name:cbSize" json:"length"`
	// dwFlags: This member is reserved for future use. The value of this member SHOULD
	// be set to zero when sent and MUST be ignored on receipt.
	Flags uint32 `idl:"name:dwFlags" json:"flags"`
	// dwSize: This member is reserved for future use. The value of this member SHOULD be
	// set to zero when sent and MUST be ignored on receipt.
	Size                  uint32 `idl:"name:dwSize" json:"size"`
	MachineName           string `idl:"name:pMachineName;string" json:"machine_name"`
	UserName              string `idl:"name:pUserName;string" json:"user_name"`
	BuildNum              uint32 `idl:"name:dwBuildNum" json:"build_num"`
	MajorVersion          uint32 `idl:"name:dwMajorVersion" json:"major_version"`
	MinorVersion          uint32 `idl:"name:dwMinorVersion" json:"minor_version"`
	ProcessorArchitecture uint16 `idl:"name:wProcessorArchitecture" json:"processor_architecture"`
	// hSplPrinter: This member MUST NOT be used remotely and the value of this member SHOULD
	// be set to zero for calls that are made remotely.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.7 and 2.2.1.3.
	Printer uint64 `idl:"name:hSplPrinter" json:"printer"`
}

ClientInfo3 structure represents SPLCLIENT_INFO_3 RPC structure.

The SPLCLIENT_INFO_3 structure provides information about the calling client of the print server.<66>

func (*ClientInfo3) MarshalNDR

func (o *ClientInfo3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClientInfo3) UnmarshalNDR

func (o *ClientInfo3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ClosePrinterRequest

type ClosePrinterRequest struct {
	// phPrinter: A pointer to a handle to a printer object, server object, job object,
	// or port object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:phPrinter" json:"printer"`
}

ClosePrinterRequest structure represents the RpcClosePrinter operation request

func (*ClosePrinterRequest) MarshalNDR

func (o *ClosePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClosePrinterRequest) UnmarshalNDR

func (o *ClosePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ClosePrinterResponse

type ClosePrinterResponse struct {
	// phPrinter: A pointer to a handle to a printer object, server object, job object,
	// or port object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:phPrinter" json:"printer"`
	// Return: The RpcClosePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ClosePrinterResponse structure represents the RpcClosePrinter operation response

func (*ClosePrinterResponse) MarshalNDR

func (o *ClosePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ClosePrinterResponse) UnmarshalNDR

func (o *ClosePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CorePrinterDriver

type CorePrinterDriver struct {
	// CoreDriverGUID (16 bytes): A GUID that uniquely identifies the package.
	CoreDriverGUID *dtyp.GUID `idl:"name:CoreDriverGUID" json:"core_driver_guid"`
	// ftDriverDate (8 bytes): A FILETIME value ([MS-DTYP] section 2.3.3) that specifies
	// the date this package was published.<135>
	DriverDate *dtyp.Filetime `idl:"name:ftDriverDate" json:"driver_date"`
	// dwlDriverVersion (8 bytes): A 64-bit value that specifies the version of the core
	// printer driver that can be used to match the driver version in the driver installation
	// control file.<136>
	DriverVersion uint64 `idl:"name:dwlDriverVersion" json:"driver_version"`
	// szPackageID (520 bytes): A string that specifies the package name.
	PackageID []uint16 `idl:"name:szPackageID" json:"package_id"`
}

CorePrinterDriver structure represents CORE_PRINTER_DRIVER RPC structure.

The CORE_PRINTER_DRIVER structure defines information that identifies a specific core printer driver.<134> See the RpcGetCorePrinterDrivers method (section 3.1.4.4.9) for an example of its use.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| CoreDriverGUID (16 bytes)                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ftDriverDate                                                                                                                  |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dwlDriverVersion                                                                                                              |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| szPackageID (520 bytes)                                                                                                       |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*CorePrinterDriver) MarshalNDR

func (o *CorePrinterDriver) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CorePrinterDriver) UnmarshalNDR

func (o *CorePrinterDriver) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CreateJobOnPrinterRequest

type CreateJobOnPrinterRequest struct {
	Printer                     *Printer `idl:"name:hPrinter" json:"printer"`
	JobID                       uint32   `idl:"name:jobId" json:"job_id"`
	PDLFormat                   string   `idl:"name:pdlFormat;string;pointer:unique" json:"pdl_format"`
	JobAttributeGroupBufferSize uint32   `idl:"name:jobAttributeGroupBufferSize" json:"job_attribute_group_buffer_size"`
	JobAttributeGroupBuffer     []byte   `idl:"name:jobAttributeGroupBuffer;size_is:(jobAttributeGroupBufferSize)" json:"job_attribute_group_buffer"`
}

CreateJobOnPrinterRequest structure represents the RpcIppCreateJobOnPrinter operation request

func (*CreateJobOnPrinterRequest) MarshalNDR

func (o *CreateJobOnPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateJobOnPrinterRequest) UnmarshalNDR

func (o *CreateJobOnPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreateJobOnPrinterResponse

type CreateJobOnPrinterResponse struct {
	ResponseBufferSize uint32 `idl:"name:ippResponseBufferSize;pointer:ref" json:"response_buffer_size"`
	ResponseBuffer     []byte `idl:"name:ippResponseBuffer;size_is:(, ippResponseBufferSize);pointer:ref" json:"response_buffer"`
	// Return: The RpcIppCreateJobOnPrinter return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CreateJobOnPrinterResponse structure represents the RpcIppCreateJobOnPrinter operation response

func (*CreateJobOnPrinterResponse) MarshalNDR

func (o *CreateJobOnPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreateJobOnPrinterResponse) UnmarshalNDR

func (o *CreateJobOnPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreatePrinterICRequest

type CreatePrinterICRequest struct {
	// hPrinter: A handle to a printer object (section 2.2.1.1.4) that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pDevModeContainer: A parameter specified in DEVMODE_CONTAINER Parameters (section
	// 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
}

CreatePrinterICRequest structure represents the RpcCreatePrinterIC operation request

func (*CreatePrinterICRequest) MarshalNDR

func (o *CreatePrinterICRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreatePrinterICRequest) UnmarshalNDR

func (o *CreatePrinterICRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CreatePrinterICResponse

type CreatePrinterICResponse struct {
	// pHandle: A pointer to a printer information context handle (section 2.2.1.1.2).
	Handle *GDI `idl:"name:pHandle" json:"handle"`
	// Return: The RpcCreatePrinterIC return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CreatePrinterICResponse structure represents the RpcCreatePrinterIC operation response

func (*CreatePrinterICResponse) MarshalNDR

func (o *CreatePrinterICResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CreatePrinterICResponse) UnmarshalNDR

func (o *CreatePrinterICResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteFormRequest

type DeleteFormRequest struct {
	// hPrinter: A handle to a printer object or server object that MUST have been opened
	// by using the RpcAddPrinter, RpcAddPrinterEx, RpcOpenPrinter, or RpcOpenPrinterEx
	// methods.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pFormName: A pointer to a string that MUST identify the form to delete. For rules
	// governing form names, see section 2.2.4.5.
	FormName string `idl:"name:pFormName;string" json:"form_name"`
}

DeleteFormRequest structure represents the RpcDeleteForm operation request

func (*DeleteFormRequest) MarshalNDR

func (o *DeleteFormRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteFormRequest) UnmarshalNDR

func (o *DeleteFormRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteFormResponse

type DeleteFormResponse struct {
	// Return: The RpcDeleteForm return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeleteFormResponse structure represents the RpcDeleteForm operation response

func (*DeleteFormResponse) MarshalNDR

func (o *DeleteFormResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteFormResponse) UnmarshalNDR

func (o *DeleteFormResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteJobNamedPropertyRequest

type DeleteJobNamedPropertyRequest struct {
	// hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or
	// server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of a print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// pszName: A pointer to a string that specifies the Job Named Property to be deleted.
	// This pointer MUST NOT be NULL.
	Name string `idl:"name:pszName;string" json:"name"`
}

DeleteJobNamedPropertyRequest structure represents the RpcDeleteJobNamedProperty operation request

func (*DeleteJobNamedPropertyRequest) MarshalNDR

func (*DeleteJobNamedPropertyRequest) UnmarshalNDR

func (o *DeleteJobNamedPropertyRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteJobNamedPropertyResponse

type DeleteJobNamedPropertyResponse struct {
	// Return: The RpcDeleteJobNamedProperty return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeleteJobNamedPropertyResponse structure represents the RpcDeleteJobNamedProperty operation response

func (*DeleteJobNamedPropertyResponse) MarshalNDR

func (*DeleteJobNamedPropertyResponse) UnmarshalNDR

type DeleteMonitorRequest

type DeleteMonitorRequest struct {
	// Name: This parameter MUST adhere to the parameter specification in Print Server Name
	// Parameters, section 3.1.4.1.4.
	Name string `idl:"name:Name;string;pointer:unique" json:"name"`
	// pEnvironment: This parameter MUST adhere to the parameter specification in Environment
	// Name Parameters, section 3.1.4.1.3.
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// pMonitorName: A pointer to a string that specifies the name of the monitor to remove.
	// For rules governing monitor names, see section 2.2.4.8.
	MonitorName string `idl:"name:pMonitorName;string" json:"monitor_name"`
}

DeleteMonitorRequest structure represents the RpcDeleteMonitor operation request

func (*DeleteMonitorRequest) MarshalNDR

func (o *DeleteMonitorRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteMonitorRequest) UnmarshalNDR

func (o *DeleteMonitorRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeleteMonitorResponse

type DeleteMonitorResponse struct {
	// Return: The RpcDeleteMonitor return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeleteMonitorResponse structure represents the RpcDeleteMonitor operation response

func (*DeleteMonitorResponse) MarshalNDR

func (o *DeleteMonitorResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeleteMonitorResponse) UnmarshalNDR

func (o *DeleteMonitorResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePerMachineConnectionRequest

type DeletePerMachineConnectionRequest struct {
	// pServer: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Server string `idl:"name:pServer;string;pointer:unique" json:"server"`
	// pPrinterName: A parameter specified in Printer Name Parameters (section 3.1.4.1.5)
	// which specifies a printer connection.
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
}

DeletePerMachineConnectionRequest structure represents the RpcDeletePerMachineConnection operation request

func (*DeletePerMachineConnectionRequest) MarshalNDR

func (*DeletePerMachineConnectionRequest) UnmarshalNDR

type DeletePerMachineConnectionResponse

type DeletePerMachineConnectionResponse struct {
	// Return: The RpcDeletePerMachineConnection return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePerMachineConnectionResponse structure represents the RpcDeletePerMachineConnection operation response

func (*DeletePerMachineConnectionResponse) MarshalNDR

func (*DeletePerMachineConnectionResponse) UnmarshalNDR

type DeletePortRequest

type DeletePortRequest struct {
	// pName: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// hWnd: The value of this parameter SHOULD be set to zero when sent and MUST be ignored
	// on receipt.
	Wnd uint64 `idl:"name:hWnd" json:"wnd"`
	// pPortName: A pointer to a string that specifies the name of the port that is deleted.
	// For rules governing port names, see section 2.2.4.10.
	PortName string `idl:"name:pPortName;string" json:"port_name"`
}

DeletePortRequest structure represents the RpcDeletePort operation request

func (*DeletePortRequest) MarshalNDR

func (o *DeletePortRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePortRequest) UnmarshalNDR

func (o *DeletePortRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePortResponse

type DeletePortResponse struct {
	// Return: The RpcDeletePort return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePortResponse structure represents the RpcDeletePort operation response

func (*DeletePortResponse) MarshalNDR

func (o *DeletePortResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePortResponse) UnmarshalNDR

func (o *DeletePortResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrintProcessorRequest

type DeletePrintProcessorRequest struct {
	// Name: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:Name;string;pointer:unique" json:"name"`
	// pEnvironment: A parameter specified in Environment Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// pPrintProcessorName: A pointer to a string that specifies the name of the print processor
	// that is removed. For rules governing print processor names, see Print Processor Names
	// (section 2.2.4.11).
	PrintProcessorName string `idl:"name:pPrintProcessorName;string" json:"print_processor_name"`
}

DeletePrintProcessorRequest structure represents the RpcDeletePrintProcessor operation request

func (*DeletePrintProcessorRequest) MarshalNDR

func (*DeletePrintProcessorRequest) UnmarshalNDR

func (o *DeletePrintProcessorRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrintProcessorResponse

type DeletePrintProcessorResponse struct {
	// Return: The RpcDeletePrintProcessor return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrintProcessorResponse structure represents the RpcDeletePrintProcessor operation response

func (*DeletePrintProcessorResponse) MarshalNDR

func (*DeletePrintProcessorResponse) UnmarshalNDR

func (o *DeletePrintProcessorResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDataExRequest

type DeletePrinterDataExRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key containing the value to delete.
	// A key name is an arbitrary string defined by the printer driver associated with the
	// printer object. For rules governing key names, see section 2.2.4.7.
	KeyName string `idl:"name:pKeyName;string" json:"key_name"`
	// pValueName: A pointer to a string that identifies the configuration data to delete.
	// For rules governing value names, see section 2.2.4.18.
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
}

DeletePrinterDataExRequest structure represents the RpcDeletePrinterDataEx operation request

func (*DeletePrinterDataExRequest) MarshalNDR

func (o *DeletePrinterDataExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterDataExRequest) UnmarshalNDR

func (o *DeletePrinterDataExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDataExResponse

type DeletePrinterDataExResponse struct {
	// Return: The RpcDeletePrinterDataEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterDataExResponse structure represents the RpcDeletePrinterDataEx operation response

func (*DeletePrinterDataExResponse) MarshalNDR

func (*DeletePrinterDataExResponse) UnmarshalNDR

func (o *DeletePrinterDataExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDataRequest

type DeletePrinterDataRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pValueName: A pointer to a string that identifies the configuration data to delete.
	// For rules governing value names, see section 2.2.4.18.
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
}

DeletePrinterDataRequest structure represents the RpcDeletePrinterData operation request

func (*DeletePrinterDataRequest) MarshalNDR

func (o *DeletePrinterDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterDataRequest) UnmarshalNDR

func (o *DeletePrinterDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDataResponse

type DeletePrinterDataResponse struct {
	// Return: The RpcDeletePrinterData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterDataResponse structure represents the RpcDeletePrinterData operation response

func (*DeletePrinterDataResponse) MarshalNDR

func (o *DeletePrinterDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterDataResponse) UnmarshalNDR

func (o *DeletePrinterDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDriverExRequest

type DeletePrinterDriverExRequest struct {
	// pName: A STRING_HANDLE structure (section 2.2.1.1.7) that conforms to the parameter
	// specification in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: A string that conforms to the parameter specification in Environment
	// Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string" json:"environment"`
	// pDriverName: A pointer to a string that specifies the name of the printer driver
	// to delete. For rules governing printer driver names, see section 2.2.4.3.
	DriverName string `idl:"name:pDriverName;string" json:"driver_name"`
	// dwDeleteFlag: A bit field that specifies options for deleting files and versions
	// of the printer driver. If the value of this parameter is zero, the driver MUST be
	// removed from the list of supported drivers, and the driver files MUST remain on the
	// print server.
	//
	// These flags can be combined to specify multiple options.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               NAME/VALUE               |                                   DESCRIPTION                                    |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| DPD_DELETE_UNUSED_FILES 0x00000001     | Remove unused printer driver files. In this case, an error MUST NOT be returned  |
	//	|                                        | if some of the files are being used by another installed driver.                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| DPD_DELETE_SPECIFIC_VERSION 0x00000002 | Delete the version specified by the value of the dwVersionNum parameter. Because |
	//	|                                        | more than one version of a printer driver can be installed on a print server,    |
	//	|                                        | setting this flag does not guarantee that the driver is removed from the list of |
	//	|                                        | supported drivers on the server.                                                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| DPD_DELETE_ALL_FILES 0x00000004        | Delete the printer driver only if all its associated files can be removed. In    |
	//	|                                        | this case, an error MUST be returned if some of the files are being used by      |
	//	|                                        | another installed driver.                                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	DeleteFlag uint32 `idl:"name:dwDeleteFlag" json:"delete_flag"`
	// dwVersionNum: The version of the printer driver to delete.
	//
	// The value of this parameter is implementation-specific and identifies the driver
	// version and the operating system for which the driver was written. The driver version
	// for each printer driver object in a List of Printers (section 3.1.1). It has the
	// same format and meaning as the cVersion members in RPC_DRIVER_INFO structures (section
	// 2.2.1.5).<340>
	VersionNum uint32 `idl:"name:dwVersionNum" json:"version_num"`
}

DeletePrinterDriverExRequest structure represents the RpcDeletePrinterDriverEx operation request

func (*DeletePrinterDriverExRequest) MarshalNDR

func (*DeletePrinterDriverExRequest) UnmarshalNDR

func (o *DeletePrinterDriverExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDriverExResponse

type DeletePrinterDriverExResponse struct {
	// Return: The RpcDeletePrinterDriverEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterDriverExResponse structure represents the RpcDeletePrinterDriverEx operation response

func (*DeletePrinterDriverExResponse) MarshalNDR

func (*DeletePrinterDriverExResponse) UnmarshalNDR

func (o *DeletePrinterDriverExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDriverRequest

type DeletePrinterDriverRequest struct {
	// pName: Specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: Specified in Environment Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string" json:"environment"`
	// pDriverName: A pointer to a string that specifies the name of the printer driver
	// to delete. For rules governing printer driver names, see section 2.2.4.3.
	DriverName string `idl:"name:pDriverName;string" json:"driver_name"`
}

DeletePrinterDriverRequest structure represents the RpcDeletePrinterDriver operation request

func (*DeletePrinterDriverRequest) MarshalNDR

func (o *DeletePrinterDriverRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterDriverRequest) UnmarshalNDR

func (o *DeletePrinterDriverRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterDriverResponse

type DeletePrinterDriverResponse struct {
	// Return: The RpcDeletePrinterDriver return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterDriverResponse structure represents the RpcDeletePrinterDriver operation response

func (*DeletePrinterDriverResponse) MarshalNDR

func (*DeletePrinterDriverResponse) UnmarshalNDR

func (o *DeletePrinterDriverResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterICRequest

type DeletePrinterICRequest struct {
	// phPrinterIC: A pointer to a printer information context handle (section 2.2.1.1.2)
	// that was returned by RpcCreatePrinterIC (section 3.1.4.2.10).
	PrinterIC *GDI `idl:"name:phPrinterIC" json:"printer_ic"`
}

DeletePrinterICRequest structure represents the RpcDeletePrinterIC operation request

func (*DeletePrinterICRequest) MarshalNDR

func (o *DeletePrinterICRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterICRequest) UnmarshalNDR

func (o *DeletePrinterICRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterICResponse

type DeletePrinterICResponse struct {
	// phPrinterIC: A pointer to a printer information context handle (section 2.2.1.1.2)
	// that was returned by RpcCreatePrinterIC (section 3.1.4.2.10).
	PrinterIC *GDI `idl:"name:phPrinterIC" json:"printer_ic"`
	// Return: The RpcDeletePrinterIC return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterICResponse structure represents the RpcDeletePrinterIC operation response

func (*DeletePrinterICResponse) MarshalNDR

func (o *DeletePrinterICResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterICResponse) UnmarshalNDR

func (o *DeletePrinterICResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterKeyRequest

type DeletePrinterKeyRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14) methods.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key to delete. A key name is an
	// arbitrary string defined by the printer driver associated with the printer object.
	// For rules governing key names, see section 2.2.4.7.
	KeyName string `idl:"name:pKeyName;string" json:"key_name"`
}

DeletePrinterKeyRequest structure represents the RpcDeletePrinterKey operation request

func (*DeletePrinterKeyRequest) MarshalNDR

func (o *DeletePrinterKeyRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterKeyRequest) UnmarshalNDR

func (o *DeletePrinterKeyRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterKeyResponse

type DeletePrinterKeyResponse struct {
	// Return: The RpcDeletePrinterKey return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterKeyResponse structure represents the RpcDeletePrinterKey operation response

func (*DeletePrinterKeyResponse) MarshalNDR

func (o *DeletePrinterKeyResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterKeyResponse) UnmarshalNDR

func (o *DeletePrinterKeyResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterRequest

type DeletePrinterRequest struct {
	// hPrinter: A handle to a printer object that MUST have been opened by using the RpcAddPrinter,
	// RpcAddPrinterEx, RpcOpenPrinter, or RpcOpenPrinterEx methods.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

DeletePrinterRequest structure represents the RpcDeletePrinter operation request

func (*DeletePrinterRequest) MarshalNDR

func (o *DeletePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterRequest) UnmarshalNDR

func (o *DeletePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DeletePrinterResponse

type DeletePrinterResponse struct {
	// Return: The RpcDeletePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

DeletePrinterResponse structure represents the RpcDeletePrinter operation response

func (*DeletePrinterResponse) MarshalNDR

func (o *DeletePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DeletePrinterResponse) UnmarshalNDR

func (o *DeletePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type DevMode

type DevMode struct {
	// dmDeviceName (64 bytes): A 32-element array of 16-bit Unicode characters that form
	// a null-terminated string that specifies the name of the printer. Printer name strings
	// that are longer than 32 characters are truncated to fit the array. For more rules
	// governing printer names, see section 2.2.4.14.
	DeviceName []uint16 `idl:"name:dmDeviceName" json:"device_name"`
	// dmSpecVersion (2 bytes): The version of initialization data specification on which
	// the _DEVMODE structure is based. This value SHOULD be 0x0401.<93>
	SpecVersion uint16 `idl:"name:dmSpecVersion" json:"spec_version"`
	// dmDriverVersion (2 bytes): For printers, an optional, implementation-defined version
	// of the printer driver.<94>
	DriverVersion uint16 `idl:"name:dmDriverVersion" json:"driver_version"`
	// dmSize (2 bytes): The size, in bytes, of the _DEVMODE structure, which MUST be a
	// multiple of 4. This value does not include the length of any private, printer driver–specific
	// data that follows the _DEVMODE structure's public fields. The size of private data
	// is specified by the dmDriverExtra value.
	Size uint16 `idl:"name:dmSize" json:"size"`
	// dmDriverExtra (2 bytes): The size, in bytes, of the private, printer driver–specific
	// data that follows this structure.
	DriverExtra uint16 `idl:"name:dmDriverExtra" json:"driver_extra"`
	// dmFields (4 bytes): A bitfield that specifies the fields of the _DEVMODE structure
	// that have been initialized. If a bit is set, the corresponding field MUST be initialized
	// and MUST be processed on receipt. If a bit is not set, the value of the corresponding
	// field SHOULD be zero when sent and MUST be ignored on receipt.
	//
	// The value of this field is the result of a bitwise OR of the following bits.
	//
	//	+---+-----+---+-----+-----+-----+-----+-----+-----+-----+---+-----+-----+-----+-----+-----+-----+---+---+---+---+---+---+-----+---+---+---+---+---+-----+-----+-----+
	//	| 0 |  1  | 2 |  3  |  4  |  5  |  6  |  7  |  8  |  9  | 1 |  1  |  2  |  3  |  4  |  5  |  6  | 7 | 8 | 9 | 2 | 1 | 2 |  3  | 4 | 5 | 6 | 7 | 8 |  9  |  3  |  1  |
	//	|   |     |   |     |     |     |     |     |     |     | 0 |     |     |     |     |     |     |   |   |   | 0 |   |   |     |   |   |   |   |   |     |  0  |     |
	//	+---+-----+---+-----+-----+-----+-----+-----+-----+-----+---+-----+-----+-----+-----+-----+-----+---+---+---+---+---+---+-----+---+---+---+---+---+-----+-----+-----+
	//	+---+-----+---+-----+-----+-----+-----+-----+-----+-----+---+-----+-----+-----+-----+-----+-----+---+---+---+---+---+---+-----+---+---+---+---+---+-----+-----+-----+
	//	| 0 | U P | 0 | S C | P W | P L | P S | O R | C L | T T | Y | D X | C R | P Q | D S | C P | C M | 0 | 0 | 0 | 0 | 0 | 0 | F M | 0 | 0 | 0 | 0 | 0 | D T | M T | C I |
	//	+---+-----+---+-----+-----+-----+-----+-----+-----+-----+---+-----+-----+-----+-----+-----+-----+---+---+---+---+---+---+-----+---+---+---+---+---+-----+-----+-----+
	//
	//
	//	+---------------------+----------------------------------------------------------------------------------+
	//	|                     |                                                                                  |
	//	|        NAME         |                                   DESCRIPTION                                    |
	//	|                     |                                                                                  |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_ICMINTENT CI     | If this bit is set, the dmICMIntent field MUST be initialized.                   |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_MEDIATYPE MT     | If this bit is set, the dmMediaType field MUST be initialized.                   |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_DITHERTYPE DT    | If this bit is set, the dmDitherType field MUST be initialized.                  |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_FORMNAME FM      | If this bit is set, the dmFormName field MUST be initialized.                    |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_ICMMETHOD CM     | If this bit is set, the dmICMMethod field MUST be initialized.                   |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_COPIES CP        | If this bit is set, the dmCopies field MUST be initialized.                      |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_DEFAULTSOURCE DS | If this bit is set, the dmDefaultSource field MUST be initialized.               |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_PRINTQUALITY PQ  | If this bit is set, the dmPrintQuality field MUST be initialized.                |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_COLOR CR         | If this bit is set, the dmColor field MUST be initialized.                       |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_DUPLEX DX        | If this bit is set, the dmDuplex field MUST be initialized.                      |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_YRESOLUTION Y    | If this bit is set, the dmYResolution field MUST be initialized.                 |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_TTOPTION TT      | If this bit is set, the dmTTOption field MUST be initialized.                    |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_COLLATE CL       | If this bit is set, the dmCollate field MUST be initialized.                     |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_ORIENTATION OR   | If this bit is set, the dmOrientation field MUST be initialized.                 |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_PAPERSIZE PS     | If this bit is set, the dmPaperSize field MUST be initialized. This bit MUST NOT |
	//	|                     | be set if either DM_PAPERLENGTH or DM_PAPERWIDTH are set.                        |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_PAPERLENGTH PL   | If this bit is set, the dmPaperLength field MUST be initialized. This bit MUST   |
	//	|                     | NOT be set if DM_PAPERSIZE is set.                                               |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_PAPERWIDTH PW    | If this bit is set, the dmPaperWidth field MUST be initialized. This bit MUST    |
	//	|                     | NOT be set if DM_PAPERSIZE is set.                                               |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_SCALE SC         | If this bit is set, the dmScale field MUST be initialized.                       |
	//	+---------------------+----------------------------------------------------------------------------------+
	//	| DM_NUP UP           | If this bit is set, the dmNup field MUST be initialized.                         |
	//	+---------------------+----------------------------------------------------------------------------------+
	Fields uint32 `idl:"name:dmFields" json:"fields"`
	// dmOrientation (2 bytes): For printers, the orientation for output. If the DM_ORIENTATION
	// bit is set in dmFields, the value of this field SHOULD be one of the following.
	//
	//	+---------------------------+--------------------------+
	//	|                           |                          |
	//	|        NAME/VALUE         |       DESCRIPTION        |
	//	|                           |                          |
	//	+---------------------------+--------------------------+
	//	+---------------------------+--------------------------+
	//	| DMORIENT_POTRAIT 0x0001   | "Portrait" orientation.  |
	//	+---------------------------+--------------------------+
	//	| DMORIENT_LANDSCAPE 0x0002 | "Landscape" orientation. |
	//	+---------------------------+--------------------------+
	Orientation int16 `idl:"name:dmOrientation" json:"orientation"`
	// dmPaperSize (2 bytes): For printers, the size of the output media. If the DM_PAPERSIZE
	// bit is set in dmFields, the value of this field SHOULD<95> be one of the following,
	// or it MAY be a device-specific value that is greater than or equal to 0x0100.
	//
	//	+----------------------------------------------+---------------------------------------------------------+
	//	|                                              |                                                         |
	//	|                  NAME/VALUE                  |                       DESCRIPTION                       |
	//	|                                              |                                                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_LETTER 0x0001                        | Letter, 8 1/2 x 11 inches                               |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_LEGAL 0x0005                         | Legal, 8 1/2 x 14 inches                                |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_10X14 0x0010                         | 10 x 14-inch sheet                                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_11X17 0x0011                         | 11 x 17-inch sheet                                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_12X11 0x005A                         | 12 x 11-inch sheet                                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A3 0x0008                            | A3 sheet, 297 x 420 millimeters                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A3_ROTATED 0x004C                    | A3 rotated sheet, 420 x 297 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A4 0x0009                            | A4 sheet, 210 x 297 millimeters                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A4_ROTATED 0x004D                    | A4 rotated sheet, 297 x 210 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A4SMALL 0x000A                       | A4 small sheet, 210 x 297 millimeters                   |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A5 0x000B                            | A5 sheet, 148 x 210 millimeters                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A5_ROTATED 0x004E                    | A5 rotated sheet, 210 x 148 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A6 0x0046                            | A6 sheet, 105 x 148 millimeters                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_A6_ROTATED 0x0053                    | A6 rotated sheet, 148 x 105 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B4 0x000C                            | B4 sheet, 250 x 354 millimeters                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B4_JIS_ROTATED 0x004F                | B4 (JIS) rotated sheet, 364 x 257 millimeters           |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B5 0x000D                            | B5 sheet, 182 x 257-millimeter paper                    |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B5_JIS_ROTATED 0x0050                | B5 (JIS) rotated sheet, 257 x 182 millimeters           |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B6_JIS 0x0058                        | B6 (JIS) sheet, 128 x 182 millimeters                   |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_B6_JIS_ROTATED 0x0059                | B6 (JIS) rotated sheet, 182 x 128 millimeters           |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_CSHEET 0x0018                        | C Sheet, 17 x 22 inches                                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_DBL_JAPANESE_POSTCARD 0x0045         | Double Japanese Postcard, 200 x 148 millimeters         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 0x0052 | Double Japanese Postcard Rotated, 148 x 200 millimeters |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_DSHEET 0x0019                        | D Sheet, 22 x 34 inches                                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_9 0x0013                         | #9 Envelope, 3 7/8 x 8 7/8 inches                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_10 0x0014                        | #10 Envelope, 4 1/8 x 9 1/2 inches                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_11 0x0015                        | #11 Envelope, 4 1/2 x 10 3/8 inches                     |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_12 0x0016                        | #12 Envelope, 4 3/4 x 11 inches                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_14 0x0017                        | #14 Envelope, 5 x 11 1/2 inches                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_C5 0x001C                        | C5 Envelope, 162 x 229 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_C3 0x001D                        | C3 Envelope, 324 x 458 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_C4 0x001E                        | C4 Envelope, 229 x 324 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_C6 0x001F                        | C6 Envelope, 114 x 162 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_C65 0x0020                       | C65 Envelope, 114 x 229 millimeters                     |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_B4 0x0021                        | B4 Envelope, 250 x 353 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_B5 0x0022                        | B5 Envelope, 176 x 250 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_B6 0x0023                        | B6 Envelope, 176 x 125 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_DL 0x001B                        | DL Envelope, 110 x 220 millimeters                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_ITALY 0x0024                     | Italy Envelope, 110 x 230 millimeters                   |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_MONARCH 0x0025                   | Monarch Envelope, 3 7/8 x 7 1/2 inches                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ENV_PERSONAL 0x0026                  | 6 3/4 Envelope, 3 5/8 x 6 1/2 inches                    |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_ESHEET 0x001A                        | E Sheet, 34 x 44 inches                                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_EXECUTIVE 0x0007                     | Executive, 7 1/4 x 10 1/2 inches                        |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_FANFOLD_US 0x0027                    | US Std Fanfold, 14 7/8 x 11 inches                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_FANFOLD_STD_GERMAN 0x0028            | German Std Fanfold, 8 1/2 x 12 inches                   |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_FANFOLD_LGL_GERMAN 0x0029            | German Legal Fanfold, 8 x 13 inches                     |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_FOLIO 0x000E                         | Folio, 8 1/2 x 13-inch paper                            |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JAPANESE_POSTCARD_ROTATED 0x0051     | Japanese Postcard Rotated, 148 x 100 millimeters        |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_CHOU3 0x0049                    | Japanese Envelope Chou #3                               |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_CHOU3_ROTATED 0x0056            | Japanese Envelope Chou #3 Rotated                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_CHOU4 0x004A                    | Japanese Envelope Chou #4                               |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_CHOU4_ROTATED 0x0057            | Japanese Envelope Chou #4 Rotated                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_KAKU2 0x0047                    | Japanese Envelope Kaku #2                               |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_KAKU2_ROTATED 0x0054            | Japanese Envelope Kaku #2 Rotated                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_KAKU3 0x0048                    | Japanese Envelope Kaku #3                               |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_KAKU3_ROTATED 0x0055            | Japanese Envelope Kaku #3 Rotated                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_YOU4 0x005B                     | Japanese Envelope You #4                                |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_JENV_YOU4_ROTATED 0x005C             | Japanese Envelope You #4 Rotated                        |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_LEDGER 0x0004                        | Ledger, 17 x 11 inches                                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_LETTER_ROTATED 0x004B                | Letter Rotated, 11 by 8 1/2 inches                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_LETTERSMALL 0x0002                   | Letter Small, 8 1/2 x 11 inches                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_NOTE 0x0012                          | Note, 8 1/2 x 11-inches                                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P16K 0x005D                          | PRC 16K, 146 x 215 millimeters                          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P16K_ROTATED 0x006A                  | PRC 16K Rotated, 215 x 146 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P32K 0x005E                          | PRC 32K, 97 x 151 millimeters                           |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P32K_ROTATED 0x006B                  | PRC 32K Rotated, 151 x 97 millimeters                   |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P32KBIG 0x005F                       | PRC 32K(Big) 97 x 151 millimeters                       |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_P32KBIG_ROTATED 0x006C               | PRC 32K(Big) Rotated, 151 x 97 millimeters              |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_1 0x0060                        | PRC Envelope #1, 102 by 165 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_1_ROTATED 0x006D                | PRC Envelope #1 Rotated, 165 x 102 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_2 0x0061                        | PRC Envelope #2, 102 x 176 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_2_ROTATED 0x006E                | PRC Envelope #2 Rotated, 176 x 102 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_3 0x0062                        | PRC Envelope #3, 125 x 176 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_3_ROTATED 0x006F                | PRC Envelope #3 Rotated, 176 x 125 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_4 0x0063                        | PRC Envelope #4, 110 x 208 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_4_ROTATED 0x0070                | PRC Envelope #4 Rotated, 208 x 110 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_5 0x0064                        | PRC Envelope #5, 110 x 220 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_5_ROTATED 0x0071                | PRC Envelope #5 Rotated, 220 x 110 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_6 0x0065                        | PRC Envelope #6, 120 x 230 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_6_ROTATED 0x0072                | PRC Envelope #6 Rotated, 230 x 120 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_7 0x0066                        | PRC Envelope #7, 160 x 230 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_7_ROTATED 0x0073                | PRC Envelope #7 Rotated, 230 x 160 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_8 0x0067                        | PRC Envelope #8, 120 x 309 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_8_ROTATED 0x0074                | PRC Envelope #8 Rotated, 309 x 120 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_9 0x0068                        | PRC Envelope #9, 229 x 324 millimeters                  |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_9_ROTATED 0x0075                | PRC Envelope #9 Rotated, 324 x 229 millimeters          |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_10 0x0069                       | PRC Envelope #10, 324 x 458 millimeters                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_PENV_10_ROTATED 0x0076               | PRC Envelope #10 Rotated, 458 x 324 millimeters         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_QUARTO 0x000F                        | Quarto, 215 x 275 millimeter paper                      |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_STATEMENT 0x0006                     | Statement, 5 1/2 x 8 1/2 inches                         |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| DMPAPER_TABLOID 0x0003                       | Tabloid, 11 x 17 inches                                 |
	//	+----------------------------------------------+---------------------------------------------------------+
	//	| 0x0100 ≤ value                               | The value is device-specific.                           |
	//	+----------------------------------------------+---------------------------------------------------------+
	PaperSize int16 `idl:"name:dmPaperSize" json:"paper_size"`
	// dmPaperLength (2 bytes): If the DM_PAPERLENGTH bit is set in the dmFields field,
	// this field specifies the length of the paper, in tenths of a millimeter, to use in
	// the printer for which the job is destined.
	PaperLength int16 `idl:"name:dmPaperLength" json:"paper_length"`
	// dmPaperWidth (2 bytes): If the DM_PAPERWIDTH bit is set in the dmFields field, this
	// field specifies the width of the paper, in tenths of a millimeter, to use in the
	// printer for which the job is destined.
	PaperWidth int16 `idl:"name:dmPaperWidth" json:"paper_width"`
	// dmScale (2 bytes): If the DM_SCALE bit is set in the dmFields field, this field specifies
	// the percentage factor by which the printed output is to be scaled.
	Scale int16 `idl:"name:dmScale" json:"scale"`
	// dmCopies (2 bytes): If the DM_COPIES bit is set in the dmFields field, this field
	// specifies the number of copies to be printed, if the device supports multiple-page
	// copies.
	Copies int16 `idl:"name:dmCopies" json:"copies"`
	// dmDefaultSource (2 bytes): If the DM_DEFAULTSOURCE bit is set in the dmFields field,
	// this field specifies the paper source.
	//
	// The value of this field SHOULD be one of the following, or it MAY be a device-specific
	// value that is greater than or equal to 0x0100.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|                            |                                                                                  |
	//	|         NAME/VALUE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_UPPER 0x0001         | Select the upper paper bin. This value is also used for the paper source for     |
	//	|                            | printers that only have one paper bin.                                           |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_LOWER 0x0002         | Select the lower bin.                                                            |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_MIDDLE 0x0003        | Select the middle paper bin.                                                     |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_MANUAL 0x0004        | Manually select the paper bin.                                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_ENVELOPE 0x0005      | Select the auto envelope bin.                                                    |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_ENVMANUAL 0x0006     | Select the manual envelope bin.                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_AUTO 0x0007          | Auto-select the bin.                                                             |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_TRACTOR 0x0008       | Select the bin with the tractor paper.                                           |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_SMALLFMT 0x0009      | Select the bin with the smaller paper format.                                    |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_LARGEFMT 0x000A      | Select the bin with the larger paper format.                                     |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_LARGECAPACITY 0x000B | Select the bin with large capacity.                                              |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_CASSETTE 0x000E      | Select the cassette bin.                                                         |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| DMBIN_FORMSOURCE 0x000F    | Select the bin with the required form.                                           |
	//	+----------------------------+----------------------------------------------------------------------------------+
	DefaultSource int16 `idl:"name:dmDefaultSource" json:"default_source"`
	// dmPrintQuality (2 bytes): If the DM_PRINTQUALITY bit is set in the dmFields field,
	// this field specifies the printer resolution. The value of this field MUST be either
	// a positive value that specifies a device-dependent resolution in dots per inch (DPI)
	// or one of the following four predefined device-independent values that are mapped
	// to a device-specific resolution in an implementation-specific manner.
	//
	//	+---------------------+-----------------------------+
	//	|                     |                             |
	//	|     NAME/VALUE      |         DESCRIPTION         |
	//	|                     |                             |
	//	+---------------------+-----------------------------+
	//	+---------------------+-----------------------------+
	//	| DMRES_HIGH 0xFFFC   | High-resolution printouts   |
	//	+---------------------+-----------------------------+
	//	| DMRES_MEDIUM 0xFFFD | Medium-resolution printouts |
	//	+---------------------+-----------------------------+
	//	| DMRES_LOW 0xFFFE    | Low-resolution printouts    |
	//	+---------------------+-----------------------------+
	//	| DMRES_DRAFT 0xFFFF  | Draft-resolution printouts  |
	//	+---------------------+-----------------------------+
	PrintQuality int16 `idl:"name:dmPrintQuality" json:"print_quality"`
	// dmColor (2 bytes): If the DM_COLOR bit is set in the dmFields field, this field specifies
	// the color mode to use with color printers. The value of this field MUST be one of
	// the following.
	//
	//	+-------------------------+-------------------------------+
	//	|                         |                               |
	//	|       NAME/VALUE        |          DESCRIPTION          |
	//	|                         |                               |
	//	+-------------------------+-------------------------------+
	//	+-------------------------+-------------------------------+
	//	| DMRES_MONOCHROME 0x0001 | Use monochrome printing mode. |
	//	+-------------------------+-------------------------------+
	//	| DMRES_COLOR 0x0002      | Use color printing mode.      |
	//	+-------------------------+-------------------------------+
	Color int16 `idl:"name:dmColor" json:"color"`
	// dmDuplex (2 bytes): If the DM_DUPLEX bit is set in the dmFields field, this field
	// specifies duplex or double-sided printing for printers that are capable of duplex
	// printing. The value of this field MUST be one of the following.
	//
	//	+-------------------------+-----------------------------------------------------------------------+
	//	|                         |                                                                       |
	//	|       NAME/VALUE        |                              DESCRIPTION                              |
	//	|                         |                                                                       |
	//	+-------------------------+-----------------------------------------------------------------------+
	//	+-------------------------+-----------------------------------------------------------------------+
	//	| DMDUP_SIMPLEX 0x0001    | Normal (non-duplex) printing.                                         |
	//	+-------------------------+-----------------------------------------------------------------------+
	//	| DMDUP_VERTICAL 0x0002   | Long-edge binding; that is, the long edge of the page is vertical.    |
	//	+-------------------------+-----------------------------------------------------------------------+
	//	| DMDUP_HORIZONTAL 0x0003 | Short-edge binding; that is, the long edge of the page is horizontal. |
	//	+-------------------------+-----------------------------------------------------------------------+
	Duplex int16 `idl:"name:dmDuplex" json:"duplex"`
	// dmYResolution (2 bytes): If the DM_YRESOLUTION bit is set in the dmFields, this field
	// specifies the y-resolution, in dots per inch, of the printer.
	YResolution int16 `idl:"name:dmYResolution" json:"y_resolution"`
	// dmTTOption (2 bytes): If the DM_TTOPTION bit is set in the dmFields field, this field
	// specifies how TrueType fonts MUST be printed. The value of this field MUST be one
	// of the following.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|          NAME/VALUE          |                                   DESCRIPTION                                    |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DMTT_BITMAP 0x0001           | Prints TrueType fonts as graphics. This is the default action for dot-matrix     |
	//	|                              | printers.                                                                        |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DMTT_DOWNLOAD 0x0002         | Downloads TrueType fonts as soft fonts. This is the default action for           |
	//	|                              | Hewlett-Packard printers that use printer control language (PCL).                |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DMTT_SUBDEV 0x0003           | Substitutes device fonts for TrueType fonts. This is the default action for      |
	//	|                              | PostScript printers.                                                             |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DMTT_DOWNLOAD_OUTLINE 0x0004 | Downloads TrueType fonts as outline soft fonts.<96>                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	TTOption int16 `idl:"name:dmTTOption" json:"tt_option"`
	// dmCollate (2 bytes): If the DM_COLLATE bit is set in the dmFields field, this field
	// specifies whether collation is used when printing multiple copies. The value of this
	// field is one of the following:
	//
	//	+------------------------+-----------------------------------------------+
	//	|                        |                                               |
	//	|       NAME/VALUE       |                  DESCRIPTION                  |
	//	|                        |                                               |
	//	+------------------------+-----------------------------------------------+
	//	+------------------------+-----------------------------------------------+
	//	| DMCOLLATE_FALSE 0x0000 | Do not collate when printing multiple copies. |
	//	+------------------------+-----------------------------------------------+
	//	| DMCOLLATE_TRUE 0x0001  | Collate when printing multiple copies.        |
	//	+------------------------+-----------------------------------------------+
	Collate int16 `idl:"name:dmCollate" json:"collate"`
	// dmFormName (64 bytes): This field is a 32-element array of 16-bit Unicode characters.
	// If the DM_FORMNAME bit is set in the dmFields field, this field specifies the name
	// of the form to use, for example, "Letter" or "Legal". The value of this field is
	// restricted to 32 characters, including the trailing null. Form names that are longer
	// than 32 characters, including the trailing null, are truncated to fit the array.
	FormName []uint16 `idl:"name:dmFormName" json:"form_name"`

	// dmNup (4 bytes): If the DM_NUP bit is set in the dmFields, this field specifies the
	// responsibility for performing page layout for N-Up Printing. It is one of the following
	// values:
	//
	//	+-------------------------+----------------------------------------+
	//	|                         |                                        |
	//	|       NAME/VALUE        |              DESCRIPTION               |
	//	|                         |                                        |
	//	+-------------------------+----------------------------------------+
	//	+-------------------------+----------------------------------------+
	//	| DMNUP_SYSTEM 0x00000001 | The print server does the page layout. |
	//	+-------------------------+----------------------------------------+
	//	| DMNUP_ONEUP 0x00000002  | The application does the page layout.  |
	//	+-------------------------+----------------------------------------+
	NUp uint32 `idl:"name:dmNup" json:"nup"`

	// dmICMMethod (4 bytes): If the DM_ICMMETHOD bit is set in the dmFields field, this
	// field specifies how Image Color Management (ICM) is handled. For a non-ICM application,
	// this field determines if ICM is enabled or disabled. For ICM applications, the system
	// examines this field to determine how to handle ICM support. The value of this field
	// is one of the following predefined values or a printer driver-defined value greater
	// than or equal to 0x00000100.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|                               |                                                                                  |
	//	|          NAME/VALUE           |                                   DESCRIPTION                                    |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DMICMMETHOD_NONE 0x00000001   | Specifies that ICM is disabled.                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DMICMMETHOD_SYSTEM 0x00000002 | Specifies that ICM is handled by the system on which the page description        |
	//	|                               | language (PDL) data is generated.                                                |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DMICMMETHOD_DRIVER 0x00000003 | Specifies that ICM is handled by the printer driver.                             |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DMICMMETHOD_DEVICE 0x00000004 | Specifies that ICM is handled by the destination device.                         |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	ICMMethod uint32 `idl:"name:dmICMMethod" json:"icm_method"`
	// dmICMIntent (4 bytes): If the DM_ICMINTENT bit is set in the dmFields field, this
	// field specifies which color matching method, or intent, is used by default. This
	// field is primarily for non-ICM applications. ICM applications can establish intents
	// by using the ICM functions. The value of this field is one of the following predefined
	// values, or a printer driver defined value greater than or equal to 0x00000100.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|                                   |                                                                                  |
	//	|            NAME/VALUE             |                                   DESCRIPTION                                    |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| DMICM_SATURATE 0x00000001         | Color matching SHOULD be optimized for color saturation.                         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| DMICM_CONTRAST 0x00000002         | Color matching SHOULD optimize for color contrast.                               |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| DMICM_COLORIMETRIC 0x00000003     | Color matching SHOULD optimize to match the exact color requested.               |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| DMICM_ABS_COLORIMETRIC 0x00000004 | Color matching SHOULD optimize to match the exact color requested without white  |
	//	|                                   | point mapping.                                                                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	ICMIntent uint32 `idl:"name:dmICMIntent" json:"icm_intent"`
	// dmMediaType (4 bytes): If the DM_MEDIATYPE bit is set in the dmFields field, this
	// field specifies the type of media to print on. The value of this field is one of
	// the following predefined values or else a printer driver-defined value greater than
	// or equal to 0x00000100.
	//
	//	+---------------------------------+------------------+
	//	|                                 |                  |
	//	|           NAME/VALUE            |   DESCRIPTION    |
	//	|                                 |                  |
	//	+---------------------------------+------------------+
	//	+---------------------------------+------------------+
	//	| DMMEDIA_STANDARD 0x00000001     | Plain paper      |
	//	+---------------------------------+------------------+
	//	| DMMEDIA_TRANSPARENCY 0x00000002 | Transparent film |
	//	+---------------------------------+------------------+
	//	| DMMEDIA_GLOSSY 0x00000003       | Glossy paper     |
	//	+---------------------------------+------------------+
	MediaType uint32 `idl:"name:dmMediaType" json:"media_type"`
	// dmDitherType (4 bytes): If the DM_DITHERTYPE bit is set in the dmFields field, this
	// field specifies how dithering is to be done. The value of this field is one of the
	// following predefined values or else a printer driver-defined value greater than or
	// equal to 0x00000100.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             NAME/VALUE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_NONE 0x00000001           | No dithering.                                                                    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_COARSE 0x00000002         | Dithering with a coarse brush.                                                   |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_FINE 0x00000003           | Dithering with a fine brush.                                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_LINEART 0x00000004        | Line art dithering, a special dithering method that produces well defined        |
	//	|                                    | borders between black, white, and gray scaling.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_ERRORDIFFUSION 0x00000005 | Error diffusion dithering.<97>                                                   |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_RESERVED6 0x00000006      | Same as DMDITHER_LINEART.                                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_RESERVED7 0x00000007      | Same as DMDITHER_LINEART.                                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_RESERVED8 0x00000008      | Same as DMDITHER_LINEART.                                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_RESERVED9 0x00000009      | Same as DMDITHER_LINEART.                                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DMDITHER_GRAYSCALE 0x0000000A      | Device does gray scaling.                                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	DitherType uint32 `idl:"name:dmDitherType" json:"dither_type"`
	// contains filtered or unexported fields
}

DevMode structure represents DEVMODE RPC structure.

The DEVMODE structure is a truncated form of the variable-length, custom-marshaled _DEVMODE structure (section 2.2.2.1), which is version-specific and implementation-specific and cannot be expressed using IDL attributes.

All members of this structure are specified in section 2.2.2.1.

The _DEVMODE structure defines initialization data for a printer. Although the _DEVMODE structure does not contain any pointers, it is still custom-marshaled, because the size of the structure is version-specific and implementation-specific, and cannot be expressed using IDL attributes. It has the following message format.

The print server MUST accept _DEVMODE structures with truncated public information. A truncated _DEVMODE structure contains a subset of fields, from dmDeviceName up to and including dmFields, plus at least those fields that are initialized as specified by dmFields. It is followed by private, printer driver–specific data, the size of which is specified by the dmDriverExtra field.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmDeviceName (64 bytes)                                                                                                       |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmSpecVersion                                                 | dmDriverVersion                                               |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmSize                                                        | dmDriverExtra                                                 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmFields                                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmOrientation                                                 | dmPaperSize                                                   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmPaperLength                                                 | dmPaperWidth                                                  |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmScale                                                       | dmCopies                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmDefaultSource                                               | dmPrintQuality                                                |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmColor                                                       | dmDuplex                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmYResolution                                                 | dmTTOption                                                    |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmCollate                                                     | dmFormName (64 bytes)                                         |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                           | reserved0                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved1                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved2                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved3                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmNup                                                                                                                         |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved4                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmICMMethod                                                                                                                   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmICMIntent                                                                                                                   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmMediaType                                                                                                                   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmDitherType                                                                                                                  |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved5                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved6                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved7                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| reserved8                                                                                                                     |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| dmDriverExtraData (variable)                                                                                                  |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*DevMode) MarshalNDR

func (o *DevMode) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DevMode) UnmarshalNDR

func (o *DevMode) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DevModeContainer

type DevModeContainer struct {
	// cbBuf: The size, in bytes, of the buffer pointed to by the pDevMode member.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pDevMode: An optional pointer to a variable-length, custom-marshaled _DEVMODE structure.
	// The NULL value MUST be used to indicate that the default initialization data for
	// the printer driver SHOULD be used.
	DevMode []byte `idl:"name:pDevMode;size_is:(cbBuf);pointer:unique" json:"dev_mode"`
}

DevModeContainer structure represents DEVMODE_CONTAINER RPC structure.

The DEVMODE_CONTAINER structure specifies a _DEVMODE structure (section 2.2.2.1), which contains data for the initialization of a print device by a printer driver.

func (*DevModeContainer) MarshalNDR

func (o *DevModeContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DevModeContainer) UnmarshalNDR

func (o *DevModeContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DocInfo1

type DocInfo1 struct {
	// pDocName: An optional pointer to a string that provides the name of the document.
	// If this member is NULL, the print server SHOULD use an implementation-specific default
	// job name.<22>
	DocName string `idl:"name:pDocName;string" json:"doc_name"`
	// pOutputFile: An optional pointer to a string that specifies the name of an output
	// file. For rules governing path names, see section 2.2.4.9.
	OutputFile string `idl:"name:pOutputFile;string" json:"output_file"`
	// pDatatype: An optional pointer to a string that identifies the type of data used
	// to record the document. For rules governing data type names, see section 2.2.4.2.
	DataType string `idl:"name:pDatatype;string" json:"data_type"`
}

DocInfo1 structure represents DOC_INFO_1 RPC structure.

The DOC_INFO_1 structure describes a document that is printed.

func (*DocInfo1) MarshalNDR

func (o *DocInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DocInfo1) UnmarshalNDR

func (o *DocInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DocInfoContainer

type DocInfoContainer struct {
	// Level: This member specifies the information level of the DocInfo member data. The
	// value of this member MUST be set to 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// DocInfo: This member MUST define document properties, using an information structure
	// that MUST correspond to the value of the Level member.
	DocInfo *DocInfoContainer_DocInfo `idl:"name:DocInfo;switch_is:Level" json:"doc_info"`
}

DocInfoContainer structure represents DOC_INFO_CONTAINER RPC structure.

The DOC_INFO_CONTAINER structure provides information about the document to be printed, using the DOC_INFO_1 structure.

func (*DocInfoContainer) MarshalNDR

func (o *DocInfoContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DocInfoContainer) UnmarshalNDR

func (o *DocInfoContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DocInfoContainer_DocInfo

type DocInfoContainer_DocInfo struct {
	// Types that are assignable to Value
	//
	// *DocInfoContainer_DocInfo1
	Value is_DocInfoContainer_DocInfo `json:"value"`
}

DocInfoContainer_DocInfo structure represents DOC_INFO_CONTAINER union anonymous member.

The DOC_INFO_CONTAINER structure provides information about the document to be printed, using the DOC_INFO_1 structure.

func (*DocInfoContainer_DocInfo) GetValue

func (o *DocInfoContainer_DocInfo) GetValue() any

func (*DocInfoContainer_DocInfo) MarshalUnionNDR

func (o *DocInfoContainer_DocInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*DocInfoContainer_DocInfo) NDRSwitchValue

func (o *DocInfoContainer_DocInfo) NDRSwitchValue(sw uint32) uint32

func (*DocInfoContainer_DocInfo) UnmarshalUnionNDR

func (o *DocInfoContainer_DocInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type DocInfoContainer_DocInfo1

type DocInfoContainer_DocInfo1 struct {
	// pDocInfo1: A pointer to a DOC_INFO_1 structure (section 2.2.1.4) that describes the
	// document that is printed.
	DocInfo1 *DocInfo1 `idl:"name:pDocInfo1" json:"doc_info1"`
}

DocInfoContainer_DocInfo1 structure represents DocInfoContainer_DocInfo RPC union arm.

It has following labels: 1

func (*DocInfoContainer_DocInfo1) MarshalNDR

func (o *DocInfoContainer_DocInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DocInfoContainer_DocInfo1) UnmarshalNDR

func (o *DocInfoContainer_DocInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverContainer

type DriverContainer struct {
	// Level: Specifies the information level of the DriverInfo data. The value of this
	// member MUST be in the range 0x00000002 to 0x00000004 inclusive, 0x00000006, or 0x00000008.
	Level uint32 `idl:"name:Level" json:"level"`
	// DriverInfo: Defines printer driver properties by using an information structure that
	// corresponds to the value of the Level member.
	DriverInfo *DriverContainer_DriverInfo `idl:"name:DriverInfo;switch_is:Level" json:"driver_info"`
}

DriverContainer structure represents DRIVER_CONTAINER RPC structure.

The DRIVER_CONTAINER structure provides information about printer drivers by using DRIVER_INFO structures (section 2.2.1.5). The DriverInfo member specifies the structure that defines the properties of a printer driver.

func (*DriverContainer) MarshalNDR

func (o *DriverContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverContainer) UnmarshalNDR

func (o *DriverContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverContainer_DriverInfo

type DriverContainer_DriverInfo struct {
	// Types that are assignable to Value
	//
	// *DriverContainer_DriverInfo_NotUsed
	// *DriverContainer_DriverInfo_Level2
	// *DriverContainer_DriverInfo_Level3
	// *DriverContainer_DriverInfo_Level4
	// *DriverContainer_DriverInfo_Level6
	// *DriverContainer_DriverInfo_Level8
	Value is_DriverContainer_DriverInfo `json:"value"`
}

DriverContainer_DriverInfo structure represents DRIVER_CONTAINER union anonymous member.

The DRIVER_CONTAINER structure provides information about printer drivers by using DRIVER_INFO structures (section 2.2.1.5). The DriverInfo member specifies the structure that defines the properties of a printer driver.

func (*DriverContainer_DriverInfo) GetValue

func (o *DriverContainer_DriverInfo) GetValue() any

func (*DriverContainer_DriverInfo) MarshalUnionNDR

func (o *DriverContainer_DriverInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*DriverContainer_DriverInfo) NDRSwitchValue

func (o *DriverContainer_DriverInfo) NDRSwitchValue(sw uint32) uint32

func (*DriverContainer_DriverInfo) UnmarshalUnionNDR

func (o *DriverContainer_DriverInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type DriverContainer_DriverInfo_Level2

type DriverContainer_DriverInfo_Level2 struct {
	// Level2: If the Level member is 0x00000002, this member is a pointer to a DRIVER_INFO_2
	// structure that provides printer driver information. For details, see section 2.2.1.5.2.
	Level2 *DriverInfo2 `idl:"name:Level2" json:"level2"`
}

DriverContainer_DriverInfo_Level2 structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 2

func (*DriverContainer_DriverInfo_Level2) MarshalNDR

func (*DriverContainer_DriverInfo_Level2) UnmarshalNDR

type DriverContainer_DriverInfo_Level3

type DriverContainer_DriverInfo_Level3 struct {
	// Level3: If the Level member is 0x00000003, this member is a pointer to an RPC_DRIVER_INFO_3
	// structure that provides printer driver information. For details, see section 2.2.1.5.3.
	Level3 *DriverInfo3 `idl:"name:Level3" json:"level3"`
}

DriverContainer_DriverInfo_Level3 structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 3

func (*DriverContainer_DriverInfo_Level3) MarshalNDR

func (*DriverContainer_DriverInfo_Level3) UnmarshalNDR

type DriverContainer_DriverInfo_Level4

type DriverContainer_DriverInfo_Level4 struct {
	// Level4: If the Level member is 0x00000004, this member is a pointer to an RPC_DRIVER_INFO_4
	// structure that provides printer driver information. For details, see section 2.2.1.5.4.
	Level4 *DriverInfo4 `idl:"name:Level4" json:"level4"`
}

DriverContainer_DriverInfo_Level4 structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 4

func (*DriverContainer_DriverInfo_Level4) MarshalNDR

func (*DriverContainer_DriverInfo_Level4) UnmarshalNDR

type DriverContainer_DriverInfo_Level6

type DriverContainer_DriverInfo_Level6 struct {
	// Level6: If the Level member is 0x00000006, this member is a pointer to an RPC_DRIVER_INFO_6
	// structure that provides printer driver information. For details, see section 2.2.1.5.5.
	Level6 *DriverInfo6 `idl:"name:Level6" json:"level6"`
}

DriverContainer_DriverInfo_Level6 structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 6

func (*DriverContainer_DriverInfo_Level6) MarshalNDR

func (*DriverContainer_DriverInfo_Level6) UnmarshalNDR

type DriverContainer_DriverInfo_Level8

type DriverContainer_DriverInfo_Level8 struct {
	// Level8: If the Level member is 0x00000008, this member is a pointer to an RPC_DRIVER_INFO_8
	// structure that provides printer driver information. For details, see section 2.2.1.5.6.
	Level8 *DriverInfo8 `idl:"name:Level8" json:"level8"`
}

DriverContainer_DriverInfo_Level8 structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 8

func (*DriverContainer_DriverInfo_Level8) MarshalNDR

func (*DriverContainer_DriverInfo_Level8) UnmarshalNDR

type DriverContainer_DriverInfo_NotUsed

type DriverContainer_DriverInfo_NotUsed struct {
	// pNotUsed: A pointer to a structure that is specified only as a placeholder in the
	// IDL and MUST be ignored.
	NotUsed *DriverInfo1 `idl:"name:pNotUsed" json:"not_used"`
}

DriverContainer_DriverInfo_NotUsed structure represents DriverContainer_DriverInfo RPC union arm.

It has following labels: 1

func (*DriverContainer_DriverInfo_NotUsed) MarshalNDR

func (*DriverContainer_DriverInfo_NotUsed) UnmarshalNDR

type DriverInfo1

type DriverInfo1 struct {
	Name string `idl:"name:pName;string" json:"name"`
}

DriverInfo1 structure represents DRIVER_INFO_1 RPC structure.

The _DRIVER_INFO_1 structure specifies printer driver information. It is a custom-marshaled form of the _DRIVER_INFO_1 (section 2.2.1.5.1) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The DRIVER_INFO_1 structure provides information about a printer driver.

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.

func (*DriverInfo1) MarshalNDR

func (o *DriverInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo1) UnmarshalNDR

func (o *DriverInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverInfo2

type DriverInfo2 struct {
	VersionCount uint32 `idl:"name:cVersion" json:"version_count"`
	Name         string `idl:"name:pName;string" json:"name"`
	Environment  string `idl:"name:pEnvironment;string" json:"environment"`
	DriverPath   string `idl:"name:pDriverPath;string" json:"driver_path"`
	DataFile     string `idl:"name:pDataFile;string" json:"data_file"`
	ConfigFile   string `idl:"name:pConfigFile;string" json:"config_file"`
}

DriverInfo2 structure represents DRIVER_INFO_2 RPC structure.

The _DRIVER_INFO_2 structure specifies printer driver information. It is a custom-marshaled form of the _DRIVER_INFO_2 (section 2.2.1.5.2) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The DRIVER_INFO_2 structure provides information about a printer driver.

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.

func (*DriverInfo2) MarshalNDR

func (o *DriverInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo2) UnmarshalNDR

func (o *DriverInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverInfo3

type DriverInfo3 struct {
	VersionCount         uint32 `idl:"name:cVersion" json:"version_count"`
	Name                 string `idl:"name:pName;string" json:"name"`
	Environment          string `idl:"name:pEnvironment;string" json:"environment"`
	DriverPath           string `idl:"name:pDriverPath;string" json:"driver_path"`
	DataFile             string `idl:"name:pDataFile;string" json:"data_file"`
	ConfigFile           string `idl:"name:pConfigFile;string" json:"config_file"`
	HelpFile             string `idl:"name:pHelpFile;string" json:"help_file"`
	MonitorName          string `idl:"name:pMonitorName;string" json:"monitor_name"`
	DefaultDataType      string `idl:"name:pDefaultDataType;string" json:"default_data_type"`
	DependentFilesLength uint32 `idl:"name:cchDependentFiles" json:"dependent_files_length"`
	DependentFiles       string `idl:"name:pDependentFiles;size_is:(cchDependentFiles);pointer:unique" json:"dependent_files"`
}

DriverInfo3 structure represents RPC_DRIVER_INFO_3 RPC structure.

The RPC_DRIVER_INFO_3 structure provides information about a printer driver.<23>

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.

func (*DriverInfo3) MarshalNDR

func (o *DriverInfo3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo3) UnmarshalNDR

func (o *DriverInfo3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverInfo4

type DriverInfo4 struct {
	VersionCount         uint32 `idl:"name:cVersion" json:"version_count"`
	Name                 string `idl:"name:pName;string" json:"name"`
	Environment          string `idl:"name:pEnvironment;string" json:"environment"`
	DriverPath           string `idl:"name:pDriverPath;string" json:"driver_path"`
	DataFile             string `idl:"name:pDataFile;string" json:"data_file"`
	ConfigFile           string `idl:"name:pConfigFile;string" json:"config_file"`
	HelpFile             string `idl:"name:pHelpFile;string" json:"help_file"`
	MonitorName          string `idl:"name:pMonitorName;string" json:"monitor_name"`
	DefaultDataType      string `idl:"name:pDefaultDataType;string" json:"default_data_type"`
	DependentFilesLength uint32 `idl:"name:cchDependentFiles" json:"dependent_files_length"`
	DependentFiles       string `idl:"name:pDependentFiles;size_is:(cchDependentFiles);pointer:unique" json:"dependent_files"`
	PreviousNamesLength  uint32 `idl:"name:cchPreviousNames" json:"previous_names_length"`
	PreviousNames        string `idl:"name:pszzPreviousNames;size_is:(cchPreviousNames);pointer:unique" json:"previous_names"`
}

DriverInfo4 structure represents RPC_DRIVER_INFO_4 RPC structure.

The RPC_DRIVER_INFO_4 structure provides information about a printer driver.<24>

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.

func (*DriverInfo4) MarshalNDR

func (o *DriverInfo4) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo4) UnmarshalNDR

func (o *DriverInfo4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverInfo6

type DriverInfo6 struct {
	VersionCount         uint32         `idl:"name:cVersion" json:"version_count"`
	Name                 string         `idl:"name:pName;string" json:"name"`
	Environment          string         `idl:"name:pEnvironment;string" json:"environment"`
	DriverPath           string         `idl:"name:pDriverPath;string" json:"driver_path"`
	DataFile             string         `idl:"name:pDataFile;string" json:"data_file"`
	ConfigFile           string         `idl:"name:pConfigFile;string" json:"config_file"`
	HelpFile             string         `idl:"name:pHelpFile;string" json:"help_file"`
	MonitorName          string         `idl:"name:pMonitorName;string" json:"monitor_name"`
	DefaultDataType      string         `idl:"name:pDefaultDataType;string" json:"default_data_type"`
	DependentFilesLength uint32         `idl:"name:cchDependentFiles" json:"dependent_files_length"`
	DependentFiles       string         `idl:"name:pDependentFiles;size_is:(cchDependentFiles);pointer:unique" json:"dependent_files"`
	PreviousNamesLength  uint32         `idl:"name:cchPreviousNames" json:"previous_names_length"`
	PreviousNames        string         `idl:"name:pszzPreviousNames;size_is:(cchPreviousNames);pointer:unique" json:"previous_names"`
	DriverDate           *dtyp.Filetime `idl:"name:ftDriverDate" json:"driver_date"`
	DriverVersion        uint64         `idl:"name:dwlDriverVersion" json:"driver_version"`
	ManufacturerName     string         `idl:"name:pMfgName;string" json:"manufacturer_name"`
	OEMURL               string         `idl:"name:pOEMUrl;string" json:"oem_url"`
	HardwareID           string         `idl:"name:pHardwareID;string" json:"hardware_id"`
	Provider             string         `idl:"name:pProvider;string" json:"provider"`
}

DriverInfo6 structure represents RPC_DRIVER_INFO_6 RPC structure.

The RPC_DRIVER_INFO_6 structure provides extended printer driver information.<25>

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.

func (*DriverInfo6) MarshalNDR

func (o *DriverInfo6) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo6) UnmarshalNDR

func (o *DriverInfo6) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DriverInfo8

type DriverInfo8 struct {
	VersionCount         uint32         `idl:"name:cVersion" json:"version_count"`
	Name                 string         `idl:"name:pName;string" json:"name"`
	Environment          string         `idl:"name:pEnvironment;string" json:"environment"`
	DriverPath           string         `idl:"name:pDriverPath;string" json:"driver_path"`
	DataFile             string         `idl:"name:pDataFile;string" json:"data_file"`
	ConfigFile           string         `idl:"name:pConfigFile;string" json:"config_file"`
	HelpFile             string         `idl:"name:pHelpFile;string" json:"help_file"`
	MonitorName          string         `idl:"name:pMonitorName;string" json:"monitor_name"`
	DefaultDataType      string         `idl:"name:pDefaultDataType;string" json:"default_data_type"`
	DependentFilesLength uint32         `idl:"name:cchDependentFiles" json:"dependent_files_length"`
	DependentFiles       string         `idl:"name:pDependentFiles;size_is:(cchDependentFiles);pointer:unique" json:"dependent_files"`
	PreviousNamesLength  uint32         `idl:"name:cchPreviousNames" json:"previous_names_length"`
	PreviousNames        string         `idl:"name:pszzPreviousNames;size_is:(cchPreviousNames);pointer:unique" json:"previous_names"`
	DriverDate           *dtyp.Filetime `idl:"name:ftDriverDate" json:"driver_date"`
	DriverVersion        uint64         `idl:"name:dwlDriverVersion" json:"driver_version"`
	ManufacturerName     string         `idl:"name:pMfgName;string" json:"manufacturer_name"`
	OEMURL               string         `idl:"name:pOEMUrl;string" json:"oem_url"`
	HardwareID           string         `idl:"name:pHardwareID;string" json:"hardware_id"`
	Provider             string         `idl:"name:pProvider;string" json:"provider"`
	// pPrintProcessor: A pointer to a string that specifies the print processor for this
	// printer. For rules governing print processor names, see section 2.2.4.11.
	PrintProcessor string `idl:"name:pPrintProcessor;string" json:"print_processor"`
	// pVendorSetup: An optional pointer to a string that specifies the name of the vendor
	// setup file used for hardware vendor-provided custom setup.
	VendorSetup string `idl:"name:pVendorSetup;string" json:"vendor_setup"`
	// cchColorProfiles: The number of characters in the multisz structure pointed to by
	// the pszzColorProfiles member.
	ColorProfilesLength uint32 `idl:"name:cchColorProfiles" json:"color_profiles_length"`
	// pszzColorProfiles: An optional pointer to a multisz structure that contains the names
	// of all color profile files for this driver.
	ColorProfiles string `idl:"name:pszzColorProfiles;size_is:(cchColorProfiles);pointer:unique" json:"color_profiles"`
	// pInfPath: An optional pointer to a string that specifies the path to the installation
	// configuration file in the driver store that identifies the printer driver for installation.<27>
	InfPath string `idl:"name:pInfPath;string" json:"inf_path"`
	// dwPrinterDriverAttributes: A bit field that specifies attributes of the printer driver.
	//
	// When used as an input parameter in a call to RpcAddPrinterDriverEx, this value MUST
	// be zero. When used as output in the custom-marshaled form of this structure (_DRIVER_INFO_8),
	// this bit field is defined as one or more of the bit flags described in the following
	// table.
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                  NAME/VALUE                   |                                   DESCRIPTION                                    |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_PACKAGE_AWARE 0x00000001       | The printer driver is part of a driver package.<28>                              |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_XPS 0x00000002                 | The printer driver supports the Microsoft XML Paper Specification (XPS) format   |
	//	|                                               | described in [MSFT-XMLPAPER].<29>                                                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_SANDBOX_ENABLED 0x00000004     | The printer driver is compatible with printer driver isolation.<30>              |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CLASS 0x00000008               | The printer driver is a class printer driver.<31>                                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_DERIVED 0x00000010             | The printer driver is a derived printer driver.<32>                              |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_NOT_SHAREABLE 0x00000020       | Printers using the printer driver cannot be shared.<33>                          |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CATEGORY_FAX 0x00000040        | The printer driver is intended for use with fax printers.<34>                    |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CATEGORY_FILE 00x00000080      | The printer driver is intended for use with file printers.<35>                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CATEGORY_VIRTUAL 0x00000100    | The printer driver is intended for use with virtual printers.<36>                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CATEGORY_SERVICE 0x00000200    | The printer driver is intended for use with service printers.<37>                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_SOFT_RESET_REQUIRED 0x00000400 | Printers using this printer driver SHOULD use an implementation-specific         |
	//	|                                               | mechanism to reset the printer when a print job is canceled.<38>                 |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_DRIVER_CATEGORY_3D 0x00001000         | The printer driver is intended for use with 3D printers.<39>                     |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	PrinterDriverAttributes uint32 `idl:"name:dwPrinterDriverAttributes" json:"printer_driver_attributes"`
	// cchCoreDependencies: The number of characters in the multisz structure pointed to
	// by the pszzCoreDriverDependencies member.
	CoreDependenciesLength uint32 `idl:"name:cchCoreDependencies" json:"core_dependencies_length"`
	// pszzCoreDriverDependencies: An optional pointer to a multisz structure that contains
	// the names of the core dependencies as specified by the installation configuration
	// file. These names specify the core sections of the installation configuration file
	// that are required by the printer driver.<40>
	CoreDriverDependencies string `idl:"name:pszzCoreDriverDependencies;size_is:(cchCoreDependencies);pointer:unique" json:"core_driver_dependencies"`
	// ftMinInboxDriverVerDate: A FILETIME value ([MS-DTYP] section 2.3.3) that specifies
	// the minimum date version that is required in order for any core printer driver to
	// be used as a dependency as listed in the multisz structure pointed to by the pszzCoreDriverDependencies
	// member. The value of this member MUST be specified in the same format as the ftDriverDate
	// member.<41>
	MinInboxDriverVerDate *dtyp.Filetime `idl:"name:ftMinInboxDriverVerDate" json:"min_inbox_driver_ver_date"`
	// dwlMinInboxDriverVerVersion: The minimum file version that is required for any core
	// printer driver to be used as a dependency as listed in the multisz structure pointed
	// to by the pszzCoreDriverDependencies member. The value of this member MUST be specified
	// in the same format as the dwlDriverVersion member.<42>
	//
	// All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.
	MinInboxDriverVerVersion uint64 `idl:"name:dwlMinInboxDriverVerVersion" json:"min_inbox_driver_ver_version"`
}

DriverInfo8 structure represents RPC_DRIVER_INFO_8 RPC structure.

The RPC_DRIVER_INFO_8 structure specifies extended printer driver information.<26>

func (*DriverInfo8) MarshalNDR

func (o *DriverInfo8) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*DriverInfo8) UnmarshalNDR

func (o *DriverInfo8) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EndDocPrinterRequest

type EndDocPrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

EndDocPrinterRequest structure represents the RpcEndDocPrinter operation request

func (*EndDocPrinterRequest) MarshalNDR

func (o *EndDocPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EndDocPrinterRequest) UnmarshalNDR

func (o *EndDocPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EndDocPrinterResponse

type EndDocPrinterResponse struct {
	// Return: The RpcEndDocPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EndDocPrinterResponse structure represents the RpcEndDocPrinter operation response

func (*EndDocPrinterResponse) MarshalNDR

func (o *EndDocPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EndDocPrinterResponse) UnmarshalNDR

func (o *EndDocPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EndPagePrinterRequest

type EndPagePrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

EndPagePrinterRequest structure represents the RpcEndPagePrinter operation request

func (*EndPagePrinterRequest) MarshalNDR

func (o *EndPagePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EndPagePrinterRequest) UnmarshalNDR

func (o *EndPagePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EndPagePrinterResponse

type EndPagePrinterResponse struct {
	// Return: The RpcEndPagePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EndPagePrinterResponse structure represents the RpcEndPagePrinter operation response

func (*EndPagePrinterResponse) MarshalNDR

func (o *EndPagePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EndPagePrinterResponse) UnmarshalNDR

func (o *EndPagePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumFormsRequest

type EnumFormsRequest struct {
	// hPrinter: A handle to a printer object or server object that MUST have been opened
	// by using the RpcAddPrinter, RpcAddPrinterEx, RpcOpenPrinter, or RpcOpenPrinterEx
	// methods.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// Level: This value refers to the level of form information structure, as follows.
	//
	//	+------------+--------------------------------------------------+
	//	|            |                                                  |
	//	|   VALUE    |                   DESCRIPTION                    |
	//	|            |                                                  |
	//	+------------+--------------------------------------------------+
	//	+------------+--------------------------------------------------+
	//	| 0x00000001 | Corresponds to _FORM_INFO_1 (section 2.2.2.5.1). |
	//	+------------+--------------------------------------------------+
	//	| 0x00000002 | Corresponds to _FORM_INFO_2 (section 2.2.2.5.2). |
	//	+------------+--------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pForm: This parameter MAY be NULL if cbBuf equals zero; otherwise, it is a pointer
	// to the BUFFER, as specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	Form []byte `idl:"name:pForm;size_is:(cbBuf);pointer:unique" json:"form"`
	// cbBuf: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumFormsRequest structure represents the RpcEnumForms operation request

func (*EnumFormsRequest) MarshalNDR

func (o *EnumFormsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumFormsRequest) UnmarshalNDR

func (o *EnumFormsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumFormsResponse

type EnumFormsResponse struct {
	// pForm: This parameter MAY be NULL if cbBuf equals zero; otherwise, it is a pointer
	// to the BUFFER, as specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	Form []byte `idl:"name:pForm;size_is:(cbBuf);pointer:unique" json:"form"`
	// pcbNeeded: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumForms return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumFormsResponse structure represents the RpcEnumForms operation response

func (*EnumFormsResponse) MarshalNDR

func (o *EnumFormsResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumFormsResponse) UnmarshalNDR

func (o *EnumFormsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumJobNamedPropertiesRequest

type EnumJobNamedPropertiesRequest struct {
	// hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or
	// server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of a print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
}

EnumJobNamedPropertiesRequest structure represents the RpcEnumJobNamedProperties operation request

func (*EnumJobNamedPropertiesRequest) MarshalNDR

func (*EnumJobNamedPropertiesRequest) UnmarshalNDR

func (o *EnumJobNamedPropertiesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumJobNamedPropertiesResponse

type EnumJobNamedPropertiesResponse struct {
	// pcProperties: On successful return from this call, this parameter is a pointer to
	// the address of an array of RPC_PrintNamedProperty (section 2.2.1.14.2) structures
	// returned. This pointer MUST NOT be NULL.
	PropertiesCount uint32 `idl:"name:pcProperties" json:"properties_count"`
	// ppProperties: On successful return from this call, this parameter is a pointer to
	// the address of an array of RPC_PrintNamedProperty structures returned. This pointer
	// MUST NOT be NULL.
	Properties []*PrintNamedProperty `idl:"name:ppProperties;size_is:(, pcProperties)" json:"properties"`
	// Return: The RpcEnumJobNamedProperties return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumJobNamedPropertiesResponse structure represents the RpcEnumJobNamedProperties operation response

func (*EnumJobNamedPropertiesResponse) MarshalNDR

func (*EnumJobNamedPropertiesResponse) UnmarshalNDR

type EnumJobsRequest

type EnumJobsRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// FirstJob: The zero-based position within the print queue of the first print job to
	// enumerate.
	FirstJob uint32 `idl:"name:FirstJob" json:"first_job"`
	// NoJobs: The total number of print jobs to enumerate.
	NoJobs uint32 `idl:"name:NoJobs" json:"no_jobs"`
	// Level: The job information level.
	Level uint32 `idl:"name:Level" json:"level"`
	// pJob: A pointer to the BUFFER structure specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Job []byte `idl:"name:pJob;size_is:(cbBuf);pointer:unique" json:"job"`
	// cbBuf: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumJobsRequest structure represents the RpcEnumJobs operation request

func (*EnumJobsRequest) MarshalNDR

func (o *EnumJobsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumJobsRequest) UnmarshalNDR

func (o *EnumJobsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumJobsResponse

type EnumJobsResponse struct {
	// pJob: A pointer to the BUFFER structure specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Job []byte `idl:"name:pJob;size_is:(cbBuf);pointer:unique" json:"job"`
	// pcbNeeded: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumJobs return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumJobsResponse structure represents the RpcEnumJobs operation response

func (*EnumJobsResponse) MarshalNDR

func (o *EnumJobsResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumJobsResponse) UnmarshalNDR

func (o *EnumJobsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumMonitorsRequest

type EnumMonitorsRequest struct {
	// pName: This parameter MUST adhere to the parameter specification in Print Server
	// Name Parameters, section 3.1.4.1.4.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// Level: This value refers to the level of port monitor information structure, as follows.
	//
	//	+------------+-----------------------------------------------------+
	//	|            |                                                     |
	//	|   VALUE    |                     DESCRIPTION                     |
	//	|            |                                                     |
	//	+------------+-----------------------------------------------------+
	//	+------------+-----------------------------------------------------+
	//	| 0x00000001 | Corresponds to _MONITOR_INFO_1 (section 2.2.2.7.1). |
	//	+------------+-----------------------------------------------------+
	//	| 0x00000002 | Corresponds to _MONITOR_INFO_2 (section 2.2.2.7.2). |
	//	+------------+-----------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pMonitor: This parameter SHOULD be ignored if cbBuf equals zero; otherwise, it is
	// a pointer to the BUFFER, as specified in INFO Structures Query Parameters, section
	// 3.1.4.1.9.
	Monitor []byte `idl:"name:pMonitor;size_is:(cbBuf);pointer:unique" json:"monitor"`
	// cbBuf: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumMonitorsRequest structure represents the RpcEnumMonitors operation request

func (*EnumMonitorsRequest) MarshalNDR

func (o *EnumMonitorsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumMonitorsRequest) UnmarshalNDR

func (o *EnumMonitorsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumMonitorsResponse

type EnumMonitorsResponse struct {
	// pMonitor: This parameter SHOULD be ignored if cbBuf equals zero; otherwise, it is
	// a pointer to the BUFFER, as specified in INFO Structures Query Parameters, section
	// 3.1.4.1.9.
	Monitor []byte `idl:"name:pMonitor;size_is:(cbBuf);pointer:unique" json:"monitor"`
	// pcbNeeded: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumMonitors return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumMonitorsResponse structure represents the RpcEnumMonitors operation response

func (*EnumMonitorsResponse) MarshalNDR

func (o *EnumMonitorsResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumMonitorsResponse) UnmarshalNDR

func (o *EnumMonitorsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPerMachineConnectionsRequest

type EnumPerMachineConnectionsRequest struct {
	// pServer: A parameter specified in Print Server Name Parameters (section 3.1.4.1.4).
	Server string `idl:"name:pServer;string;pointer:unique" json:"server"`
	// pPrinterEnum: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	PrinterEnum []byte `idl:"name:pPrinterEnum;size_is:(cbBuf);pointer:unique" json:"printer_enum"`
	// cbBuf: A parameter specified in section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPerMachineConnectionsRequest structure represents the RpcEnumPerMachineConnections operation request

func (*EnumPerMachineConnectionsRequest) MarshalNDR

func (*EnumPerMachineConnectionsRequest) UnmarshalNDR

type EnumPerMachineConnectionsResponse

type EnumPerMachineConnectionsResponse struct {
	// pPrinterEnum: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	PrinterEnum []byte `idl:"name:pPrinterEnum;size_is:(cbBuf);pointer:unique" json:"printer_enum"`
	// pcbNeeded: A parameter specified in section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: A parameter specified in section 3.1.4.1.9.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPerMachineConnections return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPerMachineConnectionsResponse structure represents the RpcEnumPerMachineConnections operation response

func (*EnumPerMachineConnectionsResponse) MarshalNDR

func (*EnumPerMachineConnectionsResponse) UnmarshalNDR

type EnumPortsRequest

type EnumPortsRequest struct {
	// pName: A parameter specified in Print Server Name Parameters, section 3.1.4.1.4.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// Level: The port information level.
	//
	//	+------------+--------------------------------------------------+
	//	|            |                                                  |
	//	|   VALUE    |                   DESCRIPTION                    |
	//	|            |                                                  |
	//	+------------+--------------------------------------------------+
	//	+------------+--------------------------------------------------+
	//	| 0x00000001 | Corresponds to _PORT_INFO_1 (section 2.2.2.8.1). |
	//	+------------+--------------------------------------------------+
	//	| 0x00000002 | Corresponds to _PORT_INFO_2 (section 2.2.2.8.2). |
	//	+------------+--------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pPort: A pointer to the BUFFER, as specified in INFO Structures Query Parameters,
	// section 3.1.4.1.9.
	Port []byte `idl:"name:pPort;size_is:(cbBuf);pointer:unique" json:"port"`
	// cbBuf: A parameter specified in INFO Structures Query Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPortsRequest structure represents the RpcEnumPorts operation request

func (*EnumPortsRequest) MarshalNDR

func (o *EnumPortsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPortsRequest) UnmarshalNDR

func (o *EnumPortsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPortsResponse

type EnumPortsResponse struct {
	// pPort: A pointer to the BUFFER, as specified in INFO Structures Query Parameters,
	// section 3.1.4.1.9.
	Port []byte `idl:"name:pPort;size_is:(cbBuf);pointer:unique" json:"port"`
	// pcbNeeded: A parameter specified in INFO Structures Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: A parameter specified in INFO Structures Query Parameters.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPorts return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPortsResponse structure represents the RpcEnumPorts operation response

func (*EnumPortsResponse) MarshalNDR

func (o *EnumPortsResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPortsResponse) UnmarshalNDR

func (o *EnumPortsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrintProcessorDataTypesRequest

type EnumPrintProcessorDataTypesRequest struct {
	// pName: This parameter MUST adhere to the parameter specification in Print Server
	// Name Parameters, section 3.1.4.1.4.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pPrintProcessorName: A pointer to a string that specifies the name of the print processor
	// whose data types MUST be enumerated. For rules governing print processor names, see
	// section 2.2.4.11.
	PrintProcessorName string `idl:"name:pPrintProcessorName;string;pointer:unique" json:"print_processor_name"`
	// Level: The value of this parameter MUST be 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// pDatatypes: This parameter MAY be NULL if cbBuf equals zero; otherwise, it is a pointer
	// to BUFFER as specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	DataTypes []byte `idl:"name:pDatatypes;size_is:(cbBuf);pointer:unique" json:"data_types"`
	// cbBuf: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPrintProcessorDataTypesRequest structure represents the RpcEnumPrintProcessorDatatypes operation request

func (*EnumPrintProcessorDataTypesRequest) MarshalNDR

func (*EnumPrintProcessorDataTypesRequest) UnmarshalNDR

type EnumPrintProcessorDataTypesResponse

type EnumPrintProcessorDataTypesResponse struct {
	// pDatatypes: This parameter MAY be NULL if cbBuf equals zero; otherwise, it is a pointer
	// to BUFFER as specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	DataTypes []byte `idl:"name:pDatatypes;size_is:(cbBuf);pointer:unique" json:"data_types"`
	// pcbNeeded: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: This parameter MUST adhere to the parameter specification in INFO Structures
	// Query Parameters, section 3.1.4.1.9.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPrintProcessorDatatypes return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrintProcessorDataTypesResponse structure represents the RpcEnumPrintProcessorDatatypes operation response

func (*EnumPrintProcessorDataTypesResponse) MarshalNDR

func (*EnumPrintProcessorDataTypesResponse) UnmarshalNDR

type EnumPrintProcessorsRequest

type EnumPrintProcessorsRequest struct {
	// pName: A parameter specified in Print Server Name Parameters, section 3.1.4.1.4.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: A parameter specified in Environment Name Parameters, section 3.1.4.1.3.
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The information level. This value MUST be 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// pPrintProcessorInfo: A pointer to BUFFER as specified in INFO Structures Query Parameters,
	// section 3.1.4.1.9
	PrintProcessorInfo []byte `idl:"name:pPrintProcessorInfo;size_is:(cbBuf);pointer:unique" json:"print_processor_info"`
	// cbBuf: A parameter specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPrintProcessorsRequest structure represents the RpcEnumPrintProcessors operation request

func (*EnumPrintProcessorsRequest) MarshalNDR

func (o *EnumPrintProcessorsRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrintProcessorsRequest) UnmarshalNDR

func (o *EnumPrintProcessorsRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrintProcessorsResponse

type EnumPrintProcessorsResponse struct {
	// pPrintProcessorInfo: A pointer to BUFFER as specified in INFO Structures Query Parameters,
	// section 3.1.4.1.9
	PrintProcessorInfo []byte `idl:"name:pPrintProcessorInfo;size_is:(cbBuf);pointer:unique" json:"print_processor_info"`
	// pcbNeeded: A parameter specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: A parameter specified in INFO Structures Query Parameters, section 3.1.4.1.9.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPrintProcessors return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrintProcessorsResponse structure represents the RpcEnumPrintProcessors operation response

func (*EnumPrintProcessorsResponse) MarshalNDR

func (*EnumPrintProcessorsResponse) UnmarshalNDR

func (o *EnumPrintProcessorsResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDataExRequest

type EnumPrinterDataExRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key containing the values to enumerate.
	// A key name is an arbitrary string defined by the printer driver associated with the
	// printer object. For rules governing key names, see section 2.2.4.7.
	KeyName            string `idl:"name:pKeyName;string" json:"key_name"`
	EnumValuesInLength uint32 `idl:"name:cbEnumValuesIn" json:"enum_values_in_length"`
}

EnumPrinterDataExRequest structure represents the RpcEnumPrinterDataEx operation request

func (*EnumPrinterDataExRequest) MarshalNDR

func (o *EnumPrinterDataExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDataExRequest) UnmarshalNDR

func (o *EnumPrinterDataExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDataExResponse

type EnumPrinterDataExResponse struct {
	// pEnumValues: A pointer to BUFFER as specified in PRINTER_ENUM_VALUES Structures Query
	// Parameters (section 3.1.4.1.10).
	EnumValues          []byte `idl:"name:pEnumValues;size_is:(cbEnumValuesIn)" json:"enum_values"`
	EnumValuesOutLength uint32 `idl:"name:pcbEnumValuesOut" json:"enum_values_out_length"`
	EnumValuesLength    uint32 `idl:"name:numEnumValues" json:"enum_values_length"`
	// Return: The RpcEnumPrinterDataEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrinterDataExResponse structure represents the RpcEnumPrinterDataEx operation response

func (*EnumPrinterDataExResponse) MarshalNDR

func (o *EnumPrinterDataExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDataExResponse) UnmarshalNDR

func (o *EnumPrinterDataExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDataRequest

type EnumPrinterDataRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// dwIndex: The index of the configuration data value to retrieve. The value MUST be
	// greater than or equal to zero and less than the total number of configuration data
	// values for the printer. The client SHOULD use RpcEnumPrinterKeys to determine the
	// total number of configuration data values for the printer.
	Index             uint32 `idl:"name:dwIndex" json:"index"`
	ValueNameInLength uint32 `idl:"name:cbValueNameIn" json:"value_name_in_length"`
	DataInLength      uint32 `idl:"name:cbDataIn" json:"data_in_length"`
}

EnumPrinterDataRequest structure represents the RpcEnumPrinterData operation request

func (*EnumPrinterDataRequest) MarshalNDR

func (o *EnumPrinterDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDataRequest) UnmarshalNDR

func (o *EnumPrinterDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDataResponse

type EnumPrinterDataResponse struct {
	// pValueName: A pointer to a buffer that receives a string specifying the name of the
	// configuration data value. For rules governing value names, see section 2.2.4.18.
	ValueName          string `idl:"name:pValueName;size_is:((cbValueNameIn/2))" json:"value_name"`
	ValueNameOutLength uint32 `idl:"name:pcbValueNameOut" json:"value_name_out_length"`
	// pType: A parameter specified in Dynamically Typed Query Parameters (section 3.1.4.1.2).
	Type uint32 `idl:"name:pType" json:"type"`
	// pData: A pointer to BUFFER as specified in Dynamically Typed Query Parameters. This
	// parameter can be NULL if cbData equals zero.
	Data          []byte `idl:"name:pData;size_is:(cbDataIn)" json:"data"`
	DataOutLength uint32 `idl:"name:pcbDataOut" json:"data_out_length"`
	// Return: The RpcEnumPrinterData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrinterDataResponse structure represents the RpcEnumPrinterData operation response

func (*EnumPrinterDataResponse) MarshalNDR

func (o *EnumPrinterDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDataResponse) UnmarshalNDR

func (o *EnumPrinterDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDriversRequest

type EnumPrinterDriversRequest struct {
	// pName: Specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: Specified in Environment Name Parameters (section 3.1.4.1.3).<327>
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The driver information level.
	//
	//	+------------+----------------------------------------------------+
	//	|            |                                                    |
	//	|   VALUE    |                    DESCRIPTION                     |
	//	|            |                                                    |
	//	+------------+----------------------------------------------------+
	//	+------------+----------------------------------------------------+
	//	| 0x00000001 | Corresponds to _DRIVER_INFO_1 (section 2.2.2.4.1). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000002 | Corresponds to _DRIVER_INFO_2 (section 2.2.2.4.2). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000003 | Corresponds to _DRIVER_INFO_3 (section 2.2.2.4.3). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000004 | Corresponds to _DRIVER_INFO_4 (section 2.2.2.4.4). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000005 | Corresponds to _DRIVER_INFO_5 (section 2.2.2.4.5). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000006 | Corresponds to _DRIVER_INFO_6 (section 2.2.2.4.6). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000008 | Corresponds to _DRIVER_INFO_8 (section 2.2.2.4.8). |
	//	+------------+----------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pDrivers: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Drivers []byte `idl:"name:pDrivers;size_is:(cbBuf);pointer:unique" json:"drivers"`
	// cbBuf: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPrinterDriversRequest structure represents the RpcEnumPrinterDrivers operation request

func (*EnumPrinterDriversRequest) MarshalNDR

func (o *EnumPrinterDriversRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDriversRequest) UnmarshalNDR

func (o *EnumPrinterDriversRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterDriversResponse

type EnumPrinterDriversResponse struct {
	// pDrivers: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Drivers []byte `idl:"name:pDrivers;size_is:(cbBuf);pointer:unique" json:"drivers"`
	// pcbNeeded: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: Specified in INFO Structures Query Parameters (section 3.1.4.1.9).
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPrinterDrivers return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrinterDriversResponse structure represents the RpcEnumPrinterDrivers operation response

func (*EnumPrinterDriversResponse) MarshalNDR

func (o *EnumPrinterDriversResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterDriversResponse) UnmarshalNDR

func (o *EnumPrinterDriversResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterKeyRequest

type EnumPrinterKeyRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key containing the subkeys to
	// enumerate. A key name is an arbitrary string defined by the printer driver associated
	// with the printer object. For rules governing key names, see section 2.2.4.7.
	KeyName        string `idl:"name:pKeyName;string" json:"key_name"`
	SubkeyInLength uint32 `idl:"name:cbSubkeyIn" json:"subkey_in_length"`
}

EnumPrinterKeyRequest structure represents the RpcEnumPrinterKey operation request

func (*EnumPrinterKeyRequest) MarshalNDR

func (o *EnumPrinterKeyRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterKeyRequest) UnmarshalNDR

func (o *EnumPrinterKeyRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrinterKeyResponse

type EnumPrinterKeyResponse struct {
	// pSubkey: A pointer to BUFFER as specified in String Query Parameters (section 3.1.4.1.7).
	Subkey          string `idl:"name:pSubkey;size_is:((cbSubkeyIn/2))" json:"subkey"`
	SubkeyOutLength uint32 `idl:"name:pcbSubkeyOut" json:"subkey_out_length"`
	// Return: The RpcEnumPrinterKey return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrinterKeyResponse structure represents the RpcEnumPrinterKey operation response

func (*EnumPrinterKeyResponse) MarshalNDR

func (o *EnumPrinterKeyResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrinterKeyResponse) UnmarshalNDR

func (o *EnumPrinterKeyResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrintersRequest

type EnumPrintersRequest struct {
	// Flags: The types of print objects that this method enumerates. The value of this
	// parameter is the result of a bitwise OR of one or more of the Printer Enumeration
	// Flags (section 2.2.3.7), with the following additional specifications:
	//
	// * *PRINTER_ENUM_NAME:* If the Name parameter is NULL or points to an empty string,
	// and the Level parameter value is 0x00000001, available print providers SHOULD be
	// enumerated. If this flag is not set, the server SHOULD ignore the Name parameter.
	//
	// * *PRINTER_ENUM_REMOTE:* The Level parameter value MUST be 0x00000001.
	//
	// * *PRINTER_ENUM_NETWORK:* The Level parameter value MUST be 0x00000001.
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// Name: NULL or a server name parameter as specified in Printer Server Name Parameters
	// (section 3.1.4.1.4). If the Flags parameter contains the PRINTER_ENUM_NAME flag,
	// the Name parameter value controls where the server SHOULD enumerate. The server SHOULD
	// enumerate locally if the Name parameter is either NULL or an empty string; otherwise,
	// remotely on the server whose name is specified by the Name string.
	Name string `idl:"name:Name;string;pointer:unique" json:"name"`
	// Level: The level of printer information structure, as follows.
	//
	//	+------------+------------------------------------------+
	//	|            |                                          |
	//	|   VALUE    |               DESCRIPTION                |
	//	|            |                                          |
	//	+------------+------------------------------------------+
	//	+------------+------------------------------------------+
	//	| 0x00000000 | _PRINTER_INFO_STRESS (section 2.2.2.9.1) |
	//	+------------+------------------------------------------+
	//	| 0x00000001 | _PRINTER_INFO_1 (section 2.2.2.9.2)      |
	//	+------------+------------------------------------------+
	//	| 0x00000002 | _PRINTER_INFO_2 (section 2.2.2.9.3)      |
	//	+------------+------------------------------------------+
	//	| 0x00000004 | _PRINTER_INFO_4 (section 2.2.2.9.5)      |
	//	+------------+------------------------------------------+
	//	| 0x00000005 | _PRINTER_INFO_5 (section 2.2.2.9.6)      |
	//	+------------+------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pPrinterEnum: A pointer to a BUFFER defined in INFO Structures Query Parameters (section
	// 3.1.4.1.9).
	PrinterEnum []byte `idl:"name:pPrinterEnum;size_is:(cbBuf);pointer:unique" json:"printer_enum"`
	// cbBuf: An input parameter that adheres to the specification in INFO Structures Query
	// Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

EnumPrintersRequest structure represents the RpcEnumPrinters operation request

func (*EnumPrintersRequest) MarshalNDR

func (o *EnumPrintersRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrintersRequest) UnmarshalNDR

func (o *EnumPrintersRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumPrintersResponse

type EnumPrintersResponse struct {
	// pPrinterEnum: A pointer to a BUFFER defined in INFO Structures Query Parameters (section
	// 3.1.4.1.9).
	PrinterEnum []byte `idl:"name:pPrinterEnum;size_is:(cbBuf);pointer:unique" json:"printer_enum"`
	// pcbNeeded: An output parameter that adheres to the specification in INFO Structures
	// Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pcReturned: An output parameter that adheres to the specification in INFO Structures
	// Query Parameters.
	ReturnedCount uint32 `idl:"name:pcReturned" json:"returned_count"`
	// Return: The RpcEnumPrinters return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumPrintersResponse structure represents the RpcEnumPrinters operation response

func (*EnumPrintersResponse) MarshalNDR

func (o *EnumPrintersResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumPrintersResponse) UnmarshalNDR

func (o *EnumPrintersResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type FindClosePrinterChangeNotificationRequest

type FindClosePrinterChangeNotificationRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

FindClosePrinterChangeNotificationRequest structure represents the RpcFindClosePrinterChangeNotification operation request

func (*FindClosePrinterChangeNotificationRequest) MarshalNDR

func (*FindClosePrinterChangeNotificationRequest) UnmarshalNDR

type FindClosePrinterChangeNotificationResponse

type FindClosePrinterChangeNotificationResponse struct {
	// Return: The RpcFindClosePrinterChangeNotification return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

FindClosePrinterChangeNotificationResponse structure represents the RpcFindClosePrinterChangeNotification operation response

func (*FindClosePrinterChangeNotificationResponse) MarshalNDR

func (*FindClosePrinterChangeNotificationResponse) UnmarshalNDR

type FlushPrinterRequest

type FlushPrinterRequest struct {
	// hPrinter: A handle to a port object that was opened by RpcOpenPrinter (section 3.1.4.2.2)
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pBuf: A pointer to the array of bytes containing the data to be written to the printer.
	// This parameter can be NULL if the value of the cbBuf parameter is zero.
	Buffer []byte `idl:"name:pBuf;size_is:(cbBuf)" json:"buffer"`
	// cbBuf: The size, in bytes, of the array pointed to by the pBuf parameter.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// cSleep: The time, in milliseconds, to delay the I/O line to the printer port. A value
	// of zero indicates no delay.
	SleepCount uint32 `idl:"name:cSleep" json:"sleep_count"`
}

FlushPrinterRequest structure represents the RpcFlushPrinter operation request

func (*FlushPrinterRequest) MarshalNDR

func (o *FlushPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FlushPrinterRequest) UnmarshalNDR

func (o *FlushPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type FlushPrinterResponse

type FlushPrinterResponse struct {
	// pcWritten: A pointer to a variable that receives the number of bytes of data that
	// were written to the printer.
	WrittenCount uint32 `idl:"name:pcWritten" json:"written_count"`
	// Return: The RpcFlushPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

FlushPrinterResponse structure represents the RpcFlushPrinter operation response

func (*FlushPrinterResponse) MarshalNDR

func (o *FlushPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FlushPrinterResponse) UnmarshalNDR

func (o *FlushPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type FormContainer

type FormContainer struct {
	// Level: The information level of the FormInfo data. The value of this member MUST
	// be 0x00000001 or 0x00000002.
	Level uint32 `idl:"name:Level" json:"level"`
	// FormInfo: This member MUST define printer form properties, using an information structure
	// that MUST correspond to the value of the Level member.
	FormInfo *FormContainer_FormInfo `idl:"name:FormInfo;switch_is:Level" json:"form_info"`
}

FormContainer structure represents FORM_CONTAINER RPC structure.

The FORM_CONTAINER structure provides information about printer forms, using FORM_INFO structures. The FormInfo member specifies the structure that defines the printer form properties.

func (*FormContainer) MarshalNDR

func (o *FormContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FormContainer) UnmarshalNDR

func (o *FormContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FormContainer_FormInfo

type FormContainer_FormInfo struct {
	// Types that are assignable to Value
	//
	// *FormContainer_FormInfo_FormInfo1
	// *FormContainer_FormInfo_FormInfo2
	Value is_FormContainer_FormInfo `json:"value"`
}

FormContainer_FormInfo structure represents FORM_CONTAINER union anonymous member.

The FORM_CONTAINER structure provides information about printer forms, using FORM_INFO structures. The FormInfo member specifies the structure that defines the printer form properties.

func (*FormContainer_FormInfo) GetValue

func (o *FormContainer_FormInfo) GetValue() any

func (*FormContainer_FormInfo) MarshalUnionNDR

func (o *FormContainer_FormInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*FormContainer_FormInfo) NDRSwitchValue

func (o *FormContainer_FormInfo) NDRSwitchValue(sw uint32) uint32

func (*FormContainer_FormInfo) UnmarshalUnionNDR

func (o *FormContainer_FormInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type FormContainer_FormInfo_FormInfo1

type FormContainer_FormInfo_FormInfo1 struct {
	// pFormInfo1: If the Level member is 0x00000001, this member is a pointer to a FORM_INFO_1
	// structure, which provides information about a printer form. For details, see section
	// 2.2.1.6.1.
	FormInfo1 *FormInfo1 `idl:"name:pFormInfo1" json:"form_info1"`
}

FormContainer_FormInfo_FormInfo1 structure represents FormContainer_FormInfo RPC union arm.

It has following labels: 1

func (*FormContainer_FormInfo_FormInfo1) MarshalNDR

func (*FormContainer_FormInfo_FormInfo1) UnmarshalNDR

type FormContainer_FormInfo_FormInfo2

type FormContainer_FormInfo_FormInfo2 struct {
	// pFormInfo2: If the Level member is 0x00000002, this member is a pointer to a RPC_FORM_INFO_2
	// structure, which provides information about a printer form. For details, see section
	// 2.2.1.6.2.
	FormInfo2 *FormInfo2 `idl:"name:pFormInfo2" json:"form_info2"`
}

FormContainer_FormInfo_FormInfo2 structure represents FormContainer_FormInfo RPC union arm.

It has following labels: 2

func (*FormContainer_FormInfo_FormInfo2) MarshalNDR

func (*FormContainer_FormInfo_FormInfo2) UnmarshalNDR

type FormInfo1

type FormInfo1 struct {
	Flags         uint32     `idl:"name:Flags" json:"flags"`
	Name          string     `idl:"name:pName;string" json:"name"`
	Size          *Size      `idl:"name:Size" json:"size"`
	ImageableArea *Rectangle `idl:"name:ImageableArea" json:"imageable_area"`
}

FormInfo1 structure represents FORM_INFO_1 RPC structure.

The FORM_INFO_1 structure provides information about a printer form.

All members not defined in this section are specified in sections 2.2.1.3.2 and 2.2.1.3.

The _FORM_INFO_1 structure specifies printer media information. It is a custom-marshaled form of the _FORM_INFO_1 (section 2.2.1.6.1) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*FormInfo1) MarshalNDR

func (o *FormInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FormInfo1) UnmarshalNDR

func (o *FormInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FormInfo2

type FormInfo2 struct {
	Flags         uint32     `idl:"name:Flags" json:"flags"`
	Name          string     `idl:"name:pName;string;pointer:unique" json:"name"`
	Size          *Size      `idl:"name:Size" json:"size"`
	ImageableArea *Rectangle `idl:"name:ImageableArea" json:"imageable_area"`
	// pKeyword: This member MUST be set to NULL by the client if the value of the Flags
	// member is set to FORM_BUILTIN; otherwise, this member is a pointer to a string that
	// specifies a unique, localization-independent identifier for this form.<44>
	Keyword string `idl:"name:pKeyword;string;pointer:unique" json:"keyword"`
	// StringType: A value that specifies how a form's display name is passed. The value
	// of this member MUST be a value from the following table.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|                            |                                                                                  |
	//	|         NAME/VALUE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| STRING_NONE 0x00000001     | Use the default display name, a string that is pointed to by the pName member.   |
	//	|                            | No localized display name exists.                                                |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| STRING_MUIDLL 0x00000002   | Load the form name from the library of string resources that is identified by    |
	//	|                            | the pMuiDll member. The dwResourceId member specifies the ID of the form name    |
	//	|                            | string in that library.                                                          |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| STRING_LANGPAIR 0x00000004 | Use the form name, a string that is pointed to by the pDisplayName member, and   |
	//	|                            | the language that is identified by the wLangID member.                           |
	//	+----------------------------+----------------------------------------------------------------------------------+
	StringType uint32 `idl:"name:StringType" json:"string_type"`
	// pMuiDll: A NULL pointer and MUST be ignored on receipt if StringType is not equal
	// to STRING_MUIDLL, or it is a pointer to a string that contains the name of a library
	// of string resources. String resources can be localized into multiple languages.<45>
	MUIDLL string `idl:"name:pMuiDll;string;pointer:unique" json:"mui_dll"`
	// dwResourceId: The value of this member SHOULD be set to zero when sent and ignored
	// on receipt if the value of the StringType member is not equal to STRING_MUIDLL; otherwise,
	// the value of this member specifies the string resource ID of the form name in the
	// library that is identified by the string that is pointed to by the pMuiDll member.
	ResourceID uint32 `idl:"name:dwResourceId" json:"resource_id"`
	// pDisplayName: A NULL pointer and ignored on receipt if StringType is not equal to
	// STRING_LANGPAIR; otherwise, this member is a pointer to a string that specifies the
	// form name.
	DisplayName string `idl:"name:pDisplayName;string;pointer:unique" json:"display_name"`
	// wLangID: The value of this member SHOULD be set to zero when sent and ignored on
	// receipt if StringType is not equal to STRING_LANGPAIR; otherwise, the value of this
	// member MUST be the Language Identifier of the pDisplayName member [MS-LCID].
	//
	// All members not defined in this section are specified in sections 2.2.1.3.2 and 2.2.1.3.
	LangID uint16 `idl:"name:wLangID" json:"lang_id"`
}

FormInfo2 structure represents RPC_FORM_INFO_2 RPC structure.

The RPC_FORM_INFO_2 structure provides information about a printer form that includes its origin, dimensions, the dimensions of its printable area, and its display name.<43>

func (*FormInfo2) MarshalNDR

func (o *FormInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FormInfo2) UnmarshalNDR

func (o *FormInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type GDI

GDI structure represents GDI_HANDLE RPC structure.

func (*GDI) ContextHandle

func (o *GDI) ContextHandle() *dcetypes.ContextHandle

func (*GDI) MarshalNDR

func (o *GDI) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GDI) UnmarshalNDR

func (o *GDI) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type GetCorePrinterDriversRequest

type GetCorePrinterDriversRequest struct {
	// pszServer: A STRING_HANDLE (section 2.2.1.1.7) for a server object. This parameter
	// MUST adhere to the specification in Print Server Name Parameters (section 3.1.4.1.4).
	Server string `idl:"name:pszServer;string;pointer:unique" json:"server"`
	// pszEnvironment: A pointer to a string that specifies the environment name for which
	// the core printer driver information is returned. For rules governing environment
	// names and product behaviors, see section 2.2.4.4.
	Environment string `idl:"name:pszEnvironment;string" json:"environment"`
	// cchCoreDrivers: The size, in bytes, of the buffer that is referenced by the pszzCoreDriverDependencies
	// parameter.
	CoreDriversLength uint32 `idl:"name:cchCoreDrivers" json:"core_drivers_length"`
	// pszzCoreDriverDependencies: A pointer to a multisz that contains a list of IDs of
	// the core printer drivers to be retrieved.<348>
	//
	// *
	//
	// Call RpcGetPrinterDriver (section 3.1.4.4.3 ( 00d91852-785d-42e4-a774-b1d96361b0ce
	// ) ) with a Level parameter value of 0x00000008.
	//
	// *
	//
	// A pointer to a _DRIVER_INFO_8 custom-marshaled structure (section 2.2.2.4.8 ( f9b749d6-08fc-4820-8d7b-fe0ee33e42c5
	// ) ) is returned in the pDriver parameter.
	//
	// *
	//
	// In the _DRIVER_INFO_8 structure, the *szzCoreDependenciesOffset* member contains
	// an offset to a multisz that contains the list of IDs.
	CoreDriverDependencies string `idl:"name:pszzCoreDriverDependencies;size_is:(cchCoreDrivers)" json:"core_driver_dependencies"`
	// cCorePrinterDrivers: The count of CORE_PRINTER_DRIVER (section 2.2.2.13) structures
	// that are contained in the buffer that is pointed to by the pCorePrinterDrivers parameter.
	// It MUST equal the number of IDs that are specified in the multisz that is pointed
	// to by the pszzCoreDriverDependencies parameter.
	CorePrinterDriversCount uint32 `idl:"name:cCorePrinterDrivers" json:"core_printer_drivers_count"`
}

GetCorePrinterDriversRequest structure represents the RpcGetCorePrinterDrivers operation request

func (*GetCorePrinterDriversRequest) MarshalNDR

func (*GetCorePrinterDriversRequest) UnmarshalNDR

func (o *GetCorePrinterDriversRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetCorePrinterDriversResponse

type GetCorePrinterDriversResponse struct {
	// pCorePrinterDrivers: A pointer to a buffer that receives an array of CORE_PRINTER_DRIVER
	// structures.
	CorePrinterDrivers []*CorePrinterDriver `idl:"name:pCorePrinterDrivers;size_is:(cCorePrinterDrivers)" json:"core_printer_drivers"`
	// Return: The RpcGetCorePrinterDrivers return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetCorePrinterDriversResponse structure represents the RpcGetCorePrinterDrivers operation response

func (*GetCorePrinterDriversResponse) MarshalNDR

func (*GetCorePrinterDriversResponse) UnmarshalNDR

func (o *GetCorePrinterDriversResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetFormRequest

type GetFormRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pFormName: A pointer to a string that specifies the form name for which data is required.
	// For rules governing form names, see section 2.2.4.5.
	FormName string `idl:"name:pFormName;string" json:"form_name"`
	// Level: The form information level.
	//
	//	+------------+--------------------------------------------------+
	//	|            |                                                  |
	//	|   VALUE    |                   DESCRIPTION                    |
	//	|            |                                                  |
	//	+------------+--------------------------------------------------+
	//	+------------+--------------------------------------------------+
	//	| 0x00000001 | Corresponds to _FORM_INFO_1 (section 2.2.2.5.1). |
	//	+------------+--------------------------------------------------+
	//	| 0x00000002 | Corresponds to _FORM_INFO_2 (section 2.2.2.5.2). |
	//	+------------+--------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pForm: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Form []byte `idl:"name:pForm;size_is:(cbBuf);pointer:unique" json:"form"`
	// cbBuf: Specified in INFO Structures Query Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetFormRequest structure represents the RpcGetForm operation request

func (*GetFormRequest) MarshalNDR

func (o *GetFormRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetFormRequest) UnmarshalNDR

func (o *GetFormRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetFormResponse

type GetFormResponse struct {
	// pForm: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Form []byte `idl:"name:pForm;size_is:(cbBuf);pointer:unique" json:"form"`
	// pcbNeeded: Specified in INFO Structures Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetForm return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetFormResponse structure represents the RpcGetForm operation response

func (*GetFormResponse) MarshalNDR

func (o *GetFormResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetFormResponse) UnmarshalNDR

func (o *GetFormResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetJobAttributesRequest

type GetJobAttributesRequest struct {
	Printer            *Printer `idl:"name:hPrinter" json:"printer"`
	JobID              uint32   `idl:"name:jobId" json:"job_id"`
	AttributeNameCount uint32   `idl:"name:attributeNameCount" json:"attribute_name_count"`
	AttributeNames     []string `idl:"name:attributeNames;size_is:(attributeNameCount);string" json:"attribute_names"`
}

GetJobAttributesRequest structure represents the RpcIppGetJobAttributes operation request

func (*GetJobAttributesRequest) MarshalNDR

func (o *GetJobAttributesRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetJobAttributesRequest) UnmarshalNDR

func (o *GetJobAttributesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetJobAttributesResponse

type GetJobAttributesResponse struct {
	ResponseBufferSize uint32 `idl:"name:ippResponseBufferSize;pointer:ref" json:"response_buffer_size"`
	ResponseBuffer     []byte `idl:"name:ippResponseBuffer;size_is:(, ippResponseBufferSize);pointer:ref" json:"response_buffer"`
	// Return: The RpcIppGetJobAttributes return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetJobAttributesResponse structure represents the RpcIppGetJobAttributes operation response

func (*GetJobAttributesResponse) MarshalNDR

func (o *GetJobAttributesResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetJobAttributesResponse) UnmarshalNDR

func (o *GetJobAttributesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetJobNamedPropertyValueRequest

type GetJobNamedPropertyValueRequest struct {
	// hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or
	// server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of a print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// pszName: A pointer to a string that specifies the Job Named Property to be queried.
	// This pointer MUST NOT be NULL.
	Name string `idl:"name:pszName;string" json:"name"`
}

GetJobNamedPropertyValueRequest structure represents the RpcGetJobNamedPropertyValue operation request

func (*GetJobNamedPropertyValueRequest) MarshalNDR

func (*GetJobNamedPropertyValueRequest) UnmarshalNDR

type GetJobNamedPropertyValueResponse

type GetJobNamedPropertyValueResponse struct {
	// pValue: A pointer to an RPC_PrintPropertyValue (section 2.2.1.14.1) structure that
	// on return from this call contains the value of the Job Named Property specified by
	// the pszName argument.
	Value *PrintPropertyValue `idl:"name:pValue" json:"value"`
	// Return: The RpcGetJobNamedPropertyValue return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetJobNamedPropertyValueResponse structure represents the RpcGetJobNamedPropertyValue operation response

func (*GetJobNamedPropertyValueResponse) MarshalNDR

func (*GetJobNamedPropertyValueResponse) UnmarshalNDR

type GetJobRequest

type GetJobRequest struct {
	// hPrinter: A handle to a printer object, job object, or server object that was opened
	// by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter
	// (section 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of the print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// Level: The job information level. This value MUST be 0x00000001, 0x00000002, 0x00000003,
	// or 0x00000004.
	Level uint32 `idl:"name:Level" json:"level"`
	// pJob: A pointer to BUFFER as specified in INFO Structures Query Parameters (section
	// 3.1.4.1.9).
	Job []byte `idl:"name:pJob;size_is:(cbBuf);pointer:unique" json:"job"`
	// cbBuf: A parameter specified in section 3.1.4.1.9.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetJobRequest structure represents the RpcGetJob operation request

func (*GetJobRequest) MarshalNDR

func (o *GetJobRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetJobRequest) UnmarshalNDR

func (o *GetJobRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetJobResponse

type GetJobResponse struct {
	// pJob: A pointer to BUFFER as specified in INFO Structures Query Parameters (section
	// 3.1.4.1.9).
	Job []byte `idl:"name:pJob;size_is:(cbBuf);pointer:unique" json:"job"`
	// pcbNeeded: A parameter specified in section 3.1.4.1.9.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetJob return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetJobResponse structure represents the RpcGetJob operation response

func (*GetJobResponse) MarshalNDR

func (o *GetJobResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetJobResponse) UnmarshalNDR

func (o *GetJobResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrintProcessorDirectoryRequest

type GetPrintProcessorDirectoryRequest struct {
	// pName: This parameter MUST adhere to the parameter specification in Print Server
	// Name Parameters, section 3.1.4.1.4.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: This parameter MUST adhere to the parameter specification in Environment
	// Name Parameters, section 3.1.4.1.3.
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The value of this parameter MUST be 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// pPrintProcessorDirectory: This parameter MAY be NULL if cbBuf equals zero; otherwise,
	// it is a pointer to BUFFER as specified in String Query Parameters, section 3.1.4.1.7.
	PrintProcessorDirectory []byte `idl:"name:pPrintProcessorDirectory;size_is:(cbBuf);pointer:unique" json:"print_processor_directory"`
	// cbBuf: This parameter MUST adhere to the parameter specification in String Query
	// Parameters, section 3.1.4.1.7.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetPrintProcessorDirectoryRequest structure represents the RpcGetPrintProcessorDirectory operation request

func (*GetPrintProcessorDirectoryRequest) MarshalNDR

func (*GetPrintProcessorDirectoryRequest) UnmarshalNDR

type GetPrintProcessorDirectoryResponse

type GetPrintProcessorDirectoryResponse struct {
	// pPrintProcessorDirectory: This parameter MAY be NULL if cbBuf equals zero; otherwise,
	// it is a pointer to BUFFER as specified in String Query Parameters, section 3.1.4.1.7.
	PrintProcessorDirectory []byte `idl:"name:pPrintProcessorDirectory;size_is:(cbBuf);pointer:unique" json:"print_processor_directory"`
	// pcbNeeded: This parameter MUST adhere to the parameter specification in String Query
	// Parameters, section 3.1.4.1.7.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrintProcessorDirectory return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrintProcessorDirectoryResponse structure represents the RpcGetPrintProcessorDirectory operation response

func (*GetPrintProcessorDirectoryResponse) MarshalNDR

func (*GetPrintProcessorDirectoryResponse) UnmarshalNDR

type GetPrinterAttributesRequest

type GetPrinterAttributesRequest struct {
	Printer            *Printer `idl:"name:hPrinter" json:"printer"`
	AttributeNameCount uint32   `idl:"name:attributeNameCount" json:"attribute_name_count"`
	AttributeNames     []string `idl:"name:attributeNames;size_is:(attributeNameCount);string" json:"attribute_names"`
}

GetPrinterAttributesRequest structure represents the RpcIppGetPrinterAttributes operation request

func (*GetPrinterAttributesRequest) MarshalNDR

func (*GetPrinterAttributesRequest) UnmarshalNDR

func (o *GetPrinterAttributesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterAttributesResponse

type GetPrinterAttributesResponse struct {
	ResponseBufferSize uint32 `idl:"name:ippResponseBufferSize;pointer:ref" json:"response_buffer_size"`
	ResponseBuffer     []byte `idl:"name:ippResponseBuffer;size_is:(, ippResponseBufferSize);pointer:ref" json:"response_buffer"`
	// Return: The RpcIppGetPrinterAttributes return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetPrinterAttributesResponse structure represents the RpcIppGetPrinterAttributes operation response

func (*GetPrinterAttributesResponse) MarshalNDR

func (*GetPrinterAttributesResponse) UnmarshalNDR

func (o *GetPrinterAttributesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDataExRequest

type GetPrinterDataExRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key under which the value is to
	// be queried. A key name is an arbitrary string defined by the printer driver associated
	// with the printer object. For rules governing key names, see section 2.2.4.7.
	KeyName string `idl:"name:pKeyName;string" json:"key_name"`
	// pValueName: A pointer to a string that identifies the data to get. For rules governing
	// value names, see section 2.2.4.18.
	//
	// For print servers, the value name is one of the predefined strings listed in Server
	// Handle Key Values (section 2.2.3.10).
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
	// nSize: A parameter specified in Dynamically Typed Query Parameters.
	Size uint32 `idl:"name:nSize" json:"size"`
}

GetPrinterDataExRequest structure represents the RpcGetPrinterDataEx operation request

func (*GetPrinterDataExRequest) MarshalNDR

func (o *GetPrinterDataExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDataExRequest) UnmarshalNDR

func (o *GetPrinterDataExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDataExResponse

type GetPrinterDataExResponse struct {
	// pType: A parameter specified in Dynamically Typed Query Parameters (section 3.1.4.1.2).
	Type uint32 `idl:"name:pType" json:"type"`
	// pData: A pointer to BUFFER, as specified in Dynamically Typed Query Parameters. This
	// parameter can be NULL if nSize equals zero
	Data []byte `idl:"name:pData;size_is:(nSize)" json:"data"`
	// pcbNeeded: A parameter specified in Dynamically Typed Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrinterDataEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterDataExResponse structure represents the RpcGetPrinterDataEx operation response

func (*GetPrinterDataExResponse) MarshalNDR

func (o *GetPrinterDataExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDataExResponse) UnmarshalNDR

func (o *GetPrinterDataExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDataRequest

type GetPrinterDataRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pValueName: A pointer to a string that identifies the configuration data to get.
	// For rules governing value names, see section 2.2.4.18.
	//
	// For print servers, the value name is one of the predefined strings listed in Server
	// Handle Key Values (section 2.2.3.10).
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
	// nSize: A parameter specified in Dynamically Typed Query Parameters.
	Size uint32 `idl:"name:nSize" json:"size"`
}

GetPrinterDataRequest structure represents the RpcGetPrinterData operation request

func (*GetPrinterDataRequest) MarshalNDR

func (o *GetPrinterDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDataRequest) UnmarshalNDR

func (o *GetPrinterDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDataResponse

type GetPrinterDataResponse struct {
	// pType: A parameter specified in Dynamically Typed Query Parameters (section 3.1.4.1.2).
	Type uint32 `idl:"name:pType" json:"type"`
	// pData: A pointer to BUFFER as specified in Dynamically Typed Query Parameters.
	Data []byte `idl:"name:pData;size_is:(nSize)" json:"data"`
	// pcbNeeded: A parameter specified in Dynamically Typed Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrinterData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterDataResponse structure represents the RpcGetPrinterData operation response

func (*GetPrinterDataResponse) MarshalNDR

func (o *GetPrinterDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDataResponse) UnmarshalNDR

func (o *GetPrinterDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDriver2Request

type GetPrinterDriver2Request struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pEnvironment: A parameter specified in Environment Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The driver information level.
	//
	//	+------------+------------------------------------------------------+
	//	|            |                                                      |
	//	|   VALUE    |                     DESCRIPTION                      |
	//	|            |                                                      |
	//	+------------+------------------------------------------------------+
	//	+------------+------------------------------------------------------+
	//	| 0x00000001 | Corresponds to _DRIVER_INFO_1 (section 2.2.2.4.1).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000002 | Corresponds to _DRIVER_INFO_2 (section 2.2.2.4.2).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000003 | Corresponds to _DRIVER_INFO_3 (section 2.2.2.4.3).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000004 | Corresponds to _DRIVER_INFO_4 (section 2.2.2.4.4).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000005 | Corresponds to _DRIVER_INFO_5 (section 2.2.2.4.5).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000006 | Corresponds to _DRIVER_INFO_6 (section 2.2.2.4.6).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000008 | Corresponds to _DRIVER_INFO_8 (section 2.2.2.4.8).   |
	//	+------------+------------------------------------------------------+
	//	| 0x00000065 | Corresponds to _DRIVER_INFO_101 (section 2.2.2.4.9). |
	//	+------------+------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pDriver: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Driver []byte `idl:"name:pDriver;size_is:(cbBuf);pointer:unique" json:"driver"`
	// cbBuf: A parameter specified in INFO Structures Query Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// dwClientMajorVersion: The implementation-specific major printer driver version of
	// the client operating system.<335>
	ClientMajorVersion uint32 `idl:"name:dwClientMajorVersion" json:"client_major_version"`
	// dwClientMinorVersion: The implementation-specific minor printer driver version of
	// the client operating system.<336>
	ClientMinorVersion uint32 `idl:"name:dwClientMinorVersion" json:"client_minor_version"`
}

GetPrinterDriver2Request structure represents the RpcGetPrinterDriver2 operation request

func (*GetPrinterDriver2Request) MarshalNDR

func (o *GetPrinterDriver2Request) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDriver2Request) UnmarshalNDR

func (o *GetPrinterDriver2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDriver2Response

type GetPrinterDriver2Response struct {
	// pDriver: A pointer to the BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Driver []byte `idl:"name:pDriver;size_is:(cbBuf);pointer:unique" json:"driver"`
	// pcbNeeded: A parameter specified in INFO Structures Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// pdwServerMaxVersion: A pointer to a DWORD that receives the implementation-specific
	// major version that the operating system supports for that printer driver.
	ServerMaxVersion uint32 `idl:"name:pdwServerMaxVersion" json:"server_max_version"`
	// pdwServerMinVersion: A pointer to a DWORD that receives the implementation-specific
	// minimum version that the operating system supports for that printer driver.<337>
	ServerMinVersion uint32 `idl:"name:pdwServerMinVersion" json:"server_min_version"`
	// Return: The RpcGetPrinterDriver2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterDriver2Response structure represents the RpcGetPrinterDriver2 operation response

func (*GetPrinterDriver2Response) MarshalNDR

func (o *GetPrinterDriver2Response) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDriver2Response) UnmarshalNDR

func (o *GetPrinterDriver2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDriverDirectoryRequest

type GetPrinterDriverDirectoryRequest struct {
	// pName: Specified in Print Server Name Parameters (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pEnvironment: Specified in Environment Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The value 0x00000001.
	Level uint32 `idl:"name:Level" json:"level"`
	// pDriverDirectory: An optional pointer to BUFFER, as specified in String Query Parameters
	// (section 3.1.4.1.7). If cbBuf is zero, this parameter SHOULD be NULL.
	DriverDirectory []byte `idl:"name:pDriverDirectory;size_is:(cbBuf);pointer:unique" json:"driver_directory"`
	// cbBuf: See String Query Parameters (section 3.1.4.1.7).
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetPrinterDriverDirectoryRequest structure represents the RpcGetPrinterDriverDirectory operation request

func (*GetPrinterDriverDirectoryRequest) MarshalNDR

func (*GetPrinterDriverDirectoryRequest) UnmarshalNDR

type GetPrinterDriverDirectoryResponse

type GetPrinterDriverDirectoryResponse struct {
	// pDriverDirectory: An optional pointer to BUFFER, as specified in String Query Parameters
	// (section 3.1.4.1.7). If cbBuf is zero, this parameter SHOULD be NULL.
	DriverDirectory []byte `idl:"name:pDriverDirectory;size_is:(cbBuf);pointer:unique" json:"driver_directory"`
	// pcbNeeded: See String Query Parameters (section 3.1.4.1.7).
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrinterDriverDirectory return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterDriverDirectoryResponse structure represents the RpcGetPrinterDriverDirectory operation response

func (*GetPrinterDriverDirectoryResponse) MarshalNDR

func (*GetPrinterDriverDirectoryResponse) UnmarshalNDR

type GetPrinterDriverPackagePathRequest

type GetPrinterDriverPackagePathRequest struct {
	// pszServer: A STRING_HANDLE (section 2.2.1.1.7) for a server object. This parameter
	// MUST adhere to the specification in Print Server Name Parameters (section 3.1.4.1.4).
	Server string `idl:"name:pszServer;string;pointer:unique" json:"server"`
	// pszEnvironment: A pointer to a string that specifies the environment name for which
	// the driver package path MUST be returned. For rules governing environment names,
	// see section 2.2.4.4.
	Environment string `idl:"name:pszEnvironment;string" json:"environment"`
	// pszLanguage: An optional pointer to a string that specifies the language for which
	// the driver package path MUST<350> be returned.
	Language string `idl:"name:pszLanguage;string;pointer:unique" json:"language"`
	// pszPackageID: A pointer to a string that specifies the package name. The package
	// name MUST be obtained by calling RpcGetCorePrinterDrivers.
	PackageID string `idl:"name:pszPackageID;string" json:"package_id"`
	// pszDriverPackageCab: This parameter is a pointer to a buffer that receives a string
	// that specifies the path name of the driver package file.<351> For rules governing
	// path names, see section 2.2.4.9. pszDriverPackageCab MUST NOT be NULL unless cchDriverPackageCab
	// is zero.
	DriverPackageCab string `idl:"name:pszDriverPackageCab;size_is:(cchDriverPackageCab);pointer:unique" json:"driver_package_cab"`
	// cchDriverPackageCab: This parameter specifies the size, in characters, of the buffer
	// that is referenced by the pszDriverPackageCab parameter. The value of this parameter
	// MAY<352> be zero.
	DriverPackageCabLength uint32 `idl:"name:cchDriverPackageCab" json:"driver_package_cab_length"`
}

GetPrinterDriverPackagePathRequest structure represents the RpcGetPrinterDriverPackagePath operation request

func (*GetPrinterDriverPackagePathRequest) MarshalNDR

func (*GetPrinterDriverPackagePathRequest) UnmarshalNDR

type GetPrinterDriverPackagePathResponse

type GetPrinterDriverPackagePathResponse struct {
	// pszDriverPackageCab: This parameter is a pointer to a buffer that receives a string
	// that specifies the path name of the driver package file.<351> For rules governing
	// path names, see section 2.2.4.9. pszDriverPackageCab MUST NOT be NULL unless cchDriverPackageCab
	// is zero.
	DriverPackageCab string `idl:"name:pszDriverPackageCab;size_is:(cchDriverPackageCab);pointer:unique" json:"driver_package_cab"`
	// pcchRequiredSize: A pointer to a variable that MUST receive the required size of
	// the buffer that is pointed to by the pszDriverPackageCab parameter.
	RequiredLength uint32 `idl:"name:pcchRequiredSize" json:"required_length"`
	// Return: The RpcGetPrinterDriverPackagePath return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetPrinterDriverPackagePathResponse structure represents the RpcGetPrinterDriverPackagePath operation response

func (*GetPrinterDriverPackagePathResponse) MarshalNDR

func (*GetPrinterDriverPackagePathResponse) UnmarshalNDR

type GetPrinterDriverRequest

type GetPrinterDriverRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pEnvironment: A parameter specified in Environment Name Parameters (section 3.1.4.1.3).
	Environment string `idl:"name:pEnvironment;string;pointer:unique" json:"environment"`
	// Level: The driver information level.
	//
	//	+------------+----------------------------------------------------+
	//	|            |                                                    |
	//	|   VALUE    |                    DESCRIPTION                     |
	//	|            |                                                    |
	//	+------------+----------------------------------------------------+
	//	+------------+----------------------------------------------------+
	//	| 0x00000001 | Corresponds to _DRIVER_INFO_1 (section 2.2.2.4.1). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000002 | Corresponds to _DRIVER_INFO_2 (section 2.2.2.4.2). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000003 | Corresponds to _DRIVER_INFO_3 (section 2.2.2.4.3). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000004 | Corresponds to _DRIVER_INFO_4 (section 2.2.2.4.4). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000006 | Corresponds to _DRIVER_INFO_6 (section 2.2.2.4.6). |
	//	+------------+----------------------------------------------------+
	//	| 0x00000008 | Corresponds to _DRIVER_INFO_8 (section 2.2.2.4.8). |
	//	+------------+----------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pDriver: An optional pointer to BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Driver []byte `idl:"name:pDriver;size_is:(cbBuf);pointer:unique" json:"driver"`
	// cbBuf: Specified in INFO Structures Query Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetPrinterDriverRequest structure represents the RpcGetPrinterDriver operation request

func (*GetPrinterDriverRequest) MarshalNDR

func (o *GetPrinterDriverRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDriverRequest) UnmarshalNDR

func (o *GetPrinterDriverRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterDriverResponse

type GetPrinterDriverResponse struct {
	// pDriver: An optional pointer to BUFFER, as specified in INFO Structures Query Parameters
	// (section 3.1.4.1.9).
	Driver []byte `idl:"name:pDriver;size_is:(cbBuf);pointer:unique" json:"driver"`
	// pcbNeeded: Specified in INFO Structures Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrinterDriver return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterDriverResponse structure represents the RpcGetPrinterDriver operation response

func (*GetPrinterDriverResponse) MarshalNDR

func (o *GetPrinterDriverResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterDriverResponse) UnmarshalNDR

func (o *GetPrinterDriverResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterRequest

type GetPrinterRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14). This value MAY be a handle to a print server
	// object.<277>
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// Level: The level of printer information structure, as follows.
	//
	//	+------------+-------------------------------------------------------------------------------+
	//	|            |                                                                               |
	//	|   VALUE    |                                  DESCRIPTION                                  |
	//	|            |                                                                               |
	//	+------------+-------------------------------------------------------------------------------+
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000000 | Corresponds to _PRINTER_INFO_STRESS (section 2.2.2.9.1).                      |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000001 | Corresponds to _PRINTER_INFO_1 (section 2.2.2.9.2).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000002 | Corresponds to _PRINTER_INFO_2 (section 2.2.2.9.3).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000003 | Corresponds to _PRINTER_INFO_3 (section 2.2.2.9.4).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000004 | Corresponds to _PRINTER_INFO_4 (section 2.2.2.9.5).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000005 | Corresponds to _PRINTER_INFO_5 (section 2.2.2.9.6).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000006 | Corresponds to _PRINTER_INFO_6 (section 2.2.2.9.7).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000007 | Corresponds to _PRINTER_INFO_7 (section 2.2.2.9.8).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000008 | Corresponds to _PRINTER_INFO_8 (section 2.2.2.9.9).                           |
	//	+------------+-------------------------------------------------------------------------------+
	//	| 0x00000009 | Not valid remotely; the server MUST respond by returning ERROR_NOT_SUPPORTED. |
	//	+------------+-------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pPrinter: A pointer to a BUFFER (INFO Structures Query Parameters (section 3.1.4.1.9)).
	PrinterBuffer []byte `idl:"name:pPrinter;size_is:(cbBuf);pointer:unique" json:"printer_buffer"`
	// cbBuf: A parameter specified in INFO Structures Query Parameters.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

GetPrinterRequest structure represents the RpcGetPrinter operation request

func (*GetPrinterRequest) MarshalNDR

func (o *GetPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterRequest) UnmarshalNDR

func (o *GetPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetPrinterResponse

type GetPrinterResponse struct {
	// pPrinter: A pointer to a BUFFER (INFO Structures Query Parameters (section 3.1.4.1.9)).
	PrinterBuffer []byte `idl:"name:pPrinter;size_is:(cbBuf);pointer:unique" json:"printer_buffer"`
	// pcbNeeded: A parameter specified in INFO Structures Query Parameters.
	NeededLength uint32 `idl:"name:pcbNeeded" json:"needed_length"`
	// Return: The RpcGetPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetPrinterResponse structure represents the RpcGetPrinter operation response

func (*GetPrinterResponse) MarshalNDR

func (o *GetPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetPrinterResponse) UnmarshalNDR

func (o *GetPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type JobContainer

type JobContainer struct {
	// Level: Specifies the information level of the JobInfo data. The value of this member
	// MUST be in the range 0x00000001 to 0x00000004 inclusive.
	Level uint32 `idl:"name:Level" json:"level"`
	// JobInfo: Defines print job properties, using an information structure that corresponds
	// to the value of the Level member.
	JobInfo *JobContainer_JobInfo `idl:"name:JobInfo;switch_is:Level" json:"job_info"`
}

JobContainer structure represents JOB_CONTAINER RPC structure.

The JOB_CONTAINER structure provides information about print jobs, using JOB_INFO structures. The JobInfo member specifies the structure that defines the print job properties.

func (*JobContainer) MarshalNDR

func (o *JobContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*JobContainer) UnmarshalNDR

func (o *JobContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobContainer_JobInfo

type JobContainer_JobInfo struct {
	// Types that are assignable to Value
	//
	// *JobContainer_JobInfo_Level1
	// *JobContainer_JobInfo_Level2
	// *JobContainer_JobInfo_Level3
	// *JobContainer_JobInfo_Level4
	Value is_JobContainer_JobInfo `json:"value"`
}

JobContainer_JobInfo structure represents JOB_CONTAINER union anonymous member.

The JOB_CONTAINER structure provides information about print jobs, using JOB_INFO structures. The JobInfo member specifies the structure that defines the print job properties.

func (*JobContainer_JobInfo) GetValue

func (o *JobContainer_JobInfo) GetValue() any

func (*JobContainer_JobInfo) MarshalUnionNDR

func (o *JobContainer_JobInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*JobContainer_JobInfo) NDRSwitchValue

func (o *JobContainer_JobInfo) NDRSwitchValue(sw uint32) uint32

func (*JobContainer_JobInfo) UnmarshalUnionNDR

func (o *JobContainer_JobInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type JobContainer_JobInfo_Level1

type JobContainer_JobInfo_Level1 struct {
	// Level1: If the Level member is 0x00000001, this member is a pointer to a JOB_INFO_1
	// structure that provides print job information. For details, see section 2.2.1.7.1.
	Level1 *JobInfo1 `idl:"name:Level1" json:"level1"`
}

JobContainer_JobInfo_Level1 structure represents JobContainer_JobInfo RPC union arm.

It has following labels: 1

func (*JobContainer_JobInfo_Level1) MarshalNDR

func (*JobContainer_JobInfo_Level1) UnmarshalNDR

func (o *JobContainer_JobInfo_Level1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobContainer_JobInfo_Level2

type JobContainer_JobInfo_Level2 struct {
	// Level2: If the Level member is 0x00000002, this member is a pointer to a JOB_INFO_2
	// structure that provides print job information. For details, see section 2.2.1.7.2.
	Level2 *JobInfo2 `idl:"name:Level2" json:"level2"`
}

JobContainer_JobInfo_Level2 structure represents JobContainer_JobInfo RPC union arm.

It has following labels: 2

func (*JobContainer_JobInfo_Level2) MarshalNDR

func (*JobContainer_JobInfo_Level2) UnmarshalNDR

func (o *JobContainer_JobInfo_Level2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobContainer_JobInfo_Level3

type JobContainer_JobInfo_Level3 struct {
	// Level3: If the Level member is 0x00000003, this member is a pointer to a JOB_INFO_3
	// structure that provides print job information. For details, see section 2.2.1.7.3.
	Level3 *JobInfo3 `idl:"name:Level3" json:"level3"`
}

JobContainer_JobInfo_Level3 structure represents JobContainer_JobInfo RPC union arm.

It has following labels: 3

func (*JobContainer_JobInfo_Level3) MarshalNDR

func (*JobContainer_JobInfo_Level3) UnmarshalNDR

func (o *JobContainer_JobInfo_Level3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobContainer_JobInfo_Level4

type JobContainer_JobInfo_Level4 struct {
	// Level4: If the Level member is 0x00000004, this member is a pointer to a JOB_INFO_4
	// structure that provides print job information. For details, see section 2.2.1.7.4.
	Level4 *JobInfo4 `idl:"name:Level4" json:"level4"`
}

JobContainer_JobInfo_Level4 structure represents JobContainer_JobInfo RPC union arm.

It has following labels: 4

func (*JobContainer_JobInfo_Level4) MarshalNDR

func (*JobContainer_JobInfo_Level4) UnmarshalNDR

func (o *JobContainer_JobInfo_Level4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobInfo1

type JobInfo1 struct {
	JobID        uint32           `idl:"name:JobId" json:"job_id"`
	PrinterName  string           `idl:"name:pPrinterName;string" json:"printer_name"`
	MachineName  string           `idl:"name:pMachineName;string" json:"machine_name"`
	UserName     string           `idl:"name:pUserName;string" json:"user_name"`
	Document     string           `idl:"name:pDocument;string" json:"document"`
	DataType     string           `idl:"name:pDatatype;string" json:"data_type"`
	StatusString string           `idl:"name:__pStatus;string" json:"status_string"`
	Status       uint32           `idl:"name:Status" json:"status"`
	Priority     uint32           `idl:"name:Priority" json:"priority"`
	Position     uint32           `idl:"name:Position" json:"position"`
	TotalPages   uint32           `idl:"name:TotalPages" json:"total_pages"`
	PagesPrinted uint32           `idl:"name:PagesPrinted" json:"pages_printed"`
	Submitted    *dtyp.SystemTime `idl:"name:Submitted" json:"submitted"`
}

JobInfo1 structure represents JOB_INFO_1 RPC structure.

The _JOB_INFO_1 structure specifies print job information. It is a custom-marshaled form of the _JOB_INFO_1 (section 2.2.1.7.1) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The JOB_INFO_1 structure provides information about a print job.

All members not defined in this section are specified in sections 2.2.1.3.3 and 2.2.1.3.

func (*JobInfo1) MarshalNDR

func (o *JobInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*JobInfo1) UnmarshalNDR

func (o *JobInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobInfo2

type JobInfo2 struct {
	JobID              uint32           `idl:"name:JobId" json:"job_id"`
	PrinterName        string           `idl:"name:pPrinterName;string" json:"printer_name"`
	MachineName        string           `idl:"name:pMachineName;string" json:"machine_name"`
	UserName           string           `idl:"name:pUserName;string" json:"user_name"`
	Document           string           `idl:"name:pDocument;string" json:"document"`
	NotifyName         string           `idl:"name:pNotifyName;string" json:"notify_name"`
	DataType           string           `idl:"name:pDatatype;string" json:"data_type"`
	PrintProcessor     string           `idl:"name:pPrintProcessor;string" json:"print_processor"`
	Parameters         string           `idl:"name:pParameters;string" json:"parameters"`
	DriverName         string           `idl:"name:pDriverName;string" json:"driver_name"`
	DevMode            uint64           `idl:"name:pDevMode" json:"dev_mode"`
	StatusString       string           `idl:"name:__pStatus;string" json:"status_string"`
	SecurityDescriptor uint64           `idl:"name:pSecurityDescriptor" json:"security_descriptor"`
	Status             uint32           `idl:"name:Status" json:"status"`
	Priority           uint32           `idl:"name:Priority" json:"priority"`
	Position           uint32           `idl:"name:Position" json:"position"`
	StartTime          uint32           `idl:"name:StartTime" json:"start_time"`
	UntilTime          uint32           `idl:"name:UntilTime" json:"until_time"`
	TotalPages         uint32           `idl:"name:TotalPages" json:"total_pages"`
	Size               uint32           `idl:"name:Size" json:"size"`
	Submitted          *dtyp.SystemTime `idl:"name:Submitted" json:"submitted"`
	Time               uint32           `idl:"name:Time" json:"time"`
	PagesPrinted       uint32           `idl:"name:PagesPrinted" json:"pages_printed"`
}

JobInfo2 structure represents JOB_INFO_2 RPC structure.

The _JOB_INFO_2 structure specifies print job information. It is a custom-marshaled form of the _JOB_INFO_2 (section 2.2.1.7.2) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The JOB_INFO_2 structure provides information about a print job.

All members not defined in this section are specified in sections 2.2.1.3.3 and 2.2.1.3.

func (*JobInfo2) MarshalNDR

func (o *JobInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*JobInfo2) UnmarshalNDR

func (o *JobInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobInfo3

type JobInfo3 struct {
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// NextJobId: An identifier that specifies the print job in the queue following the
	// job identified by the JobId member. A value of zero indicates that there are no jobs
	// following the job identified by the JobId member.
	//
	// When used as input to RpcSetJob (section 3.1.4.3.1) to alter the order of print jobs
	// and link them together, JobId and NextJobId MUST be nonzero and SHOULD be obtained
	// through RpcEnumJobs (section 3.1.4.3.3) or RpcGetJob (section 3.1.4.3.2).
	//
	// All members not defined in this section are specified in sections 2.2.1.3.3 and 2.2.1.3.
	NextJobID uint32 `idl:"name:NextJobId" json:"next_job_id"`
	// contains filtered or unexported fields
}

JobInfo3 structure represents JOB_INFO_3 RPC structure.

The JOB_INFO_3 structure provides information about a print job.<46>

The _JOB_INFO_3 structure specifies information about the order of print jobs, and it is used to alter the order of print jobs.<118> It is a custom-marshaled form of the _JOB_INFO_3 (section 2.2.1.7.3) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*JobInfo3) MarshalNDR

func (o *JobInfo3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*JobInfo3) UnmarshalNDR

func (o *JobInfo3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type JobInfo4

type JobInfo4 struct {
	JobID              uint32           `idl:"name:JobId" json:"job_id"`
	PrinterName        string           `idl:"name:pPrinterName;string" json:"printer_name"`
	MachineName        string           `idl:"name:pMachineName;string" json:"machine_name"`
	UserName           string           `idl:"name:pUserName;string" json:"user_name"`
	Document           string           `idl:"name:pDocument;string" json:"document"`
	NotifyName         string           `idl:"name:pNotifyName;string" json:"notify_name"`
	DataType           string           `idl:"name:pDatatype;string" json:"data_type"`
	PrintProcessor     string           `idl:"name:pPrintProcessor;string" json:"print_processor"`
	Parameters         string           `idl:"name:pParameters;string" json:"parameters"`
	DriverName         string           `idl:"name:pDriverName;string" json:"driver_name"`
	DevMode            uint64           `idl:"name:pDevMode" json:"dev_mode"`
	StatusString       string           `idl:"name:__pStatus;string" json:"status_string"`
	SecurityDescriptor uint64           `idl:"name:pSecurityDescriptor" json:"security_descriptor"`
	Status             uint32           `idl:"name:Status" json:"status"`
	Priority           uint32           `idl:"name:Priority" json:"priority"`
	Position           uint32           `idl:"name:Position" json:"position"`
	StartTime          uint32           `idl:"name:StartTime" json:"start_time"`
	UntilTime          uint32           `idl:"name:UntilTime" json:"until_time"`
	TotalPages         uint32           `idl:"name:TotalPages" json:"total_pages"`
	Size               uint32           `idl:"name:Size" json:"size"`
	Submitted          *dtyp.SystemTime `idl:"name:Submitted" json:"submitted"`
	Time               uint32           `idl:"name:Time" json:"time"`
	PagesPrinted       uint32           `idl:"name:PagesPrinted" json:"pages_printed"`
	// SizeHigh: This member specifies the high-order 32 bits of a 64-bit unsigned integer
	// that specifies the size of the job, in bytes.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.3 and 2.2.1.3.
	SizeHigh int32 `idl:"name:SizeHigh" json:"size_high"`
}

JobInfo4 structure represents JOB_INFO_4 RPC structure.

The JOB_INFO_4 structure provides information about a print job.<47>

The _JOB_INFO_4 structure specifies print job information.<119> It is a custom-marshaled form of the _JOB_INFO_4 (section 2.2.1.7.4) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*JobInfo4) MarshalNDR

func (o *JobInfo4) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*JobInfo4) UnmarshalNDR

func (o *JobInfo4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type LogJobInfoForBranchOfficeRequest

type LogJobInfoForBranchOfficeRequest struct {
	Printer                      *Printer                      `idl:"name:hPrinter" json:"printer"`
	BranchOfficeJobDataContainer *BranchOfficeJobDataContainer `idl:"name:pBranchOfficeJobDataContainer;pointer:ref" json:"branch_office_job_data_container"`
}

LogJobInfoForBranchOfficeRequest structure represents the RpcLogJobInfoForBranchOffice operation request

func (*LogJobInfoForBranchOfficeRequest) MarshalNDR

func (*LogJobInfoForBranchOfficeRequest) UnmarshalNDR

type LogJobInfoForBranchOfficeResponse

type LogJobInfoForBranchOfficeResponse struct {
	// Return: The RpcLogJobInfoForBranchOffice return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

LogJobInfoForBranchOfficeResponse structure represents the RpcLogJobInfoForBranchOffice operation response

func (*LogJobInfoForBranchOfficeResponse) MarshalNDR

func (*LogJobInfoForBranchOfficeResponse) UnmarshalNDR

type MonitorContainer

type MonitorContainer struct {
	// Level: Specifies the information level of the MonitorInfo data. The value of this
	// member MUST be 0x00000001 or 0x00000002.
	Level uint32 `idl:"name:Level" json:"level"`
	// MonitorInfo: Defines port monitor properties, using an information structure that
	// corresponds to the value of the Level member.
	MonitorInfo *MonitorContainer_MonitorInfo `idl:"name:MonitorInfo;switch_is:Level" json:"monitor_info"`
}

MonitorContainer structure represents MONITOR_CONTAINER RPC structure.

The MONITOR_CONTAINER structure provides information about port monitors, using MONITOR_INFO structures. The MonitorInfo member specifies the structure that defines the port monitor properties.

func (*MonitorContainer) MarshalNDR

func (o *MonitorContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MonitorContainer) UnmarshalNDR

func (o *MonitorContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type MonitorContainer_MonitorInfo

type MonitorContainer_MonitorInfo struct {
	// Types that are assignable to Value
	//
	// *MonitorContainer_MonitorInfo_MonitorInfo1
	// *MonitorContainer_MonitorInfo_MonitorInfo2
	Value is_MonitorContainer_MonitorInfo `json:"value"`
}

MonitorContainer_MonitorInfo structure represents MONITOR_CONTAINER union anonymous member.

The MONITOR_CONTAINER structure provides information about port monitors, using MONITOR_INFO structures. The MonitorInfo member specifies the structure that defines the port monitor properties.

func (*MonitorContainer_MonitorInfo) GetValue

func (o *MonitorContainer_MonitorInfo) GetValue() any

func (*MonitorContainer_MonitorInfo) MarshalUnionNDR

func (o *MonitorContainer_MonitorInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*MonitorContainer_MonitorInfo) NDRSwitchValue

func (o *MonitorContainer_MonitorInfo) NDRSwitchValue(sw uint32) uint32

func (*MonitorContainer_MonitorInfo) UnmarshalUnionNDR

func (o *MonitorContainer_MonitorInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type MonitorContainer_MonitorInfo_MonitorInfo1

type MonitorContainer_MonitorInfo_MonitorInfo1 struct {
	// pMonitorInfo1: If the Level member is 0x00000001, this member is a pointer to a MONITOR_INFO_1
	// structure that provides information about a port monitor. For details, see section
	// 2.2.1.8.1.
	MonitorInfo1 *MonitorInfo1 `idl:"name:pMonitorInfo1" json:"monitor_info1"`
}

MonitorContainer_MonitorInfo_MonitorInfo1 structure represents MonitorContainer_MonitorInfo RPC union arm.

It has following labels: 1

func (*MonitorContainer_MonitorInfo_MonitorInfo1) MarshalNDR

func (*MonitorContainer_MonitorInfo_MonitorInfo1) UnmarshalNDR

type MonitorContainer_MonitorInfo_MonitorInfo2

type MonitorContainer_MonitorInfo_MonitorInfo2 struct {
	// pMonitorInfo2: If the Level member is 0x00000002, this member is a pointer to a MONITOR_INFO_2
	// structure that provides information about a port monitor. For details, see section
	// 2.2.1.8.2.
	MonitorInfo2 *MonitorInfo2 `idl:"name:pMonitorInfo2" json:"monitor_info2"`
}

MonitorContainer_MonitorInfo_MonitorInfo2 structure represents MonitorContainer_MonitorInfo RPC union arm.

It has following labels: 2

func (*MonitorContainer_MonitorInfo_MonitorInfo2) MarshalNDR

func (*MonitorContainer_MonitorInfo_MonitorInfo2) UnmarshalNDR

type MonitorInfo1

type MonitorInfo1 struct {
	Name string `idl:"name:pName;string" json:"name"`
}

MonitorInfo1 structure represents MONITOR_INFO_1 RPC structure.

The _MONITOR_INFO_1 structure identifies an installed port monitor. It is a custom-marshaled form of the _MONITOR_INFO_1 (section 2.2.1.8.1) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The MONITOR_INFO_1 structure provides information about a monitor.

All members not defined in this section are specified in sections 2.2.1.3.4 and 2.2.1.3.

func (*MonitorInfo1) MarshalNDR

func (o *MonitorInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MonitorInfo1) UnmarshalNDR

func (o *MonitorInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type MonitorInfo2

type MonitorInfo2 struct {
	Name string `idl:"name:pName;string" json:"name"`
	// pEnvironment: A pointer to a string that specifies the environment that the monitor
	// supports. The environment specified MUST match the print server's operating system.
	// For rules governing environment names and Windows behaviors, see section 2.2.4.4.
	Environment string `idl:"name:pEnvironment;string" json:"environment"`
	// pDLLName: A pointer to a string that specifies the name of the port monitor executable
	// object.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.4 and 2.2.1.3.
	DLLName string `idl:"name:pDLLName;string" json:"dll_name"`
}

MonitorInfo2 structure represents MONITOR_INFO_2 RPC structure.

The _MONITOR_INFO_2 structure is used to identify a port monitor. It is a custom-marshaled form of the _MONITOR_INFO_2 (section 2.2.1.8.2) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The MONITOR_INFO_2 structure provides information about a monitor.

func (*MonitorInfo2) MarshalNDR

func (o *MonitorInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MonitorInfo2) UnmarshalNDR

func (o *MonitorInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type OSType

type OSType uint16

OSType type represents OS_TYPE RPC enumeration.

The OS_TYPE enumeration specifies information about the operating system (OS) type for use with Server Handle Key Values (section 2.2.3.10).<184>

var (
	// VER_NT_WORKSTATION:  The OS is a Windows NT operating system workstation.
	OSTypeVerNTWorkstation OSType = 1
	// VER_NT_DOMAIN_CONTROLLER:  The OS is a Windows NT domain controller.
	OSTypeVerNTDomainController OSType = 2
	// VER_NT_SERVER:  The OS is a Windows NT server. A server that is also a domain controller
	// is reported as VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER.
	OSTypeVerNTServer OSType = 3
)

func (OSType) String

func (o OSType) String() string

type OpenPrinterExRequest

type OpenPrinterExRequest struct {
	// pPrinterName: A STRING_HANDLE (section 2.2.1.1.7) for a printer connection, printer
	// object, server object, job object, port object, or port monitor object. For opening
	// a server object, this parameter MUST adhere to the specification in Print Server
	// Name Parameters (section 3.1.4.1.4); for opening all other objects, it MUST adhere
	// to the specification in Printer Name Parameters (section 3.1.4.1.5).
	PrinterName string `idl:"name:pPrinterName;string;pointer:unique" json:"printer_name"`
	// pDatatype: A pointer to a string that specifies the data type to be associated with
	// the printer handle. This parameter MUST adhere to the specification in Datatype Name
	// Parameters (section 3.1.4.1.1).
	DataType string `idl:"name:pDatatype;string;pointer:unique" json:"data_type"`
	// pDevModeContainer: A pointer to a DEVMODE_CONTAINER structure. This parameter MUST
	// adhere to the specification in DEVMODE_CONTAINER Parameters (section 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
	// AccessRequired: The access level that the client requires for interacting with the
	// object to which a handle is being opened. The value of this parameter is one of those
	// specified in Access Values (section 2.2.3.1). For rules governing access values,
	// see section 2.2.4.1.
	AccessRequired uint32 `idl:"name:AccessRequired" json:"access_required"`
	// pClientInfo: A pointer to a SPLCLIENT_CONTAINER (section 2.2.1.2.14) structure. This
	// parameter MUST adhere to the specification in SPLCLIENT_CONTAINER Parameters (section
	// 3.1.4.1.8.8).
	ClientInfo *ClientContainer `idl:"name:pClientInfo" json:"client_info"`
}

OpenPrinterExRequest structure represents the RpcOpenPrinterEx operation request

func (*OpenPrinterExRequest) MarshalNDR

func (o *OpenPrinterExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenPrinterExRequest) UnmarshalNDR

func (o *OpenPrinterExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenPrinterExResponse

type OpenPrinterExResponse struct {
	// pHandle: A pointer to a PRINTER_HANDLE (section 2.2.1.1.4) that MUST receive the
	// RPC context handle [C706] to the object identified by the pPrinterName parameter.
	Handle *Printer `idl:"name:pHandle" json:"handle"`
	// Return: The RpcOpenPrinterEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenPrinterExResponse structure represents the RpcOpenPrinterEx operation response

func (*OpenPrinterExResponse) MarshalNDR

func (o *OpenPrinterExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenPrinterExResponse) UnmarshalNDR

func (o *OpenPrinterExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenPrinterRequest

type OpenPrinterRequest struct {
	// pPrinterName: A STRING_HANDLE (section 2.2.1.1.7) for a printer connection, printer
	// object, server object, job object, port object, or port monitor object. For opening
	// a server object, this parameter MUST adhere to the specification in Print Server
	// Name Parameters (section 3.1.4.1.4); for opening all other objects, it MUST adhere
	// to the specification in Printer Name Parameters (section 3.1.4.1.5).
	PrinterName string `idl:"name:pPrinterName;string;pointer:unique" json:"printer_name"`
	// pDatatype: A pointer to a string that specifies the data type to be associated with
	// the printer handle. This parameter MUST adhere to the specification in Datatype Name
	// Parameters (section 3.1.4.1.1).
	DataType string `idl:"name:pDatatype;string;pointer:unique" json:"data_type"`
	// pDevModeContainer: A pointer to a DEVMODE_CONTAINER structure. This parameter MUST
	// adhere to the specification in DEVMODE_CONTAINER Parameters (section 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
	// AccessRequired: The access level that the client requires for interacting with the
	// object to which a handle is being opened. The value of this parameter is one of those
	// specified in Access Values (section 2.2.3.1) or 0. For rules governing access values,
	// see section 2.2.4.1.
	AccessRequired uint32 `idl:"name:AccessRequired" json:"access_required"`
}

OpenPrinterRequest structure represents the RpcOpenPrinter operation request

func (*OpenPrinterRequest) MarshalNDR

func (o *OpenPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenPrinterRequest) UnmarshalNDR

func (o *OpenPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenPrinterResponse

type OpenPrinterResponse struct {
	// pHandle: A pointer to a PRINTER_HANDLE (section 2.2.1.1.4) that MUST receive the
	// RPC context handle [C706] to the object identified by the pPrinterName parameter.
	Handle *Printer `idl:"name:pHandle" json:"handle"`
	// Return: The RpcOpenPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenPrinterResponse structure represents the RpcOpenPrinter operation response

func (*OpenPrinterResponse) MarshalNDR

func (o *OpenPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenPrinterResponse) UnmarshalNDR

func (o *OpenPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PlayGDIScriptOnPrinterICRequest

type PlayGDIScriptOnPrinterICRequest struct {
	// hPrinterIC: A printer information context handle (section 2.2.1.1.2) that was returned
	// by RpcCreatePrinterIC (section 3.1.4.2.10).
	PrinterIC *GDI `idl:"name:hPrinterIC" json:"printer_ic"`
	// pIn: A pointer that SHOULD be set to NULL when sent and MUST be ignored on receipt.
	In []byte `idl:"name:pIn;size_is:(cIn)" json:"in"`
	// cIn: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
	InCount uint32 `idl:"name:cIn" json:"in_count"`
	// cOut: The size, in bytes, of the buffer pointed to by pOut.
	OutCount uint32 `idl:"name:cOut" json:"out_count"`
	// ul: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
	Ul uint32 `idl:"name:ul" json:"ul"`
}

PlayGDIScriptOnPrinterICRequest structure represents the RpcPlayGdiScriptOnPrinterIC operation request

func (*PlayGDIScriptOnPrinterICRequest) MarshalNDR

func (*PlayGDIScriptOnPrinterICRequest) UnmarshalNDR

type PlayGDIScriptOnPrinterICResponse

type PlayGDIScriptOnPrinterICResponse struct {
	// pOut: A pointer to a buffer, the size and contents of which are determined by the
	// value of the cOut parameter.
	Out []byte `idl:"name:pOut;size_is:(cOut)" json:"out"`
	// Return: The RpcPlayGdiScriptOnPrinterIC return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

PlayGDIScriptOnPrinterICResponse structure represents the RpcPlayGdiScriptOnPrinterIC operation response

func (*PlayGDIScriptOnPrinterICResponse) MarshalNDR

func (*PlayGDIScriptOnPrinterICResponse) UnmarshalNDR

type PortContainer

type PortContainer struct {
	// Level: Specifies the information level of the PortInfo data. The value of this member
	// MUST be in the range 0x00000001 to 0x00000003 inclusive, or 0xFFFFFFFF.
	Level uint32 `idl:"name:Level" json:"level"`
	// PortInfo: Defines port properties, using an information structure that corresponds
	// to the value of the Level member.
	PortInfo *PortContainer_PortInfo `idl:"name:PortInfo;switch_is:(16777215 Level &)" json:"port_info"`
}

PortContainer structure represents PORT_CONTAINER RPC structure.

The PORT_CONTAINER structure provides information about printer ports, using PORT_INFO structures.<4> The PortInfo member specifies the structure that defines the port properties.

func (*PortContainer) MarshalNDR

func (o *PortContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortContainer) UnmarshalNDR

func (o *PortContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PortContainer_PortInfo

type PortContainer_PortInfo struct {
	// Types that are assignable to Value
	//
	// *PortContainer_PortInfo_PortInfo1
	// *PortContainer_PortInfo_PortInfo2
	// *PortContainer_PortInfo_PortInfo3
	// *PortContainer_PortInfo_PortInfo255
	Value is_PortContainer_PortInfo `json:"value"`
}

PortContainer_PortInfo structure represents PORT_CONTAINER union anonymous member.

The PORT_CONTAINER structure provides information about printer ports, using PORT_INFO structures.<4> The PortInfo member specifies the structure that defines the port properties.

func (*PortContainer_PortInfo) GetValue

func (o *PortContainer_PortInfo) GetValue() any

func (*PortContainer_PortInfo) MarshalUnionNDR

func (o *PortContainer_PortInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*PortContainer_PortInfo) NDRSwitchValue

func (o *PortContainer_PortInfo) NDRSwitchValue(sw uint32) uint32

func (*PortContainer_PortInfo) UnmarshalUnionNDR

func (o *PortContainer_PortInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type PortContainer_PortInfo_PortInfo1

type PortContainer_PortInfo_PortInfo1 struct {
	// pPortInfo1: If the Level member is 0x00000001, this member is a pointer to a PORT_INFO_1
	// structure that provides information about the printer port. For details, see section
	// 2.2.1.9.1.
	PortInfo1 *PortInfo1 `idl:"name:pPortInfo1" json:"port_info1"`
}

PortContainer_PortInfo_PortInfo1 structure represents PortContainer_PortInfo RPC union arm.

It has following labels: 1

func (*PortContainer_PortInfo_PortInfo1) MarshalNDR

func (*PortContainer_PortInfo_PortInfo1) UnmarshalNDR

type PortContainer_PortInfo_PortInfo2

type PortContainer_PortInfo_PortInfo2 struct {
	// pPortInfo2: If the Level member is 0x00000002, this member is a pointer to a PORT_INFO_2
	// structure that provides information about the printer port. For details, see section
	// 2.2.1.9.2.
	PortInfo2 *PortInfo2 `idl:"name:pPortInfo2" json:"port_info2"`
}

PortContainer_PortInfo_PortInfo2 structure represents PortContainer_PortInfo RPC union arm.

It has following labels: 2

func (*PortContainer_PortInfo_PortInfo2) MarshalNDR

func (*PortContainer_PortInfo_PortInfo2) UnmarshalNDR

type PortContainer_PortInfo_PortInfo255

type PortContainer_PortInfo_PortInfo255 struct {
	// pPortInfoFF: If the Level member is 0xFFFFFFFF, this member is a pointer to a PORT_INFO_FF
	// structure that provides information about the printer port. For details, see section
	// 2.2.1.9.4.
	PortInfo255 *PortInfo255 `idl:"name:pPortInfoFF" json:"port_info255"`
}

PortContainer_PortInfo_PortInfo255 structure represents PortContainer_PortInfo RPC union arm.

It has following labels: 16777215

func (*PortContainer_PortInfo_PortInfo255) MarshalNDR

func (*PortContainer_PortInfo_PortInfo255) UnmarshalNDR

type PortContainer_PortInfo_PortInfo3

type PortContainer_PortInfo_PortInfo3 struct {
	// pPortInfo3: If the Level member is 0x00000003, this member is a pointer to a PORT_INFO_3
	// structure that provides information about the printer port. For details, see section
	// 2.2.1.9.3.
	PortInfo3 *PortInfo3 `idl:"name:pPortInfo3" json:"port_info3"`
}

PortContainer_PortInfo_PortInfo3 structure represents PortContainer_PortInfo RPC union arm.

It has following labels: 3

func (*PortContainer_PortInfo_PortInfo3) MarshalNDR

func (*PortContainer_PortInfo_PortInfo3) UnmarshalNDR

type PortInfo1

type PortInfo1 struct {
	PortName string `idl:"name:pPortName;string" json:"port_name"`
}

PortInfo1 structure represents PORT_INFO_1 RPC structure.

The _PORT_INFO_1 structure specifies information about a printer port. It is a custom-marshaled form of the _PORT_INFO_1 (section 2.2.1.9.1) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The PORT_INFO_1 structure provides information about a port.

All members not defined in this section are specified in sections 2.2.1.3.5 and 2.2.1.3.

func (*PortInfo1) MarshalNDR

func (o *PortInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortInfo1) UnmarshalNDR

func (o *PortInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PortInfo2

type PortInfo2 struct {
	PortName string `idl:"name:pPortName;string" json:"port_name"`
	// pMonitorName: A pointer to a string that specifies an installed port monitor. For
	// rules governing port monitor names, see section 2.2.4.8.
	MonitorName string `idl:"name:pMonitorName;string" json:"monitor_name"`
	// pDescription: An optional pointer to a string that specifies additional implementation-specific
	// information about the printer port.<48>
	Description string `idl:"name:pDescription;string" json:"description"`
	// fPortType: A bit field that specifies attributes of the printer port. These flags
	// can be combined to specify multiple attributes.
	//
	//	+-----------------------------------+--------------------------------------------------+
	//	|                                   |                                                  |
	//	|            NAME/VALUE             |                   DESCRIPTION                    |
	//	|                                   |                                                  |
	//	+-----------------------------------+--------------------------------------------------+
	//	+-----------------------------------+--------------------------------------------------+
	//	| PORT_TYPE_WRITE 0x00000001        | The port can be written to.                      |
	//	+-----------------------------------+--------------------------------------------------+
	//	| PORT_TYPE_READ 0x00000002         | The port can be read from.                       |
	//	+-----------------------------------+--------------------------------------------------+
	//	| PORT_TYPE_REDIRECTED 0x00000004   | The port is a Terminal Services redirected port. |
	//	+-----------------------------------+--------------------------------------------------+
	//	| PORT_TYPE_NET_ATTACHED 0x00000008 | The port is a network TCP/IP port.               |
	//	+-----------------------------------+--------------------------------------------------+
	//
	// All members not defined in this section are specified in sections 2.2.1.3.5 and 2.2.1.3.
	PortType uint32 `idl:"name:fPortType" json:"port_type"`
	// contains filtered or unexported fields
}

PortInfo2 structure represents PORT_INFO_2 RPC structure.

The PORT_INFO_2 structure provides information about a port.

The _PORT_INFO_2 structure specifies information about a printer port. It is a custom-marshaled form of the _PORT_INFO_2 (section 2.2.1.9.2) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PortInfo2) MarshalNDR

func (o *PortInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortInfo2) UnmarshalNDR

func (o *PortInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PortInfo255

type PortInfo255 struct {
	PortName string `idl:"name:pPortName;string" json:"port_name"`
	// cbMonitorData: A value that SHOULD be set to zero when sent and MUST be ignored on
	// receipt.
	MonitorDataLength uint32 `idl:"name:cbMonitorData" json:"monitor_data_length"`
	// pMonitorData: A pointer that SHOULD be set to NULL when sent and MUST be ignored
	// on receipt.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.5 and 2.2.1.3.
	MonitorData uint8 `idl:"name:pMonitorData" json:"monitor_data"`
}

PortInfo255 structure represents PORT_INFO_FF RPC structure.

The PORT_INFO_FF structure is used to communicate port information to a local port monitor.<50>

func (*PortInfo255) MarshalNDR

func (o *PortInfo255) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortInfo255) UnmarshalNDR

func (o *PortInfo255) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PortInfo3

type PortInfo3 struct {
	// dwStatus: The new port status. This value MUST be one of the following.
	//
	//	+------------------------------------------+-----------------------------------------------------+
	//	|                                          |                                                     |
	//	|                NAME/VALUE                |                     DESCRIPTION                     |
	//	|                                          |                                                     |
	//	+------------------------------------------+-----------------------------------------------------+
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_CLEAR 0x00000000             | Clears the printer port status.                     |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_OFFLINE 0x00000001           | The port’s printer is offline.                      |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_PAPER_JAM 0x00000002         | The port’s printer has a paper jam.                 |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_PAPER_OUT 0x00000003         | The port’s printer is out of paper.                 |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_OUTPUT_BIN_FULL 0x00000004   | The port’s printer's output bin is full.            |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_PAPER_PROBLEM 0x00000005     | The port’s printer has a paper problem.             |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_NO_TONER 0x00000006          | The port’s printer is out of toner.                 |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_DOOR_OPEN 0x00000007         | The door of the port’s printer is open.             |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_USER_INTERVENTION 0x00000008 | The port’s printer requires user intervention.      |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_OUT_OF_MEMORY 0x00000009     | The port’s printer is out of memory.                |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_TONER_LOW 0x0000000A         | The port’s printer is low on toner.                 |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_WARMING_UP 0x0000000B        | The port’s printer is warming up.                   |
	//	+------------------------------------------+-----------------------------------------------------+
	//	| PORT_STATUS_POWER_SAVE 0x0000000C        | The port’s printer is in a power-conservation mode. |
	//	+------------------------------------------+-----------------------------------------------------+
	Status uint32 `idl:"name:dwStatus" json:"status"`
	// pszStatus: An optional pointer to a string that specifies a status description.
	StatusString string `idl:"name:pszStatus;string" json:"status_string"`
	// dwSeverity: The severity of the port status value. This value MUST be one of the
	// following.
	//
	//	+-------------------------------------+-------------------------------------------+
	//	|                                     |                                           |
	//	|             NAME/VALUE              |                DESCRIPTION                |
	//	|                                     |                                           |
	//	+-------------------------------------+-------------------------------------------+
	//	+-------------------------------------+-------------------------------------------+
	//	| PORT_STATUS_TYPE_ERROR 0x00000001   | The port status value indicates an error. |
	//	+-------------------------------------+-------------------------------------------+
	//	| PORT_STATUS_TYPE_WARNING 0x00000002 | The port status value is a warning.       |
	//	+-------------------------------------+-------------------------------------------+
	//	| PORT_STATUS_TYPE_INFO 0x00000003    | The port status value is informational.   |
	//	+-------------------------------------+-------------------------------------------+
	//
	// All members not defined in this section are specified in sections 2.2.1.3.5 and 2.2.1.3.
	Severity uint32 `idl:"name:dwSeverity" json:"severity"`
}

PortInfo3 structure represents PORT_INFO_3 RPC structure.

The PORT_INFO_3 structure provides information about a port.<49>

func (*PortInfo3) MarshalNDR

func (o *PortInfo3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortInfo3) UnmarshalNDR

func (o *PortInfo3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PortVarContainer

type PortVarContainer struct {
	// cbMonitorData: The size, in bytes, of the buffer that is pointed to by the pMonitorData
	// member.
	MonitorDataLength uint32 `idl:"name:cbMonitorData" json:"monitor_data_length"`
	// pMonitorData: An optional pointer to a block of data that is passed to the port monitor.
	MonitorData []byte `idl:"name:pMonitorData;size_is:(cbMonitorData);pointer:unique" json:"monitor_data"`
}

PortVarContainer structure represents PORT_VAR_CONTAINER RPC structure.

The PORT_VAR_CONTAINER structure provides information for supported printer port monitors.<5>

func (*PortVarContainer) MarshalNDR

func (o *PortVarContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PortVarContainer) UnmarshalNDR

func (o *PortVarContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrintNamedProperty

type PrintNamedProperty struct {
	// propertyName: A pointer to a string containing the name of the property.
	PropertyName string `idl:"name:propertyName;string" json:"property_name"`
	// propertyValue: An RPC_PrintPropertyValue structure (section 2.2.1.14.1) containing
	// the value of the property.
	PropertyValue *PrintPropertyValue `idl:"name:propertyValue" json:"property_value"`
}

PrintNamedProperty structure represents RPC_PrintNamedProperty RPC structure.

The RPC_PrintNamedProperty structure specifies a Job Named Property (section 3.1.1).<81>

func (*PrintNamedProperty) MarshalNDR

func (o *PrintNamedProperty) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrintNamedProperty) UnmarshalNDR

func (o *PrintNamedProperty) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrintPropertyType

type PrintPropertyType uint16

PrintPropertyType type represents RPC_EPrintPropertyType RPC enumeration.

The RPC_EPrintPropertyType enumeration specifies the type of the value contained by a Job Named Property (section 3.1.1).<82>

var (
	// kRpcPropertyTypeString: The property value is a string.
	PrintPropertyTypeString PrintPropertyType = 1
	// kRpcPropertyTypeInt32: The property value is a signed 32-bit integer.
	PrintPropertyTypeInt32 PrintPropertyType = 2
	// kRpcPropertyTypeInt64: The property value is a signed 64-bit integer.
	PrintPropertyTypeInt64 PrintPropertyType = 3
	// kRpcPropertyTypeByte: The property value is a byte.
	PrintPropertyTypeByte PrintPropertyType = 4
	// kRpcPropertyTypeBuffer: The property value consists of an array of bytes contained
	// in a buffer.
	PrintPropertyTypeBuffer PrintPropertyType = 5
)

func (PrintPropertyType) String

func (o PrintPropertyType) String() string

type PrintPropertyValue

type PrintPropertyValue struct {
	// ePropertyType: The type of the value. All enumeration values specified in section
	// 2.2.1.14.3 are valid.
	PropertyType PrintPropertyType         `idl:"name:ePropertyType" json:"property_type"`
	Value        *PrintPropertyValue_Value `idl:"name:value;switch_is:ePropertyType" json:"value"`
}

PrintPropertyValue structure represents RPC_PrintPropertyValue RPC structure.

The RPC_PrintPropertyValue structure specifies the value of a Job Named Property (section 3.1.1).<80>

func (*PrintPropertyValue) MarshalNDR

func (o *PrintPropertyValue) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrintPropertyValue) UnmarshalNDR

func (o *PrintPropertyValue) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrintPropertyValue_PropertyBlob

type PrintPropertyValue_PropertyBlob struct {
	// propertyBlob: An embedded structure that describes the buffer containing the property
	// value as an array of bytes. Valid only if ePropertyType is set to kRpcPropertyTypeBuffer.
	PropertyBlob *PrintPropertyValue_Value_PropertyBlob `idl:"name:propertyBlob" json:"property_blob"`
}

PrintPropertyValue_PropertyBlob structure represents PrintPropertyValue_Value RPC union arm.

It has following labels: 5

func (*PrintPropertyValue_PropertyBlob) MarshalNDR

func (*PrintPropertyValue_PropertyBlob) UnmarshalNDR

type PrintPropertyValue_PropertyByte

type PrintPropertyValue_PropertyByte struct {
	// propertyByte: The property value as a byte. Valid only if ePropertyType is set to
	// kRpcPropertyTypeByte.
	PropertyByte uint8 `idl:"name:propertyByte" json:"property_byte"`
}

PrintPropertyValue_PropertyByte structure represents PrintPropertyValue_Value RPC union arm.

It has following labels: 4

func (*PrintPropertyValue_PropertyByte) MarshalNDR

func (*PrintPropertyValue_PropertyByte) UnmarshalNDR

type PrintPropertyValue_PropertyInt32

type PrintPropertyValue_PropertyInt32 struct {
	// propertyInt32: The property value as a signed 32-bit integer. Valid only if ePropertyType
	// is set to kRpcPropertyTypeInt32.
	PropertyInt32 int32 `idl:"name:propertyInt32" json:"property_int32"`
}

PrintPropertyValue_PropertyInt32 structure represents PrintPropertyValue_Value RPC union arm.

It has following labels: 2

func (*PrintPropertyValue_PropertyInt32) MarshalNDR

func (*PrintPropertyValue_PropertyInt32) UnmarshalNDR

type PrintPropertyValue_PropertyInt64

type PrintPropertyValue_PropertyInt64 struct {
	// propertyInt64: The property value as a signed 64-bit integer. Valid only if ePropertyType
	// is set to kRpcPropertyTypeInt64.
	PropertyInt64 int64 `idl:"name:propertyInt64" json:"property_int64"`
}

PrintPropertyValue_PropertyInt64 structure represents PrintPropertyValue_Value RPC union arm.

It has following labels: 3

func (*PrintPropertyValue_PropertyInt64) MarshalNDR

func (*PrintPropertyValue_PropertyInt64) UnmarshalNDR

type PrintPropertyValue_PropertyString

type PrintPropertyValue_PropertyString struct {
	// propertyString: A pointer to a string containing the property value. Valid only if
	// ePropertyType is set to kRpcPropertyTypeString.
	PropertyString string `idl:"name:propertyString;string" json:"property_string"`
}

PrintPropertyValue_PropertyString structure represents PrintPropertyValue_Value RPC union arm.

It has following labels: 1

func (*PrintPropertyValue_PropertyString) MarshalNDR

func (*PrintPropertyValue_PropertyString) UnmarshalNDR

type PrintPropertyValue_Value

type PrintPropertyValue_Value struct {
	// Types that are assignable to Value
	//
	// *PrintPropertyValue_PropertyString
	// *PrintPropertyValue_PropertyInt32
	// *PrintPropertyValue_PropertyInt64
	// *PrintPropertyValue_PropertyByte
	// *PrintPropertyValue_PropertyBlob
	Value is_PrintPropertyValue_Value `json:"value"`
}

PrintPropertyValue_Value structure represents RPC_PrintPropertyValue union anonymous member.

The RPC_PrintPropertyValue structure specifies the value of a Job Named Property (section 3.1.1).<80>

func (*PrintPropertyValue_Value) GetValue

func (o *PrintPropertyValue_Value) GetValue() any

func (*PrintPropertyValue_Value) MarshalUnionNDR

func (o *PrintPropertyValue_Value) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*PrintPropertyValue_Value) NDRSwitchValue

func (o *PrintPropertyValue_Value) NDRSwitchValue(sw uint16) uint16

func (*PrintPropertyValue_Value) UnmarshalUnionNDR

func (o *PrintPropertyValue_Value) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type PrintPropertyValue_Value_PropertyBlob

type PrintPropertyValue_Value_PropertyBlob struct {
	// cbBuf: Member of the propertyBlob structure that specifies the length, in bytes,
	// of the property value contained in the pBuf buffer when ePropertyType is set to kRpcPropertyTypeBuffer.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pBuf: Member of the propertyBlob structure that contains a pointer to the buffer
	// containing the property value when ePropertyType is set to kRpcPropertyTypeBuffer.
	Buffer []byte `idl:"name:pBuf;size_is:(cbBuf)" json:"buffer"`
}

PrintPropertyValue_Value_PropertyBlob structure represents RPC_PrintPropertyValue structure anonymous member.

The RPC_PrintPropertyValue structure specifies the value of a Job Named Property (section 3.1.1).<80>

func (*PrintPropertyValue_Value_PropertyBlob) MarshalNDR

func (*PrintPropertyValue_Value_PropertyBlob) UnmarshalNDR

type Printer

type Printer dcetypes.ContextHandle

Printer structure represents PRINTER_HANDLE RPC structure.

func (*Printer) ContextHandle

func (o *Printer) ContextHandle() *dcetypes.ContextHandle

func (*Printer) MarshalNDR

func (o *Printer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Printer) UnmarshalNDR

func (o *Printer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterContainer

type PrinterContainer struct {
	// Level: Specifies the information level of the PrinterInfo data. The value of this
	// member MUST be in the range 0x00000000 to 0x00000009 inclusive.
	Level uint32 `idl:"name:Level" json:"level"`
	// PrinterInfo: Provides printer information using a container structure that corresponds
	// to the value specified by the Level member.
	PrinterInfo *PrinterContainer_PrinterInfo `idl:"name:PrinterInfo;switch_is:Level" json:"printer_info"`
}

PrinterContainer structure represents PRINTER_CONTAINER RPC structure.

The PRINTER_CONTAINER structure provides information about printer properties and state information, using PRINTER_INFO structures (section 2.2.1.10). The PrinterInfo member specifies the structure that defines the printer properties.

func (*PrinterContainer) MarshalNDR

func (o *PrinterContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterContainer) UnmarshalNDR

func (o *PrinterContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterContainer_PrinterInfo

type PrinterContainer_PrinterInfo struct {
	// Types that are assignable to Value
	//
	// *PrinterContainer_PrinterInfo_PrinterInfoStress
	// *PrinterContainer_PrinterInfo_PrinterInfo1
	// *PrinterContainer_PrinterInfo_PrinterInfo2
	// *PrinterContainer_PrinterInfo_PrinterInfo3
	// *PrinterContainer_PrinterInfo_PrinterInfo4
	// *PrinterContainer_PrinterInfo_PrinterInfo5
	// *PrinterContainer_PrinterInfo_PrinterInfo6
	// *PrinterContainer_PrinterInfo_PrinterInfo7
	// *PrinterContainer_PrinterInfo_PrinterInfo8
	// *PrinterContainer_PrinterInfo_PrinterInfo9
	Value is_PrinterContainer_PrinterInfo `json:"value"`
}

PrinterContainer_PrinterInfo structure represents PRINTER_CONTAINER union anonymous member.

The PRINTER_CONTAINER structure provides information about printer properties and state information, using PRINTER_INFO structures (section 2.2.1.10). The PrinterInfo member specifies the structure that defines the printer properties.

func (*PrinterContainer_PrinterInfo) GetValue

func (o *PrinterContainer_PrinterInfo) GetValue() any

func (*PrinterContainer_PrinterInfo) MarshalUnionNDR

func (o *PrinterContainer_PrinterInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*PrinterContainer_PrinterInfo) NDRSwitchValue

func (o *PrinterContainer_PrinterInfo) NDRSwitchValue(sw uint32) uint32

func (*PrinterContainer_PrinterInfo) UnmarshalUnionNDR

func (o *PrinterContainer_PrinterInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type PrinterContainer_PrinterInfo_PrinterInfo1

type PrinterContainer_PrinterInfo_PrinterInfo1 struct {
	// pPrinterInfo1: If the Level member is 0x00000001, this member is a pointer to a PRINTER_INFO_1
	// (section 2.2.1.10.2) structure, which provides printer information.
	PrinterInfo1 *PrinterInfo1 `idl:"name:pPrinterInfo1" json:"printer_info1"`
}

PrinterContainer_PrinterInfo_PrinterInfo1 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 1

func (*PrinterContainer_PrinterInfo_PrinterInfo1) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo1) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo2

type PrinterContainer_PrinterInfo_PrinterInfo2 struct {
	// pPrinterInfo2:If the Level member is 0x00000002, this member is a pointer to a PRINTER_INFO_2
	// (section 2.2.1.10.3) structure, which provides detailed printer information.
	PrinterInfo2 *PrinterInfo2 `idl:"name:pPrinterInfo2" json:"printer_info2"`
}

PrinterContainer_PrinterInfo_PrinterInfo2 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 2

func (*PrinterContainer_PrinterInfo_PrinterInfo2) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo2) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo3

type PrinterContainer_PrinterInfo_PrinterInfo3 struct {
	// pPrinterInfo3: If the Level member is 0x00000003, this member is a pointer to a PRINTER_INFO_3
	// (section 2.2.1.10.4) structure, which provides printer security information.
	PrinterInfo3 *PrinterInfo3 `idl:"name:pPrinterInfo3" json:"printer_info3"`
}

PrinterContainer_PrinterInfo_PrinterInfo3 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 3

func (*PrinterContainer_PrinterInfo_PrinterInfo3) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo3) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo4

type PrinterContainer_PrinterInfo_PrinterInfo4 struct {
	// pPrinterInfo4: If the Level member is 0x00000004, this member is a pointer to a PRINTER_INFO_4
	// (section 2.2.1.10.5) structure, which provides a subset of the printer information.
	PrinterInfo4 *PrinterInfo4 `idl:"name:pPrinterInfo4" json:"printer_info4"`
}

PrinterContainer_PrinterInfo_PrinterInfo4 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 4

func (*PrinterContainer_PrinterInfo_PrinterInfo4) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo4) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo5

type PrinterContainer_PrinterInfo_PrinterInfo5 struct {
	// pPrinterInfo5: If the Level member is 0x00000005, this member is a pointer to a PRINTER_INFO_5
	// (section 2.2.1.10.6) structure, which provides information about the printer attributes.
	PrinterInfo5 *PrinterInfo5 `idl:"name:pPrinterInfo5" json:"printer_info5"`
}

PrinterContainer_PrinterInfo_PrinterInfo5 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 5

func (*PrinterContainer_PrinterInfo_PrinterInfo5) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo5) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo6

type PrinterContainer_PrinterInfo_PrinterInfo6 struct {
	// pPrinterInfo6: If the Level member is 0x00000006, this member is a pointer to a PRINTER_INFO_6
	// (section 2.2.1.10.7) structure, which provides information about the status of the
	// printer.
	PrinterInfo6 *PrinterInfo6 `idl:"name:pPrinterInfo6" json:"printer_info6"`
}

PrinterContainer_PrinterInfo_PrinterInfo6 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 6

func (*PrinterContainer_PrinterInfo_PrinterInfo6) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo6) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo7

type PrinterContainer_PrinterInfo_PrinterInfo7 struct {
	// pPrinterInfo7: If the Level member is 0x00000007, this member is a pointer to a PRINTER_INFO_7
	// (section 2.2.1.10.8) structure, which provides directory service (DS) information.
	PrinterInfo7 *PrinterInfo7 `idl:"name:pPrinterInfo7" json:"printer_info7"`
}

PrinterContainer_PrinterInfo_PrinterInfo7 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 7

func (*PrinterContainer_PrinterInfo_PrinterInfo7) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo7) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo8

type PrinterContainer_PrinterInfo_PrinterInfo8 struct {
	// pPrinterInfo8: If the Level member is 0x00000008, this member is a pointer to a PRINTER_INFO_8
	// (section 2.2.1.10.9) structure, which provides information about the global printer
	// driver settings for a printer.
	PrinterInfo8 *PrinterInfo8 `idl:"name:pPrinterInfo8" json:"printer_info8"`
}

PrinterContainer_PrinterInfo_PrinterInfo8 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 8

func (*PrinterContainer_PrinterInfo_PrinterInfo8) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo8) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfo9

type PrinterContainer_PrinterInfo_PrinterInfo9 struct {
	// pPrinterInfo9: If the Level member is 0x00000009, this member is a pointer to a PRINTER_INFO_9
	// (section 2.2.1.10.10) structure. The PRINTER_INFO_9 structure is not used remotely,
	// but it is included in this structure to yield a compatible IDL file. The print server
	// MUST respond with ERROR_NOT_SUPPORTED if it receives a PRINTER_CONTAINER structure
	// with a Level value equal to 0x00000009.
	PrinterInfo9 *PrinterInfo9 `idl:"name:pPrinterInfo9" json:"printer_info9"`
}

PrinterContainer_PrinterInfo_PrinterInfo9 structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 9

func (*PrinterContainer_PrinterInfo_PrinterInfo9) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfo9) UnmarshalNDR

type PrinterContainer_PrinterInfo_PrinterInfoStress

type PrinterContainer_PrinterInfo_PrinterInfoStress struct {
	// pPrinterInfoStress: If the Level member is 0x00000000, this member is a pointer to
	// a PRINTER_INFO_STRESS structure (section 2.2.1.10.1), which provides diagnostic printer
	// information.
	PrinterInfoStress *PrinterInfoStress `idl:"name:pPrinterInfoStress" json:"printer_info_stress"`
}

PrinterContainer_PrinterInfo_PrinterInfoStress structure represents PrinterContainer_PrinterInfo RPC union arm.

It has following labels: 0

func (*PrinterContainer_PrinterInfo_PrinterInfoStress) MarshalNDR

func (*PrinterContainer_PrinterInfo_PrinterInfoStress) UnmarshalNDR

type PrinterInfo1

type PrinterInfo1 struct {
	// Flags: The value of this member MUST be the result of a bitwise OR of zero or more
	// of the Printer Enumeration Flags (section 2.2.3.7).
	Flags       uint32 `idl:"name:Flags" json:"flags"`
	Description string `idl:"name:pDescription;string" json:"description"`
	// pName: This member is synonymous with pPrinterName (section 3.1.4.1.5).
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	Name    string `idl:"name:pName;string" json:"name"`
	Comment string `idl:"name:pComment;string" json:"comment"`
}

PrinterInfo1 structure represents PRINTER_INFO_1 RPC structure.

The PRINTER_INFO_1 structure provides information about a printer.

The _PRINTER_INFO_1 structure specifies printer information. It is a custom-marshaled form of the _PRINTER_INFO_1 (section 2.2.1.10.2) structure. See _PRINTER_INFO_1 for the definition of Flags.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PrinterInfo1) MarshalNDR

func (o *PrinterInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo1) UnmarshalNDR

func (o *PrinterInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo2

type PrinterInfo2 struct {
	ServerName  string `idl:"name:pServerName;string" json:"server_name"`
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	// pShareName: An optional pointer to a string that specifies the share name for the
	// printer. This string MUST be ignored unless the Attributes member contains the PRINTER_ATTRIBUTE_SHARED
	// flag. For rules governing path names, see section 2.2.4.9.
	ShareName string `idl:"name:pShareName;string" json:"share_name"`
	PortName  string `idl:"name:pPortName;string" json:"port_name"`
	// pDriverName: This member is a pointer to a string that specifies the name of the
	// printer driver. For rules governing printer driver names, see section 2.2.4.3.
	DriverName string `idl:"name:pDriverName;string" json:"driver_name"`
	Comment    string `idl:"name:pComment;string" json:"comment"`
	// pLocation: An optional pointer to a string that specifies the location of the printer.
	Location string `idl:"name:pLocation;string" json:"location"`
	DevMode  uint64 `idl:"name:pDevMode" json:"dev_mode"`
	// pSepFile: An optional pointer to a string that specifies the name of a file whose
	// contents are used to create a separator page. This page is used to separate print
	// jobs sent to the printer. For rules governing path names, see section 2.2.4.9.
	SepFile string `idl:"name:pSepFile;string" json:"sep_file"`
	// pPrintProcessor: An optional pointer to a string that specifies the name of the print
	// processor used by the printer. For rules governing print processor names, see section
	// 2.2.4.11.
	PrintProcessor string `idl:"name:pPrintProcessor;string" json:"print_processor"`
	// pDatatype: An optional pointer to a string that specifies the default data format
	// used to record print jobs on the printer. For rules governing data type names, see
	// section 2.2.4.2.
	DataType string `idl:"name:pDatatype;string" json:"data_type"`
	// pParameters: An optional pointer to a string that specifies the default print processor
	// parameters.
	Parameters         string `idl:"name:pParameters;string" json:"parameters"`
	SecurityDescriptor uint64 `idl:"name:pSecurityDescriptor" json:"security_descriptor"`
	Attributes         uint32 `idl:"name:Attributes" json:"attributes"`
	// Priority: The value of this member specifies a priority value that the spooler uses
	// to route each print job. The value of this member MUST be from 0 through 99, inclusive.
	Priority uint32 `idl:"name:Priority" json:"priority"`
	// DefaultPriority: The value of this member specifies the default priority value assigned
	// to each print job. The value of this member MUST be from 0 through 99, inclusive.
	DefaultPriority uint32 `idl:"name:DefaultPriority" json:"default_priority"`
	// StartTime: The value of this member specifies the earliest time that a job can be
	// printed. The time is expressed as the number of minutes after 12:00 AM GMT within
	// a 24-hour boundary.
	StartTime uint32 `idl:"name:StartTime" json:"start_time"`
	// UntilTime: The value of this member specifies the latest time that a job can be printed.
	// The time is expressed as the number of minutes after 12:00 AM GMT within a 24-hour
	// boundary.
	UntilTime uint32 `idl:"name:UntilTime" json:"until_time"`
	Status    uint32 `idl:"name:Status" json:"status"`
	// cJobs: The value of this member specifies the number of print jobs that have been
	// queued for the printer.
	JobsCount uint32 `idl:"name:cJobs" json:"jobs_count"`
	// AveragePPM: The value of this member specifies the average pages per minute that
	// have been printed on the printer.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	AveragePpm uint32 `idl:"name:AveragePPM" json:"average_ppm"`
}

PrinterInfo2 structure represents PRINTER_INFO_2 RPC structure.

The _PRINTER_INFO_2 structure specifies printer information. It is a custom-marshaled form of the _PRINTER_INFO_2 (section 2.2.1.10.3) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The PRINTER_INFO_2 structure provides information about a printer.

func (*PrinterInfo2) MarshalNDR

func (o *PrinterInfo2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo2) UnmarshalNDR

func (o *PrinterInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo3

type PrinterInfo3 struct {
	SecurityDescriptor uint64 `idl:"name:pSecurityDescriptor" json:"security_descriptor"`
}

PrinterInfo3 structure represents PRINTER_INFO_3 RPC structure.

The PRINTER_INFO_3 structure provides information about a printer.

All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.

The _PRINTER_INFO_3 structure specifies printer information. It is a custom-marshaled form of the _PRINTER_INFO_3 (section 2.2.1.10.4) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PrinterInfo3) MarshalNDR

func (o *PrinterInfo3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo3) UnmarshalNDR

func (o *PrinterInfo3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo4

type PrinterInfo4 struct {
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	ServerName  string `idl:"name:pServerName;string" json:"server_name"`
	Attributes  uint32 `idl:"name:Attributes" json:"attributes"`
}

PrinterInfo4 structure represents PRINTER_INFO_4 RPC structure.

The PRINTER_INFO_4 structure provides information about a printer.<59>

All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.

The _PRINTER_INFO_4 structure specifies printer information.<127> It is a custom-marshaled form of the _PRINTER_INFO_4 (section 2.2.1.10.5) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PrinterInfo4) MarshalNDR

func (o *PrinterInfo4) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo4) UnmarshalNDR

func (o *PrinterInfo4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo5

type PrinterInfo5 struct {
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	PortName    string `idl:"name:pPortName;string" json:"port_name"`
	Attributes  uint32 `idl:"name:Attributes" json:"attributes"`
	// DeviceNotSelectedTimeout: The maximum number of milliseconds between select attempts.
	// The DeviceNotSelectedTimeout value controls communication between the print server
	// and a print device. It does not have any effect on communication between the print
	// client and the print server.
	DeviceNotSelectedTimeout uint32 `idl:"name:DeviceNotSelectedTimeout" json:"device_not_selected_timeout"`
	// TransmissionRetryTimeout: The maximum number of milliseconds between retransmission
	// attempts. The TransmissionRetryTimeout value controls communication between the print
	// server and a print device. It does not have any effect on communication between the
	// print client and the print server.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	TransmissionRetryTimeout uint32 `idl:"name:TransmissionRetryTimeout" json:"transmission_retry_timeout"`
}

PrinterInfo5 structure represents PRINTER_INFO_5 RPC structure.

The _PRINTER_INFO_5 structure specifies printer information.<128> It is a custom-marshaled form of the _PRINTER_INFO_5 (section 2.2.1.10.6) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The PRINTER_INFO_5 structure provides information about a printer.<60>

func (*PrinterInfo5) MarshalNDR

func (o *PrinterInfo5) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo5) UnmarshalNDR

func (o *PrinterInfo5) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo6

type PrinterInfo6 struct {
	// dwStatus: The printer status. It MUST be the result of a bitwise OR of zero or more
	// of the printer status values defined in section 2.2.3.12.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	Status uint32 `idl:"name:dwStatus" json:"status"`
}

PrinterInfo6 structure represents PRINTER_INFO_6 RPC structure.

The PRINTER_INFO_6 structure provides information about a printer.<61>

The _PRINTER_INFO_6 structure specifies printer information.<129> It is a custom-marshaled form of the _PRINTER_INFO_6 (section 2.2.1.10.7) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PrinterInfo6) MarshalNDR

func (o *PrinterInfo6) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo6) UnmarshalNDR

func (o *PrinterInfo6) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo7

type PrinterInfo7 struct {
	// pszObjectGUID: A pointer to a curly braced GUID string that specifies the GUID used
	// by the DS to identify this printer, if it is used in a response to RpcGetPrinter
	// (section 3.1.4.2.6). The string MUST conform to the curly braced GUID string format
	// ([MS-DTYP] section 2.3.4.3).
	ObjectGUID string `idl:"name:pszObjectGUID;string" json:"object_guid"`
	// dwAction: An action for the printer to perform if it used by the client in a call
	// to RpcSetPrinter.
	//
	// The value of this member represents a DS-specific publishing state by the server
	// if it is used in a response to RpcGetPrinter.
	//
	// The value of this member MUST be a constant from the following table:
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|          NAME/VALUE          |                                   DESCRIPTION                                    |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DSPRINT_PUBLISH 0x00000001   | RpcSetPrinter: The server MUST publish the printer's data in the DS (section     |
	//	|                              | 2.3.3.1). RpcGetPrinter: The server MUST set this value to indicate the printer  |
	//	|                              | is published in the DS.                                                          |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DSPRINT_UPDATE 0x00000002    | RpcSetPrinter: The server MUST update the printer's published data in the DS     |
	//	|                              | (section 2.3.3.2). RpcGetPrinter: This value MUST NOT be returned by the server. |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DSPRINT_UNPUBLISH 0x00000004 | RpcSetPrinter: The server MUST remove the printer's published data from the DS   |
	//	|                              | (section 2.3.3.2). RpcGetPrinter: The server MUST set this value to indicate the |
	//	|                              | printer is not published.                                                        |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DSPRINT_REPUBLISH 0x00000008 | RpcSetPrinter: The server MUST unpublish (section 2.3.3.2) and publish again     |
	//	|                              | (section 2.3.3.1) the DS data for the printer. Republishing also MUST change     |
	//	|                              | the GUID of the published printer. RpcGetPrinter: The server MUST NOT set this   |
	//	|                              | value.                                                                           |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| DSPRINT_PENDING 0x80000000   | RpcSetPrinter: This value MUST NOT be used by the client. RpcGetPrinter:         |
	//	|                              | The server MUST return this value, if a previous publish or unpublish action     |
	//	|                              | initiated by RpcSetPrinter is still in progress.                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	Action uint32 `idl:"name:dwAction" json:"action"`
}

PrinterInfo7 structure represents PRINTER_INFO_7 RPC structure.

The _PRINTER_INFO_7 structure specifies printer information.<130> It is a custom-marshaled form of the _PRINTER_INFO_7 (section 2.2.1.10.8) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The PRINTER_INFO_7 structure provides directory service (DS) information about a printer.<62>

func (*PrinterInfo7) MarshalNDR

func (o *PrinterInfo7) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo7) UnmarshalNDR

func (o *PrinterInfo7) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo8

type PrinterInfo8 struct {
	DevMode uint64 `idl:"name:pDevMode" json:"dev_mode"`
}

PrinterInfo8 structure represents PRINTER_INFO_8 RPC structure.

The _PRINTER_INFO_8 structure specifies printer information.<131> It is a custom-marshaled form of the _PRINTER_INFO_8 (section 2.2.1.10.9) structure.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

The PRINTER_INFO_8 structure provides information about a printer.<63>

This structure is used for the global default settings of a printer.

All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.

func (*PrinterInfo8) MarshalNDR

func (o *PrinterInfo8) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo8) UnmarshalNDR

func (o *PrinterInfo8) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfo9

type PrinterInfo9 struct {
	DevMode uint64 `idl:"name:pDevMode" json:"dev_mode"`
}

PrinterInfo9 structure represents PRINTER_INFO_9 RPC structure.

The PRINTER_INFO_9 structure is not used remotely.<64>

func (*PrinterInfo9) MarshalNDR

func (o *PrinterInfo9) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfo9) UnmarshalNDR

func (o *PrinterInfo9) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type PrinterInfoStress

type PrinterInfoStress struct {
	PrinterName string `idl:"name:pPrinterName;string" json:"printer_name"`
	ServerName  string `idl:"name:pServerName;string" json:"server_name"`
	// cJobs: The number of jobs that are currently in the print queue.
	JobsCount uint32 `idl:"name:cJobs" json:"jobs_count"`
	// cTotalJobs: The total number of jobs that have been spooled since the print server
	// was started.
	TotalJobsCount uint32 `idl:"name:cTotalJobs" json:"total_jobs_count"`
	// cTotalBytes: The low-order 32 bits of an unsigned 64-bit value that specifies the
	// total number of bytes that have been printed since system startup. The high-order
	// 32 bits are specified by the dwHighPartTotalBytes member.
	TotalBytesCount uint32 `idl:"name:cTotalBytes" json:"total_bytes_count"`
	// stUpTime: The time the printer data structure was created, in SYSTEMTIME format ([MS-DTYP]
	// section 2.3.13).
	UpTime *dtyp.SystemTime `idl:"name:stUpTime" json:"up_time"`
	// MaxcRef: The historic maximum value of the cRef member.
	MaxcReference uint32 `idl:"name:MaxcRef" json:"maxc_reference"`
	// cTotalPagesPrinted: The total number of pages printed.
	TotalPagesPrintedCount uint32 `idl:"name:cTotalPagesPrinted" json:"total_pages_printed_count"`
	// dwGetVersion: An implementation-specific value that specifies the version of the
	// operating system.<52>
	GetVersion uint32 `idl:"name:dwGetVersion" json:"get_version"`
	// fFreeBuild: An implementation-specific value that MUST be ignored on receipt.<53>
	FreeBuild uint32 `idl:"name:fFreeBuild" json:"free_build"`
	// cSpooling: The number of actively spooling jobs.
	SpoolingCount uint32 `idl:"name:cSpooling" json:"spooling_count"`
	// cMaxSpooling: The historic maximum number of actively spooling jobs.
	MaxSpoolingCount uint32 `idl:"name:cMaxSpooling" json:"max_spooling_count"`
	// cRef: The reference count for opened printer objects.
	ReferenceCount uint32 `idl:"name:cRef" json:"reference_count"`
	// cErrorOutOfPaper: The total number of out-of-paper errors.
	ErrorOutOfPaperCount uint32 `idl:"name:cErrorOutOfPaper" json:"error_out_of_paper_count"`
	// cErrorNotReady: The total number of not-ready errors.
	ErrorNotReadyCount uint32 `idl:"name:cErrorNotReady" json:"error_not_ready_count"`
	// cJobError: The total number of job errors.
	JobErrorCount uint32 `idl:"name:cJobError" json:"job_error_count"`
	// dwNumberOfProcessors: The number of processors in the computer on which the print
	// server is running.
	NumberOfProcessors uint32 `idl:"name:dwNumberOfProcessors" json:"number_of_processors"`
	// dwProcessorType: An implementation-specific value that identifies the type of processor
	// in the computer.<54>
	ProcessorType uint32 `idl:"name:dwProcessorType" json:"processor_type"`
	// dwHighPartTotalBytes: The high-order 32 bits of an unsigned 64-bit value that specifies
	// the total number of bytes that have been printed since system startup. The low-order
	// 32 bits are specified by the cTotalBytes member.
	HighPartTotalBytes uint32 `idl:"name:dwHighPartTotalBytes" json:"high_part_total_bytes"`
	// cChangeID: A unique number that identifies the last change.
	ChangeIDCount uint32 `idl:"name:cChangeID" json:"change_id_count"`
	// dwLastError: An implementation-specific error code for the last error that occurred
	// with this printer.<55>
	LastError uint32 `idl:"name:dwLastError" json:"last_error"`
	// Status: The current printer status (section 2.2.3.12).
	Status uint32 `idl:"name:Status" json:"status"`
	// cEnumerateNetworkPrinters: The number of times the network printers in the "List
	// of Known Printers" have been requested.
	EnumerateNetworkPrintersCount uint32 `idl:"name:cEnumerateNetworkPrinters" json:"enumerate_network_printers_count"`
	// cAddNetPrinters: The number of network printers added, per server.
	AddNetPrintersCount uint32 `idl:"name:cAddNetPrinters" json:"add_net_printers_count"`
	// wProcessorArchitecture: An implementation-specific value that identifies the system's
	// processor architecture. This value SHOULD be ignored on receipt.<56>
	ProcessorArchitecture uint16 `idl:"name:wProcessorArchitecture" json:"processor_architecture"`
	// wProcessorLevel: An implementation-specific value that identifies the system's architecture-dependent
	// processor level. This value SHOULD be ignored on receipt.<57>
	ProcessorLevel uint16 `idl:"name:wProcessorLevel" json:"processor_level"`
	// cRefIC: The number of open information context handles.
	//
	// All members not defined in this section are specified in sections 2.2.1.3.6 and 2.2.1.3.
	ReferenceICCount uint32 `idl:"name:cRefIC" json:"reference_ic_count"`
	// contains filtered or unexported fields
}

PrinterInfoStress structure represents PRINTER_INFO_STRESS RPC structure.

The PRINTER_INFO_STRESS structure provides diagnostic printer information used for print system remote protocol stress analysis.<51>

The _PRINTER_INFO_STRESS structure specifies printer diagnostic information.<120> It is a custom-marshaled form of the _PRINTER_INFO_STRESS (section 2.2.1.10.1) structure. This form of the _PRINTER_INFO_STRESS structure corresponds to an information Level value of 0x00000000.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 |
|   |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |   |   |   |   |   |   |   |   | 0 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Fixed_Portion (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Variable_Data (variable)                                                                                                      |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*PrinterInfoStress) MarshalNDR

func (o *PrinterInfoStress) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*PrinterInfoStress) UnmarshalNDR

func (o *PrinterInfoStress) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ReadPrinterRequest

type ReadPrinterRequest struct {
	// hPrinter: A handle to a job object or port object that was opened by RpcOpenPrinter
	// (section 3.1.4.2.2) or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// cbBuf: The size, in bytes, of data to be read into the buffer that is pointed to
	// by the pBuf parameter.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

ReadPrinterRequest structure represents the RpcReadPrinter operation request

func (*ReadPrinterRequest) MarshalNDR

func (o *ReadPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReadPrinterRequest) UnmarshalNDR

func (o *ReadPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ReadPrinterResponse

type ReadPrinterResponse struct {
	// pBuf: A pointer to a buffer that receives the printer data. If the hPrinter parameter
	// is the handle to a port object, this method returns the data that is returned by
	// the port monitor.
	Buffer []byte `idl:"name:pBuf;size_is:(cbBuf)" json:"buffer"`
	// pcNoBytesRead: A pointer to a variable that receives the number of bytes of data
	// copied into the array to which pBuf points.
	NoBytesReadCount uint32 `idl:"name:pcNoBytesRead" json:"no_bytes_read_count"`
	// Return: The RpcReadPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ReadPrinterResponse structure represents the RpcReadPrinter operation response

func (*ReadPrinterResponse) MarshalNDR

func (o *ReadPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReadPrinterResponse) UnmarshalNDR

func (o *ReadPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Rectangle

type Rectangle struct {
	// left: The x-coordinate of the upper-left corner of the rectangle relative to the
	// left edge of the form. This value MUST be an integer greater than or equal to 0 and
	// it MUST be smaller than or equal to the 'right'.
	Left int32 `idl:"name:left" json:"left"`
	// top: The y-coordinate of the upper-left corner of the rectangle relative to the top
	// edge of the form. This value MUST be an integer greater than or equal to 0 and it
	// MUST be smaller than or equal to the 'bottom'.
	Top int32 `idl:"name:top" json:"top"`
	// right: The x-coordinate of the lower-right corner of the rectangle relative to the
	// left edge of the form. This value MUST be greater than or equal to 'left'.
	Right int32 `idl:"name:right" json:"right"`
	// bottom: The y-coordinate of the lower-right corner of the rectangle relative to the
	// top edge of the form. This value MUST be greater than or equal to 'top'.
	Bottom int32 `idl:"name:bottom" json:"bottom"`
}

Rectangle structure represents RECTL RPC structure.

The RECTL structure defines a rectangle on a form, with two (x,y) coordinates in 1/1000 millimeter units.

func (*Rectangle) MarshalNDR

func (o *Rectangle) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Rectangle) UnmarshalNDR

func (o *Rectangle) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type RegeneratePrintDeviceCapabilitiesRequest

type RegeneratePrintDeviceCapabilitiesRequest struct {
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

RegeneratePrintDeviceCapabilitiesRequest structure represents the RpcRegeneratePrintDeviceCapabilities operation request

func (*RegeneratePrintDeviceCapabilitiesRequest) MarshalNDR

func (*RegeneratePrintDeviceCapabilitiesRequest) UnmarshalNDR

type RegeneratePrintDeviceCapabilitiesResponse

type RegeneratePrintDeviceCapabilitiesResponse struct {
	// Return: The RpcRegeneratePrintDeviceCapabilities return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RegeneratePrintDeviceCapabilitiesResponse structure represents the RpcRegeneratePrintDeviceCapabilities operation response

func (*RegeneratePrintDeviceCapabilitiesResponse) MarshalNDR

func (*RegeneratePrintDeviceCapabilitiesResponse) UnmarshalNDR

type RemoteFindFirstPrinterChangeNotificationExRequest

type RemoteFindFirstPrinterChangeNotificationExRequest struct {
	// hPrinter: A handle to a printer or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// fdwFlags: Flags that specify the conditions that are required for a change notification
	// object to enter a signaled state. A change notification MUST occur when one or more
	// of the specified conditions are met.
	Flags uint32 `idl:"name:fdwFlags" json:"flags"`
	// fdwOptions: The category of printers for which change notifications are returned.
	// This parameter MUST be one of the supported values specified in Printer Notification
	// Values (section 2.2.3.8).
	Options uint32 `idl:"name:fdwOptions" json:"options"`
	// pszLocalMachine: A pointer to a string that represents the name of the client computer.
	// The rules governing server names are specified in section 2.2.4.16.
	LocalMachine string `idl:"name:pszLocalMachine;string;pointer:unique" json:"local_machine"`
	// dwPrinterLocal: An implementation-specific unique value that MUST be sufficient for
	// the client to determine whether a call to RpcReplyOpenPrinter (section 3.2.4.1.1)
	// by the server is associated with the hPrinter parameter in this call.<382>
	PrinterLocal  uint32           `idl:"name:dwPrinterLocal" json:"printer_local"`
	NotifyOptions *V2NotifyOptions `idl:"name:pNotifyOptions;pointer:unique" json:"notify_options"`
}

RemoteFindFirstPrinterChangeNotificationExRequest structure represents the RpcRemoteFindFirstPrinterChangeNotificationEx operation request

func (*RemoteFindFirstPrinterChangeNotificationExRequest) MarshalNDR

func (*RemoteFindFirstPrinterChangeNotificationExRequest) UnmarshalNDR

type RemoteFindFirstPrinterChangeNotificationExResponse

type RemoteFindFirstPrinterChangeNotificationExResponse struct {
	// Return: The RpcRemoteFindFirstPrinterChangeNotificationEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoteFindFirstPrinterChangeNotificationExResponse structure represents the RpcRemoteFindFirstPrinterChangeNotificationEx operation response

func (*RemoteFindFirstPrinterChangeNotificationExResponse) MarshalNDR

func (*RemoteFindFirstPrinterChangeNotificationExResponse) UnmarshalNDR

type RemoteFindFirstPrinterChangeNotificationRequest

type RemoteFindFirstPrinterChangeNotificationRequest struct {
	// hPrinter: A handle to a printer or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// fdwFlags: Flags that specify the conditions that are required for a change notification
	// object to enter a signaled state. A change notification MUST occur when one or more
	// of the specified conditions are met.
	Flags uint32 `idl:"name:fdwFlags" json:"flags"`
	// fdwOptions: The category of printers for which change notifications are returned.
	// This parameter MUST be one of the supported values specified in Printer Notification
	// Values (section 2.2.3.8).
	Options uint32 `idl:"name:fdwOptions" json:"options"`
	// pszLocalMachine: A pointer to a string that represents the name of the client computer.
	// The rules governing server names are specified in section 2.2.4.16.
	LocalMachine string `idl:"name:pszLocalMachine;string;pointer:unique" json:"local_machine"`
	// dwPrinterLocal: An implementation-specific unique value that MUST be sufficient for
	// the client to determine whether a call to RpcReplyOpenPrinter (section 3.2.4.1.1)
	// by the server is associated with the hPrinter parameter in this call.<381>
	PrinterLocal uint32 `idl:"name:dwPrinterLocal" json:"printer_local"`
	// cbBuffer: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
	BufferLength uint32 `idl:"name:cbBuffer" json:"buffer_length"`
	// pBuffer: A pointer that MUST be set to NULL when sent and MUST be ignored on receipt.
	Buffer []byte `idl:"name:pBuffer;size_is:(cbBuffer);pointer:unique" json:"buffer"`
}

RemoteFindFirstPrinterChangeNotificationRequest structure represents the RpcRemoteFindFirstPrinterChangeNotification operation request

func (*RemoteFindFirstPrinterChangeNotificationRequest) MarshalNDR

func (*RemoteFindFirstPrinterChangeNotificationRequest) UnmarshalNDR

type RemoteFindFirstPrinterChangeNotificationResponse

type RemoteFindFirstPrinterChangeNotificationResponse struct {
	// pBuffer: A pointer that MUST be set to NULL when sent and MUST be ignored on receipt.
	Buffer []byte `idl:"name:pBuffer;size_is:(cbBuffer);pointer:unique" json:"buffer"`
	// Return: The RpcRemoteFindFirstPrinterChangeNotification return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoteFindFirstPrinterChangeNotificationResponse structure represents the RpcRemoteFindFirstPrinterChangeNotification operation response

func (*RemoteFindFirstPrinterChangeNotificationResponse) MarshalNDR

func (*RemoteFindFirstPrinterChangeNotificationResponse) UnmarshalNDR

type ReplyClosePrinterRequest

type ReplyClosePrinterRequest struct {
	// phNotify: A pointer to the notification context handle to close that was opened by
	// RpcReplyOpenPrinter (section 3.2.4.1.1).
	Notify *Printer `idl:"name:phNotify" json:"notify"`
}

ReplyClosePrinterRequest structure represents the RpcReplyClosePrinter operation request

func (*ReplyClosePrinterRequest) MarshalNDR

func (o *ReplyClosePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReplyClosePrinterRequest) UnmarshalNDR

func (o *ReplyClosePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ReplyClosePrinterResponse

type ReplyClosePrinterResponse struct {
	// phNotify: A pointer to the notification context handle to close that was opened by
	// RpcReplyOpenPrinter (section 3.2.4.1.1).
	Notify *Printer `idl:"name:phNotify" json:"notify"`
	// Return: The RpcReplyClosePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ReplyClosePrinterResponse structure represents the RpcReplyClosePrinter operation response

func (*ReplyClosePrinterResponse) MarshalNDR

func (o *ReplyClosePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReplyClosePrinterResponse) UnmarshalNDR

func (o *ReplyClosePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ReplyOpenPrinterRequest

type ReplyOpenPrinterRequest struct {
	// pMachine: A string that specifies the print client computer name. It is synonymous
	// with pName, as specified in Print Server Name Parameters (section 3.1.4.1.4).
	Machine string `idl:"name:pMachine;string" json:"machine"`
	// dwPrinterRemote: A value that is supplied to the server by the dwPrinterLocal parameter
	// of a corresponding call to RpcRemoteFindFirstPrinterChangeNotification (section 3.1.4.10.3)
	// or RpcRemoteFindFirstPrinterChangeNotificationEx (section 3.1.4.10.4). This value
	// MUST NOT be zero.
	PrinterRemote uint32 `idl:"name:dwPrinterRemote" json:"printer_remote"`
	// dwType: A value that MUST be 0x00000001.
	Type uint32 `idl:"name:dwType" json:"type"`
	// cbBuffer: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
	BufferLength uint32 `idl:"name:cbBuffer" json:"buffer_length"`
	// pBuffer: A pointer that SHOULD be set to NULL when sent and MUST be ignored on receipt.
	Buffer []byte `idl:"name:pBuffer;size_is:(cbBuffer);pointer:unique" json:"buffer"`
}

ReplyOpenPrinterRequest structure represents the RpcReplyOpenPrinter operation request

func (*ReplyOpenPrinterRequest) MarshalNDR

func (o *ReplyOpenPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReplyOpenPrinterRequest) UnmarshalNDR

func (o *ReplyOpenPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ReplyOpenPrinterResponse

type ReplyOpenPrinterResponse struct {
	// phPrinterNotify: A pointer to a remote printer RPC context handle that is used by
	// a print server to send notifications to a print client. RPC context handles are specified
	// in [C706].
	PrinterNotify *Printer `idl:"name:phPrinterNotify" json:"printer_notify"`
	// Return: The RpcReplyOpenPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ReplyOpenPrinterResponse structure represents the RpcReplyOpenPrinter operation response

func (*ReplyOpenPrinterResponse) MarshalNDR

func (o *ReplyOpenPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ReplyOpenPrinterResponse) UnmarshalNDR

func (o *ReplyOpenPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ResetPrinterRequest

type ResetPrinterRequest struct {
	// hPrinter: A handle to a printer object that was opened by RpcAddPrinter (section
	// 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2),
	// or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pDatatype: A parameter specified in Datatype Name Parameters (section 3.1.4.1.1).
	DataType string `idl:"name:pDatatype;string;pointer:unique" json:"data_type"`
	// pDevModeContainer: A parameter specified in DEVMODE_CONTAINER Parameters.
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
}

ResetPrinterRequest structure represents the RpcResetPrinter operation request

func (*ResetPrinterRequest) MarshalNDR

func (o *ResetPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ResetPrinterRequest) UnmarshalNDR

func (o *ResetPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ResetPrinterResponse

type ResetPrinterResponse struct {
	// Return: The RpcResetPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ResetPrinterResponse structure represents the RpcResetPrinter operation response

func (*ResetPrinterResponse) MarshalNDR

func (o *ResetPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ResetPrinterResponse) UnmarshalNDR

func (o *ResetPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RouterRefreshPrinterChangeNotificationRequest

type RouterRefreshPrinterChangeNotificationRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// dwColor: An implementation-specific value that MAY be used by print clients to get
	// an indication of the order of notifications.<384>
	Color uint32           `idl:"name:dwColor" json:"color"`
	Out   *V2NotifyOptions `idl:"name:out;pointer:unique" json:"out"`
}

RouterRefreshPrinterChangeNotificationRequest structure represents the RpcRouterRefreshPrinterChangeNotification operation request

func (*RouterRefreshPrinterChangeNotificationRequest) MarshalNDR

func (*RouterRefreshPrinterChangeNotificationRequest) UnmarshalNDR

type RouterRefreshPrinterChangeNotificationResponse

type RouterRefreshPrinterChangeNotificationResponse struct {
	// Return: The RpcRouterRefreshPrinterChangeNotification return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RouterRefreshPrinterChangeNotificationResponse structure represents the RpcRouterRefreshPrinterChangeNotification operation response

func (*RouterRefreshPrinterChangeNotificationResponse) MarshalNDR

func (*RouterRefreshPrinterChangeNotificationResponse) UnmarshalNDR

type RouterReplyPrinterExRequest

type RouterReplyPrinterExRequest struct {
	// hNotify: A notification RPC context handle that was opened by RpcReplyOpenPrinter
	// (section 3.2.4.1.1).
	Notify *Printer `idl:"name:hNotify" json:"notify"`
	// dwColor: The value that was most recently specified by the client in the dwColor
	// parameter of a call to RpcRouterRefreshPrinterChangeNotification (section 3.1.4.10.5).
	Color uint32 `idl:"name:dwColor" json:"color"`
	// fdwFlags: A value that contains Printer Change Flags (section 2.2.3.6), which indicate
	// changes in printer configuration values.
	Flags uint32 `idl:"name:fdwFlags" json:"flags"`
	// dwReplyType: A value that MUST be zero.
	ReplyType uint32 `idl:"name:dwReplyType" json:"reply_type"`
	// Reply: A pointer to an RPC_V2_UREPLY_PRINTER union, which contains a pointer to an
	// RPC_V2_NOTIFY_INFO structure, which contains available notification data that matched
	// the set of notifications that the client previously requested.
	Reply *V2ReplyPrinter `idl:"name:Reply;switch_is:dwReplyType" json:"reply"`
}

RouterReplyPrinterExRequest structure represents the RpcRouterReplyPrinterEx operation request

func (*RouterReplyPrinterExRequest) MarshalNDR

func (*RouterReplyPrinterExRequest) UnmarshalNDR

func (o *RouterReplyPrinterExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RouterReplyPrinterExResponse

type RouterReplyPrinterExResponse struct {
	// pdwResult: A pointer to a value that contains Change Notification Flags (section
	// 2.2.3.2), which indicate how the client processed the notification.
	Result uint32 `idl:"name:pdwResult" json:"result"`
	// Return: The RpcRouterReplyPrinterEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RouterReplyPrinterExResponse structure represents the RpcRouterReplyPrinterEx operation response

func (*RouterReplyPrinterExResponse) MarshalNDR

func (*RouterReplyPrinterExResponse) UnmarshalNDR

func (o *RouterReplyPrinterExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RouterReplyPrinterRequest

type RouterReplyPrinterRequest struct {
	// hNotify: A notification handle that was opened by the server using RpcReplyOpenPrinter
	// (section 3.2.4.1.1).
	Notify *Printer `idl:"name:hNotify" json:"notify"`
	// fdwFlags: A value that contains Printer Change Flags (section 2.2.3.6), which indicate
	// changes in printer configuration values.
	Flags uint32 `idl:"name:fdwFlags" json:"flags"`
	// cbBuffer: A value that SHOULD be set to zero when sent and MUST be ignored on receipt.
	BufferLength uint32 `idl:"name:cbBuffer" json:"buffer_length"`
	// pBuffer: A pointer that SHOULD be set to NULL when sent and MUST be ignored on receipt.
	Buffer []byte `idl:"name:pBuffer;size_is:(cbBuffer);pointer:unique" json:"buffer"`
}

RouterReplyPrinterRequest structure represents the RpcRouterReplyPrinter operation request

func (*RouterReplyPrinterRequest) MarshalNDR

func (o *RouterReplyPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RouterReplyPrinterRequest) UnmarshalNDR

func (o *RouterReplyPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RouterReplyPrinterResponse

type RouterReplyPrinterResponse struct {
	// Return: The RpcRouterReplyPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RouterReplyPrinterResponse structure represents the RpcRouterReplyPrinter operation response

func (*RouterReplyPrinterResponse) MarshalNDR

func (o *RouterReplyPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RouterReplyPrinterResponse) UnmarshalNDR

func (o *RouterReplyPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ScheduleJobRequest

type ScheduleJobRequest struct {
	// hPrinter: A handle to a printer object that was opened using RpcAddPrinter, RpcAddPrinterEx,
	// RpcOpenPrinter, or RpcOpenPrinterEx.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of the print job.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
}

ScheduleJobRequest structure represents the RpcScheduleJob operation request

func (*ScheduleJobRequest) MarshalNDR

func (o *ScheduleJobRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ScheduleJobRequest) UnmarshalNDR

func (o *ScheduleJobRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ScheduleJobResponse

type ScheduleJobResponse struct {
	// Return: The RpcScheduleJob return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ScheduleJobResponse structure represents the RpcScheduleJob operation response

func (*ScheduleJobResponse) MarshalNDR

func (o *ScheduleJobResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ScheduleJobResponse) UnmarshalNDR

func (o *ScheduleJobResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SecurityContainer

type SecurityContainer struct {
	// cbBuf: The size, in bytes, of the buffer that is pointed to by the pSecurity member.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pSecurity: An optional pointer to a self-relative SECURITY_DESCRIPTOR structure.
	Security []byte `idl:"name:pSecurity;size_is:(cbBuf);pointer:unique" json:"security"`
}

SecurityContainer structure represents SECURITY_CONTAINER RPC structure.

The SECURITY_CONTAINER structure specifies a SECURITY_DESCRIPTOR structure ([MS-DTYP] section 2.4.6), which contains security information.

func (*SecurityContainer) MarshalNDR

func (o *SecurityContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SecurityContainer) UnmarshalNDR

func (o *SecurityContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SendRecvBIDIDataRequest

type SendRecvBIDIDataRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pAction: A pointer to a string that specifies an action to take. The following actions
	// SHOULD be supported.<318>, <319> Port monitors MAY support additional, implementation-specific
	// action strings.
	//
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                 |                                                                                  |
	//	|                   NAME/VALUE                    |                                   DESCRIPTION                                    |
	//	|                                                 |                                                                                  |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	| BIDI_ACTION_ENUM_SCHEMA "EnumSchema"            | The method MUST enumerate the supported schemas. The pReqData parameter MUST be  |
	//	|                                                 | ignored. The method MUST store one or more values that correspond to supported   |
	//	|                                                 | schema entries in the buffer that is pointed to by the ppRespData parameter.     |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	| BIDI_ACTION_GET "Get"                           | The method MUST return the specific value item requested. The pReqData parameter |
	//	|                                                 | specifies a single value entry in the schema. The method MUST store the value of |
	//	|                                                 | that entry in the buffer that is pointed to by the ppRespData parameter.         |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	| BIDI_ACTION_SET "Set"                           | The method MUST store the supplied data in a single value item in the schema.    |
	//	|                                                 | The pReqData parameter specifies a single value entry for the schema and the new |
	//	|                                                 | value to be stored there. This action MUST NOT change the contents of the buffer |
	//	|                                                 | that is pointed to by the ppRespData parameter.                                  |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	| BIDI_ACTION_GET_ALL "GetAll"                    | The method MUST return one or more value items that are reachable from the       |
	//	|                                                 | requested schema item. The pReqData parameter specifies an entry in the schema,  |
	//	|                                                 | which is either a value item or an inner schema entry. The action MUST store     |
	//	|                                                 | one or more value entries, and their associated values, in the buffer that is    |
	//	|                                                 | pointed to by the ppRespData parameter.                                          |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	//	| BIDI_ACTION_GET_WITH_ARGUMENT "GetWithArgument" | The method MUST return one or more value items that are reachable from the       |
	//	|                                                 | requested schema item. The pReqData parameter specifies an entry in the schema,  |
	//	|                                                 | which is either a value item or an inner schema entry, and a data value to       |
	//	|                                                 | be used when processing the request. The action MUST store one or more value     |
	//	|                                                 | entries, and their associated values, in the buffer that is pointed to by the    |
	//	|                                                 | ppRespData parameter.                                                            |
	//	+-------------------------------------------------+----------------------------------------------------------------------------------+
	Action string `idl:"name:pAction;string;pointer:unique" json:"action"`
	// pReqData: A pointer to an RPC_BIDI_REQUEST_CONTAINER (section 2.2.1.2.10) structure
	// that contains the requested binary data.
	RequestData *BIDIRequestContainer `idl:"name:pReqData" json:"request_data"`
}

SendRecvBIDIDataRequest structure represents the RpcSendRecvBidiData operation request

func (*SendRecvBIDIDataRequest) MarshalNDR

func (o *SendRecvBIDIDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SendRecvBIDIDataRequest) UnmarshalNDR

func (o *SendRecvBIDIDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SendRecvBIDIDataResponse

type SendRecvBIDIDataResponse struct {
	// ppRespData: A pointer to a variable that receives a pointer to a RPC_BIDI_RESPONSE_CONTAINER
	// (section 2.2.1.2.11) structure that contains the response binary data.
	ResponseData *BIDIResponseContainer `idl:"name:ppRespData" json:"response_data"`
	// Return: The RpcSendRecvBidiData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SendRecvBIDIDataResponse structure represents the RpcSendRecvBidiData operation response

func (*SendRecvBIDIDataResponse) MarshalNDR

func (o *SendRecvBIDIDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SendRecvBIDIDataResponse) UnmarshalNDR

func (o *SendRecvBIDIDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetFormRequest

type SetFormRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pFormName: A pointer to a string that specifies the form name on which the form information
	// is set. For rules governing form names, see section 2.2.4.5.
	FormName string `idl:"name:pFormName;string" json:"form_name"`
	// pFormInfoContainer: A parameter specified in FORM_CONTAINER Parameters, section 3.1.4.1.8.4.
	FormInfoContainer *FormContainer `idl:"name:pFormInfoContainer" json:"form_info_container"`
}

SetFormRequest structure represents the RpcSetForm operation request

func (*SetFormRequest) MarshalNDR

func (o *SetFormRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetFormRequest) UnmarshalNDR

func (o *SetFormRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetFormResponse

type SetFormResponse struct {
	// Return: The RpcSetForm return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetFormResponse structure represents the RpcSetForm operation response

func (*SetFormResponse) MarshalNDR

func (o *SetFormResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetFormResponse) UnmarshalNDR

func (o *SetFormResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobAttributesRequest

type SetJobAttributesRequest struct {
	Printer                     *Printer `idl:"name:hPrinter" json:"printer"`
	JobID                       uint32   `idl:"name:jobId" json:"job_id"`
	JobAttributeGroupBufferSize uint32   `idl:"name:jobAttributeGroupBufferSize" json:"job_attribute_group_buffer_size"`
	JobAttributeGroupBuffer     []byte   `idl:"name:jobAttributeGroupBuffer;size_is:(jobAttributeGroupBufferSize)" json:"job_attribute_group_buffer"`
}

SetJobAttributesRequest structure represents the RpcIppSetJobAttributes operation request

func (*SetJobAttributesRequest) MarshalNDR

func (o *SetJobAttributesRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetJobAttributesRequest) UnmarshalNDR

func (o *SetJobAttributesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobAttributesResponse

type SetJobAttributesResponse struct {
	ResponseBufferSize uint32 `idl:"name:ippResponseBufferSize;pointer:ref" json:"response_buffer_size"`
	ResponseBuffer     []byte `idl:"name:ippResponseBuffer;size_is:(, ippResponseBufferSize);pointer:ref" json:"response_buffer"`
	// Return: The RpcIppSetJobAttributes return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SetJobAttributesResponse structure represents the RpcIppSetJobAttributes operation response

func (*SetJobAttributesResponse) MarshalNDR

func (o *SetJobAttributesResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetJobAttributesResponse) UnmarshalNDR

func (o *SetJobAttributesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobNamedPropertyRequest

type SetJobNamedPropertyRequest struct {
	// hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or
	// server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of a print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// pProperty: A pointer to an RPC_PrintNamedProperty (section 2.2.1.14.2) structure
	// specifies the property to be created if it does not exist for the print job specified
	// by the JobId parameter, or update an existing property with a new value. This pointer
	// MUST NOT be NULL.
	Property *PrintNamedProperty `idl:"name:pProperty" json:"property"`
}

SetJobNamedPropertyRequest structure represents the RpcSetJobNamedProperty operation request

func (*SetJobNamedPropertyRequest) MarshalNDR

func (o *SetJobNamedPropertyRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetJobNamedPropertyRequest) UnmarshalNDR

func (o *SetJobNamedPropertyRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobNamedPropertyResponse

type SetJobNamedPropertyResponse struct {
	// Return: The RpcSetJobNamedProperty return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetJobNamedPropertyResponse structure represents the RpcSetJobNamedProperty operation response

func (*SetJobNamedPropertyResponse) MarshalNDR

func (*SetJobNamedPropertyResponse) UnmarshalNDR

func (o *SetJobNamedPropertyResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobRequest

type SetJobRequest struct {
	// hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or
	// server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx
	// (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section
	// 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// JobId: The identifier of the print job. This value MUST NOT be zero.
	JobID uint32 `idl:"name:JobId" json:"job_id"`
	// pJobContainer: An optional pointer to a JOB_CONTAINER (section 2.2.1.2.5) that specifies
	// the parameters to set on the job object.
	JobContainer *JobContainer `idl:"name:pJobContainer;pointer:unique" json:"job_container"`
	// Command: A Job Control Value (section 2.2.4.6) that specifies an action. This value
	// MUST be one of the following job control actions:
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                          |                                                                                  |
	//	|                NAME/VALUE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000                               | Perform no additional action.                                                    |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_PAUSE 0x00000001             | Pause the print job.                                                             |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_RESUME 0x00000002            | Resume a paused print job.                                                       |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_CANCEL 0x00000003            | Delete a print job.<321>                                                         |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_RESTART 0x00000004           | Restart a print job.                                                             |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_DELETE 0x00000005            | Delete a print job.<322>                                                         |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_SENT_TO_PRINTER 0x00000006   | Used by port monitors to signal that a print job has been sent to the printer.   |
	//	|                                          | This value SHOULD NOT be used remotely.                                          |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_LAST_PAGE_EJECTED 0x00000007 | Used by language monitors to signal that the last page of a print job has been   |
	//	|                                          | ejected from the printer. This value SHOULD NOT be used remotely.                |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_RETAIN 0x00000008            | Keep the print job in the print queue after it prints.                           |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| JOB_CONTROL_RELEASE 0x00000009           | Release the print job, undoing the effect of a JOB_CONTROL_RETAIN action.        |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	Command uint32 `idl:"name:Command" json:"command"`
}

SetJobRequest structure represents the RpcSetJob operation request

func (*SetJobRequest) MarshalNDR

func (o *SetJobRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetJobRequest) UnmarshalNDR

func (o *SetJobRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetJobResponse

type SetJobResponse struct {
	// Return: The RpcSetJob return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetJobResponse structure represents the RpcSetJob operation response

func (*SetJobResponse) MarshalNDR

func (o *SetJobResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetJobResponse) UnmarshalNDR

func (o *SetJobResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPortRequest

type SetPortRequest struct {
	// pName: A parameter that adheres to the specification in Print Server Name Parameters
	// (section 3.1.4.1.4).
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
	// pPortName: A pointer to a string that specifies the name of the printer port. For
	// rules governing port names, see section 2.2.4.10.
	PortName string `idl:"name:pPortName;string;pointer:unique" json:"port_name"`
	// pPortContainer: A parameter that adheres to the specification in PORT_CONTAINER Parameters
	// (section 3.1.4.1.8.5). The level as specified in the Level member of the PORT_CONTAINER
	// structure MUST be 0x00000003.
	PortContainer *PortContainer `idl:"name:pPortContainer" json:"port_container"`
}

SetPortRequest structure represents the RpcSetPort operation request

func (*SetPortRequest) MarshalNDR

func (o *SetPortRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPortRequest) UnmarshalNDR

func (o *SetPortRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPortResponse

type SetPortResponse struct {
	// Return: The RpcSetPort return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetPortResponse structure represents the RpcSetPort operation response

func (*SetPortResponse) MarshalNDR

func (o *SetPortResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPortResponse) UnmarshalNDR

func (o *SetPortResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterAttributesRequest

type SetPrinterAttributesRequest struct {
	Printer                     *Printer `idl:"name:hPrinter" json:"printer"`
	JobAttributeGroupBufferSize uint32   `idl:"name:jobAttributeGroupBufferSize" json:"job_attribute_group_buffer_size"`
	JobAttributeGroupBuffer     []byte   `idl:"name:jobAttributeGroupBuffer;size_is:(jobAttributeGroupBufferSize)" json:"job_attribute_group_buffer"`
}

SetPrinterAttributesRequest structure represents the RpcIppSetPrinterAttributes operation request

func (*SetPrinterAttributesRequest) MarshalNDR

func (*SetPrinterAttributesRequest) UnmarshalNDR

func (o *SetPrinterAttributesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterAttributesResponse

type SetPrinterAttributesResponse struct {
	ResponseBufferSize uint32 `idl:"name:ippResponseBufferSize;pointer:ref" json:"response_buffer_size"`
	ResponseBuffer     []byte `idl:"name:ippResponseBuffer;size_is:(, ippResponseBufferSize);pointer:ref" json:"response_buffer"`
	// Return: The RpcIppSetPrinterAttributes return value.
	Return int32 `idl:"name:Return" json:"return"`
}

SetPrinterAttributesResponse structure represents the RpcIppSetPrinterAttributes operation response

func (*SetPrinterAttributesResponse) MarshalNDR

func (*SetPrinterAttributesResponse) UnmarshalNDR

func (o *SetPrinterAttributesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterDataExRequest

type SetPrinterDataExRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pKeyName: A pointer to a string that specifies the key under which the value is to
	// be set. A key name is an arbitrary string defined by the printer driver associated
	// with the printer object. For rules governing key names, see section 2.2.4.7.
	KeyName string `idl:"name:pKeyName;string" json:"key_name"`
	// pValueName: A pointer to a string that identifies the data to set. For rules governing
	// value names, see section 2.2.4.18.
	//
	// For print servers, a value name is one of the predefined strings listed in Server
	// Handle Key Values (section 2.2.3.10).
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
	// Type: A code that indicates the type of data that is pointed to by the pData parameter.
	// The value SHOULD be one of the possible type codes defined by type values in section
	// 2.2.3.9. For rules governing registry type values, see section 2.2.4.15.
	Type uint32 `idl:"name:Type" json:"type"`
	// pData: A pointer to an array of bytes that contain the printer configuration data.
	// The type of the data in the buffer is specified by the Type parameter.
	Data []byte `idl:"name:pData;size_is:(cbData)" json:"data"`
	// cbData: The size, in bytes, of the pData array. This value SHOULD NOT be zero.
	DataLength uint32 `idl:"name:cbData" json:"data_length"`
}

SetPrinterDataExRequest structure represents the RpcSetPrinterDataEx operation request

func (*SetPrinterDataExRequest) MarshalNDR

func (o *SetPrinterDataExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterDataExRequest) UnmarshalNDR

func (o *SetPrinterDataExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterDataExResponse

type SetPrinterDataExResponse struct {
	// Return: The RpcSetPrinterDataEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetPrinterDataExResponse structure represents the RpcSetPrinterDataEx operation response

func (*SetPrinterDataExResponse) MarshalNDR

func (o *SetPrinterDataExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterDataExResponse) UnmarshalNDR

func (o *SetPrinterDataExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterDataRequest

type SetPrinterDataRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pValueName: A pointer to a string that identifies the configuration data to set.
	// For rules governing value names, see section 2.2.4.18.
	//
	// For print servers, the value name is one of the predefined strings listed in Server
	// Handle Key Values (section 2.2.3.10).
	ValueName string `idl:"name:pValueName;string" json:"value_name"`
	// Type: The type value for data pointed to by the pData parameter. This value SHOULD
	// be one of the type codes defined in section 2.2.3.9. For rules governing registry
	// type values, see section 2.2.4.15.
	Type uint32 `idl:"name:Type" json:"type"`
	// pData: A pointer to an array of bytes that contain the printer configuration data.
	// The type of the data in the buffer is specified by the Type parameter.
	Data []byte `idl:"name:pData;size_is:(cbData)" json:"data"`
	// cbData: The size, in bytes, of the pData array. This value SHOULD NOT be zero.
	DataLength uint32 `idl:"name:cbData" json:"data_length"`
}

SetPrinterDataRequest structure represents the RpcSetPrinterData operation request

func (*SetPrinterDataRequest) MarshalNDR

func (o *SetPrinterDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterDataRequest) UnmarshalNDR

func (o *SetPrinterDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterDataResponse

type SetPrinterDataResponse struct {
	// Return: The RpcSetPrinterData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetPrinterDataResponse structure represents the RpcSetPrinterData operation response

func (*SetPrinterDataResponse) MarshalNDR

func (o *SetPrinterDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterDataResponse) UnmarshalNDR

func (o *SetPrinterDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterRequest

type SetPrinterRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pPrinterContainer: A parameter specified in PRINTER_CONTAINER Parameters (section
	// 3.1.4.1.8.6). If the Command is 0, the Level member of the PRINTER_CONTAINER MUST
	// be 0x00000000 or a number from 0x00000002 to 0x00000007. If the Command parameter
	// is 1, 2, or 3, the Level member of the PRINTER_CONTAINER MUST be 0x00000000.
	PrinterContainer *PrinterContainer `idl:"name:pPrinterContainer" json:"printer_container"`
	// pDevModeContainer: A parameter specified in DEVMODE_CONTAINER Parameters (section
	// 3.1.4.1.8.1).
	DevModeContainer *DevModeContainer `idl:"name:pDevModeContainer" json:"dev_mode_container"`
	// pSecurityContainer: A parameter specified in SECURITY_CONTAINER Parameters (section
	// 3.1.4.1.8.7).
	SecurityContainer *SecurityContainer `idl:"name:pSecurityContainer" json:"security_container"`
	// Command: A value that specifies an action to perform. If this value is non-zero,
	// it is one of the printer control values in the following table, and the Level member
	// of the PRINTER_CONTAINER (section 2.2.1.2.9) structure that is pointed to by the
	// pPrinterContainer parameter MUST be 0x00000000.
	//
	//	+-----------------------------------+-------------------------------------------------------+
	//	|                                   |                                                       |
	//	|            NAME/VALUE             |                      DESCRIPTION                      |
	//	|                                   |                                                       |
	//	+-----------------------------------+-------------------------------------------------------+
	//	+-----------------------------------+-------------------------------------------------------+
	//	| PRINTER_CONTROL_PAUSE 0x00000001  | Pauses the printer object.                            |
	//	+-----------------------------------+-------------------------------------------------------+
	//	| PRINTER_CONTROL_RESUME 0x00000002 | Resumes a paused printer object.                      |
	//	+-----------------------------------+-------------------------------------------------------+
	//	| PRINTER_CONTROL_PURGE 0x00000003  | Deletes all print jobs queued for the printer object. |
	//	+-----------------------------------+-------------------------------------------------------+
	Command uint32 `idl:"name:Command" json:"command"`
}

SetPrinterRequest structure represents the RpcSetPrinter operation request

func (*SetPrinterRequest) MarshalNDR

func (o *SetPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterRequest) UnmarshalNDR

func (o *SetPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetPrinterResponse

type SetPrinterResponse struct {
	// Return: The RpcSetPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetPrinterResponse structure represents the RpcSetPrinter operation response

func (*SetPrinterResponse) MarshalNDR

func (o *SetPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetPrinterResponse) UnmarshalNDR

func (o *SetPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Size

type Size struct {
	// cx: The width, and it MUST be an integer greater than or equal to 0.
	X int32 `idl:"name:cx" json:"x"`
	// cy: The height, and it MUST be an integer greater than or equal to 0.
	Y int32 `idl:"name:cy" json:"y"`
}

Size structure represents SIZE RPC structure.

The SIZE structure defines the area of a form, with a width and height in thousandth-of-a-millimeter units.

func (*Size) MarshalNDR

func (o *Size) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Size) UnmarshalNDR

func (o *Size) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type StartDocPrinterRequest

type StartDocPrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14). The printer handle MUST NOT
	// be in use for printing another document at the time of this call.
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pDocInfoContainer: A parameter specified in DOC_INFO_CONTAINER Parameters (section
	// 3.1.4.1.8.2).
	DocInfoContainer *DocInfoContainer `idl:"name:pDocInfoContainer" json:"doc_info_container"`
}

StartDocPrinterRequest structure represents the RpcStartDocPrinter operation request

func (*StartDocPrinterRequest) MarshalNDR

func (o *StartDocPrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartDocPrinterRequest) UnmarshalNDR

func (o *StartDocPrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartDocPrinterResponse

type StartDocPrinterResponse struct {
	// pJobId: A pointer to a variable that receives a nonzero print job identifier. The
	// job MUST be created with an identifier that is unique for this printer.
	JobID uint32 `idl:"name:pJobId" json:"job_id"`
	// Return: The RpcStartDocPrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

StartDocPrinterResponse structure represents the RpcStartDocPrinter operation response

func (*StartDocPrinterResponse) MarshalNDR

func (o *StartDocPrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartDocPrinterResponse) UnmarshalNDR

func (o *StartDocPrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartPagePrinterRequest

type StartPagePrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
}

StartPagePrinterRequest structure represents the RpcStartPagePrinter operation request

func (*StartPagePrinterRequest) MarshalNDR

func (o *StartPagePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartPagePrinterRequest) UnmarshalNDR

func (o *StartPagePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StartPagePrinterResponse

type StartPagePrinterResponse struct {
	// Return: The RpcStartPagePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

StartPagePrinterResponse structure represents the RpcStartPagePrinter operation response

func (*StartPagePrinterResponse) MarshalNDR

func (o *StartPagePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StartPagePrinterResponse) UnmarshalNDR

func (o *StartPagePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StringContainer

type StringContainer struct {
	// cbBuf: This member specifies the size, in bytes, of the buffer that is pointed to
	// by the pszString member. The value of this number MUST be an even number.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pszString: A pointer to a string. The string that is referenced by this member MUST
	// NOT be empty.
	String string `idl:"name:pszString;size_is:((cbBuf/2));pointer:unique" json:"string"`
}

StringContainer structure represents STRING_CONTAINER RPC structure.

The STRING_CONTAINER structure contains a string.<10>

func (*StringContainer) MarshalNDR

func (o *StringContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StringContainer) UnmarshalNDR

func (o *StringContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SystemTimeContainer

type SystemTimeContainer struct {
	// cbBuf: The size, in bytes, of the buffer that is pointed to by the pSystemTime member.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
	// pSystemTime: A pointer to a SYSTEMTIME structure.
	SystemTime *dtyp.SystemTime `idl:"name:pSystemTime" json:"system_time"`
}

SystemTimeContainer structure represents SYSTEMTIME_CONTAINER RPC structure.

The SYSTEMTIME_CONTAINER structure is a container for a SYSTEMTIME structure ([MS-DTYP] section 2.3.13) that specifies a date and time using individual members for the month, day, year, weekday, hour, minute, second, and millisecond.<11>

func (*SystemTimeContainer) MarshalNDR

func (o *SystemTimeContainer) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SystemTimeContainer) UnmarshalNDR

func (o *SystemTimeContainer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfo

type V2NotifyInfo struct {
	// Version: The version of the structure. The value of this member MUST be 0x00000002.
	Version uint32 `idl:"name:Version" json:"version"`
	// Flags: A bit field that specifies the state of the notification structure.
	//
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                          |                                                                                  |
	//	|                NAME/VALUE                |                                   DESCRIPTION                                    |
	//	|                                          |                                                                                  |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_NOTIFY_INFO_DISCARDED 0x00000001 | An overflow or error has occurred, and notifications have been lost. The print   |
	//	|                                          | server MUST NOT send additional notifications until the client has made a call   |
	//	|                                          | to RpcRouterRefreshPrinterChangeNotification (section 3.1.4.10.5).               |
	//	+------------------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// Count: The number of RPC_V2_NOTIFY_INFO_DATA structures (section 2.2.1.13.4) in the
	// aData array.
	Count uint32 `idl:"name:Count" json:"count"`
	// aData: An array of RPC_V2_NOTIFY_INFO_DATA structures, each of which identifies a
	// single print job or printer information member and specifies the current data for
	// that member.
	Data []*V2NotifyInfoData `idl:"name:aData;size_is:(Count);pointer:unique" json:"data"`
}

V2NotifyInfo structure represents RPC_V2_NOTIFY_INFO RPC structure.

The RPC_V2_NOTIFY_INFO structure specifies printer or print job notification information.<76>

func (*V2NotifyInfo) MarshalNDR

func (o *V2NotifyInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2NotifyInfo) NDRSizeInfo

func (o *V2NotifyInfo) NDRSizeInfo() []uint64

func (*V2NotifyInfo) UnmarshalNDR

func (o *V2NotifyInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfoData

type V2NotifyInfoData struct {
	// Type: The type of notification information that is contained in this structure. This
	// MUST be one of the following values:
	//
	//	+----------------------------+-------------------------------+
	//	|                            |                               |
	//	|         NAME/VALUE         |          DESCRIPTION          |
	//	|                            |                               |
	//	+----------------------------+-------------------------------+
	//	+----------------------------+-------------------------------+
	//	| PRINTER_NOTIFY_TYPE 0x0000 | Printer-related notifications |
	//	+----------------------------+-------------------------------+
	//	| JOB_NOTIFY_TYPE 0x0001     | Job-related notifications     |
	//	+----------------------------+-------------------------------+
	Type uint16 `idl:"name:Type" json:"type"`
	// Field: The member that changed using the printer notification values and job notification
	// values in sections 2.2.3.8 and 2.2.3.3.
	Field              uint16 `idl:"name:Field" json:"field"`
	NotifyInfoDataType uint32 `idl:"name:NotifyInfoDataType" json:"notify_info_data_type"`
	// Id: The job identifier if the Type member specifies JOB_NOTIFY_TYPE; otherwise, this
	// value MUST be ignored.
	ID uint32 `idl:"name:Id" json:"id"`
	// Data: The data determined by the values of the Type and Reserved members of this
	// structure. The data is in an RPC_V2_NOTIFY_INFO_DATA_DATA structure using the data
	// type specified by the value of the Reserved member.
	Data *V2NotifyInfoDataData `idl:"name:Data;switch_is:(NotifyInfoDataType 65535 &)" json:"data"`
}

V2NotifyInfoData structure represents RPC_V2_NOTIFY_INFO_DATA RPC structure.

The RPC_V2_NOTIFY_INFO_DATA structure specifies printer or print job notification information data.<77>

func (*V2NotifyInfoData) MarshalNDR

func (o *V2NotifyInfoData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2NotifyInfoData) UnmarshalNDR

func (o *V2NotifyInfoData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfoDataData

type V2NotifyInfoDataData struct {
	// Types that are assignable to Value
	//
	// *V2NotifyInfoDataData_String
	// *V2NotifyInfoDataData_Data
	// *V2NotifyInfoDataData_SystemTime
	// *V2NotifyInfoDataData_DevMode
	// *V2NotifyInfoDataData_SecurityDescriptor
	Value is_V2NotifyInfoDataData `json:"value"`
}

V2NotifyInfoDataData structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union.

func (*V2NotifyInfoDataData) GetValue

func (o *V2NotifyInfoDataData) GetValue() any

func (*V2NotifyInfoDataData) MarshalUnionNDR

func (o *V2NotifyInfoDataData) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*V2NotifyInfoDataData) NDRSwitchValue

func (o *V2NotifyInfoDataData) NDRSwitchValue(sw uint32) uint32

func (*V2NotifyInfoDataData) UnmarshalUnionNDR

func (o *V2NotifyInfoDataData) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type V2NotifyInfoDataData_Data

type V2NotifyInfoDataData_Data struct {
	Data []uint32 `idl:"name:dwData" json:"data"`
}

V2NotifyInfoDataData_Data structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union arm.

It has following labels: 1

func (*V2NotifyInfoDataData_Data) MarshalNDR

func (o *V2NotifyInfoDataData_Data) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2NotifyInfoDataData_Data) UnmarshalNDR

func (o *V2NotifyInfoDataData_Data) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfoDataData_DevMode

type V2NotifyInfoDataData_DevMode struct {
	DevMode *DevModeContainer `idl:"name:DevMode" json:"dev_mode"`
}

V2NotifyInfoDataData_DevMode structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union arm.

It has following labels: 3

func (*V2NotifyInfoDataData_DevMode) MarshalNDR

func (*V2NotifyInfoDataData_DevMode) UnmarshalNDR

func (o *V2NotifyInfoDataData_DevMode) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfoDataData_SecurityDescriptor

type V2NotifyInfoDataData_SecurityDescriptor struct {
	SecurityDescriptor *SecurityContainer `idl:"name:SecurityDescriptor" json:"security_descriptor"`
}

V2NotifyInfoDataData_SecurityDescriptor structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union arm.

It has following labels: 5

func (*V2NotifyInfoDataData_SecurityDescriptor) MarshalNDR

func (*V2NotifyInfoDataData_SecurityDescriptor) UnmarshalNDR

type V2NotifyInfoDataData_String

type V2NotifyInfoDataData_String struct {
	String *StringContainer `idl:"name:String" json:"string"`
}

V2NotifyInfoDataData_String structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union arm.

It has following labels: 2

func (*V2NotifyInfoDataData_String) MarshalNDR

func (*V2NotifyInfoDataData_String) UnmarshalNDR

func (o *V2NotifyInfoDataData_String) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyInfoDataData_SystemTime

type V2NotifyInfoDataData_SystemTime struct {
	SystemTime *SystemTimeContainer `idl:"name:SystemTime" json:"system_time"`
}

V2NotifyInfoDataData_SystemTime structure represents RPC_V2_NOTIFY_INFO_DATA_DATA RPC union arm.

It has following labels: 4

func (*V2NotifyInfoDataData_SystemTime) MarshalNDR

func (*V2NotifyInfoDataData_SystemTime) UnmarshalNDR

type V2NotifyOptions

type V2NotifyOptions struct {
	// Version: The version of the structure. The value of this member MUST be 0x00000002.
	Version uint32 `idl:"name:Version" json:"version"`

	// Count: The number of RPC_V2_NOTIFY_OPTIONS_TYPE structures (section 2.2.1.13.2) in
	// the array pointed to by the pTypes member.
	Count uint32 `idl:"name:Count" json:"count"`
	// pTypes: A pointer to an array of RPC_V2_NOTIFY_OPTIONS_TYPE structures, each of which
	// identifies a set of print job or printer information members to be monitored by a
	// printer change notification object.
	Types []*V2NotifyOptionsType `idl:"name:pTypes;size_is:(Count);pointer:unique" json:"types"`
	// contains filtered or unexported fields
}

V2NotifyOptions structure represents RPC_V2_NOTIFY_OPTIONS RPC structure.

The RPC_V2_NOTIFY_OPTIONS structure specifies options for a change notification object that monitors a printer or print server for any changes in state.<73>

func (*V2NotifyOptions) MarshalNDR

func (o *V2NotifyOptions) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2NotifyOptions) UnmarshalNDR

func (o *V2NotifyOptions) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2NotifyOptionsType

type V2NotifyOptionsType struct {
	// Type: The value of this member specifies the type of notification to watch for. The
	// value of this member MUST be one of the constant values from the following table.
	//
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	|                            |                                                                                  |
	//	|         NAME/VALUE         |                                   DESCRIPTION                                    |
	//	|                            |                                                                                  |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| PRINTER_NOTIFY_TYPE 0x0000 | Indicates that the members specified in the array that is pointed to by the      |
	//	|                            | pFields member are printer notification constants.                               |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| JOB_NOTIFY_TYPE 0x0001     | Indicates that the members specified in the array that is pointed to by the      |
	//	|                            | pFields member are job notification constants.                                   |
	//	+----------------------------+----------------------------------------------------------------------------------+
	//	| SERVER_NOTIFY_TYPE 0x0002  | Indicates that the members specified in the array that is pointed to by the      |
	//	|                            | pFields member are server notification constants.<75>                            |
	//	+----------------------------+----------------------------------------------------------------------------------+
	Type uint16 `idl:"name:Type" json:"type"`

	// Count: The number of elements in the pFields array.
	Count uint32 `idl:"name:Count" json:"count"`
	// pFields: A pointer to an array that MUST identify the job or printer information
	// members to be monitored. The array MUST consist entirely of elements that are either
	// job notification values (section 2.2.3.3) or printer notification values (section
	// 2.2.3.8), depending on the value of the Type member. The two types of notification
	// values MUST NOT be mixed within a given instance of the array.
	Fields []uint16 `idl:"name:pFields;size_is:(Count);pointer:unique" json:"fields"`
	// contains filtered or unexported fields
}

V2NotifyOptionsType structure represents RPC_V2_NOTIFY_OPTIONS_TYPE RPC structure.

The RPC_V2_NOTIFY_OPTIONS_TYPE structure specifies the set of printer or job information members to be monitored by a printer change notification object.<74>

func (*V2NotifyOptionsType) MarshalNDR

func (o *V2NotifyOptionsType) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2NotifyOptionsType) UnmarshalNDR

func (o *V2NotifyOptionsType) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type V2ReplyPrinter

type V2ReplyPrinter struct {
	// Types that are assignable to Value
	//
	// *V2ReplyPrinter_Info
	Value is_V2ReplyPrinter `json:"value"`
}

V2ReplyPrinter structure represents RPC_V2_UREPLY_PRINTER RPC union.

The RPC_V2_UREPLY_PRINTER union defines printer notification responses.<79>

func (*V2ReplyPrinter) GetValue

func (o *V2ReplyPrinter) GetValue() any

func (*V2ReplyPrinter) MarshalUnionNDR

func (o *V2ReplyPrinter) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*V2ReplyPrinter) NDRSwitchValue

func (o *V2ReplyPrinter) NDRSwitchValue(sw uint32) uint32

func (*V2ReplyPrinter) UnmarshalUnionNDR

func (o *V2ReplyPrinter) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type V2ReplyPrinter_Info

type V2ReplyPrinter_Info struct {
	// pInfo: A pointer to an RPC_V2_NOTIFY_INFO structure, which MUST contain notification
	// information.
	Info *V2NotifyInfo `idl:"name:pInfo" json:"info"`
}

V2ReplyPrinter_Info structure represents RPC_V2_UREPLY_PRINTER RPC union arm.

It has following labels: 0

func (*V2ReplyPrinter_Info) MarshalNDR

func (o *V2ReplyPrinter_Info) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*V2ReplyPrinter_Info) UnmarshalNDR

func (o *V2ReplyPrinter_Info) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type WaitForPrinterChangeRequest

type WaitForPrinterChangeRequest struct {
	// hPrinter: A handle to a printer object or server object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// Flags: The change notifications to wait for. The value of this parameter is a bitwise
	// OR of one or more printer change values, defined in sections 2.2.3.6.1 and 2.2.3.6.2.
	// For rules governing printer change values, see section 2.2.4.13.
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

WaitForPrinterChangeRequest structure represents the RpcWaitForPrinterChange operation request

func (*WaitForPrinterChangeRequest) MarshalNDR

func (*WaitForPrinterChangeRequest) UnmarshalNDR

func (o *WaitForPrinterChangeRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type WaitForPrinterChangeResponse

type WaitForPrinterChangeResponse struct {
	FlagsOut uint32 `idl:"name:pFlagsOut" json:"flags_out"`
	// Return: The RpcWaitForPrinterChange return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

WaitForPrinterChangeResponse structure represents the RpcWaitForPrinterChange operation response

func (*WaitForPrinterChangeResponse) MarshalNDR

func (*WaitForPrinterChangeResponse) UnmarshalNDR

func (o *WaitForPrinterChangeResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type WinspoolClient

type WinspoolClient interface {

	// RpcEnumPrinters enumerates available printers, print servers, domains, or print providers.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion and SHOULD<264> return a nonzero Windows error code ([MS-ERREF] section
	// 2.2) to indicate failure.
	EnumPrinters(context.Context, *EnumPrintersRequest, ...dcerpc.CallOption) (*EnumPrintersResponse, error)

	// RpcOpenPrinter retrieves a handle for a printer, port, port monitor, print job, or
	// print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	OpenPrinter(context.Context, *OpenPrinterRequest, ...dcerpc.CallOption) (*OpenPrinterResponse, error)

	// RpcSetJob pauses, resumes, cancels, or restarts a print job. It also sets print job
	// parameters, such as the job priority and the document name.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetJob(context.Context, *SetJobRequest, ...dcerpc.CallOption) (*SetJobResponse, error)

	// RpcGetJob retrieves information about a specified print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetJob(context.Context, *GetJobRequest, ...dcerpc.CallOption) (*GetJobResponse, error)

	// RpcEnumJobs retrieves information about a specified set of print jobs for a specified
	// printer or port.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumJobs(context.Context, *EnumJobsRequest, ...dcerpc.CallOption) (*EnumJobsResponse, error)

	// RpcAddPrinter adds a printer to the list of supported printers for a specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinter(context.Context, *AddPrinterRequest, ...dcerpc.CallOption) (*AddPrinterResponse, error)

	// RpcDeletePrinter is a method that deletes the specified printer object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinter(context.Context, *DeletePrinterRequest, ...dcerpc.CallOption) (*DeletePrinterResponse, error)

	// RpcSetPrinter sets the data or state of a specified printer by pausing or resuming
	// printing or by clearing all print jobs.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinter(context.Context, *SetPrinterRequest, ...dcerpc.CallOption) (*SetPrinterResponse, error)

	// RpcGetPrinter retrieves information about a specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinter(context.Context, *GetPrinterRequest, ...dcerpc.CallOption) (*GetPrinterResponse, error)

	// RpcAddPrinterDriver installs a printer driver on the print server and links the configuration,
	// data, and printer driver files.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterDriver(context.Context, *AddPrinterDriverRequest, ...dcerpc.CallOption) (*AddPrinterDriverResponse, error)

	// RpcEnumPrinterDrivers enumerates the printer drivers installed on a specified print
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterDrivers(context.Context, *EnumPrinterDriversRequest, ...dcerpc.CallOption) (*EnumPrinterDriversResponse, error)

	// RpcGetPrinterDriver retrieves printer driver data for the specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriver(context.Context, *GetPrinterDriverRequest, ...dcerpc.CallOption) (*GetPrinterDriverResponse, error)

	// RpcGetPrinterDriverDirectory retrieves the path of the printer driver directory.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriverDirectory(context.Context, *GetPrinterDriverDirectoryRequest, ...dcerpc.CallOption) (*GetPrinterDriverDirectoryResponse, error)

	// RpcDeletePrinterDriver removes the specified printer driver from the list of supported
	// drivers for a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDriver(context.Context, *DeletePrinterDriverRequest, ...dcerpc.CallOption) (*DeletePrinterDriverResponse, error)

	// RpcAddPrintProcessor installs a print processor on the specified server and adds
	// its name to an internal list of supported print processors.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrintProcessor(context.Context, *AddPrintProcessorRequest, ...dcerpc.CallOption) (*AddPrintProcessorResponse, error)

	// RpcEnumPrintProcessors enumerates the print processors installed on a specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrintProcessors(context.Context, *EnumPrintProcessorsRequest, ...dcerpc.CallOption) (*EnumPrintProcessorsResponse, error)

	// RpcGetPrintProcessorDirectory retrieves the path for the print processor on the specified
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrintProcessorDirectory(context.Context, *GetPrintProcessorDirectoryRequest, ...dcerpc.CallOption) (*GetPrintProcessorDirectoryResponse, error)

	// RpcStartDocPrinter notifies the print server that a document is being spooled for
	// printing.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	StartDocPrinter(context.Context, *StartDocPrinterRequest, ...dcerpc.CallOption) (*StartDocPrinterResponse, error)

	// RpcStartPagePrinter notifies the spooler that a page is about to be printed on the
	// specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	StartPagePrinter(context.Context, *StartPagePrinterRequest, ...dcerpc.CallOption) (*StartPagePrinterResponse, error)

	// RpcWritePrinter sends data to the print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	WritePrinter(context.Context, *WritePrinterRequest, ...dcerpc.CallOption) (*WritePrinterResponse, error)

	// RpcEndPagePrinter notifies the print server that the application is at the end of
	// a page in a print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EndPagePrinter(context.Context, *EndPagePrinterRequest, ...dcerpc.CallOption) (*EndPagePrinterResponse, error)

	// RpcAbortPrinter aborts the currently spooling print document.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AbortPrinter(context.Context, *AbortPrinterRequest, ...dcerpc.CallOption) (*AbortPrinterResponse, error)

	// RpcReadPrinter retrieves data from the specified job or port.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReadPrinter(context.Context, *ReadPrinterRequest, ...dcerpc.CallOption) (*ReadPrinterResponse, error)

	// RpcEndDocPrinter notifies the print server that the application is at the end of
	// the current print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EndDocPrinter(context.Context, *EndDocPrinterRequest, ...dcerpc.CallOption) (*EndDocPrinterResponse, error)

	// RpcAddJob does not perform any function but returns a nonzero Windows error code
	// to indicate failure.
	//
	// Return Values: This method MUST return a nonzero Windows error code to indicate failure
	// [MS-ERREF].
	AddJob(context.Context, *AddJobRequest, ...dcerpc.CallOption) (*AddJobResponse, error)

	// RpcScheduleJob does not perform any function, but returns a nonzero Windows error
	// code to indicate failure.
	//
	// Return Values: This method MUST return a nonzero Windows error code to indicate failure
	// [MS-ERREF].
	ScheduleJob(context.Context, *ScheduleJobRequest, ...dcerpc.CallOption) (*ScheduleJobResponse, error)

	// RpcGetPrinterData retrieves printer configuration data for a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterData(context.Context, *GetPrinterDataRequest, ...dcerpc.CallOption) (*GetPrinterDataResponse, error)

	// RpcSetPrinterData sets the configuration data for a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinterData(context.Context, *SetPrinterDataRequest, ...dcerpc.CallOption) (*SetPrinterDataResponse, error)

	// RpcWaitForPrinterChange retrieves information about the most recent change notification
	// that is associated with a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	WaitForPrinterChange(context.Context, *WaitForPrinterChangeRequest, ...dcerpc.CallOption) (*WaitForPrinterChangeResponse, error)

	// RpcClosePrinter closes a handle to a printer object, server object, job object, or
	// port object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ClosePrinter(context.Context, *ClosePrinterRequest, ...dcerpc.CallOption) (*ClosePrinterResponse, error)

	// RpcAddForm adds a form name to the list of supported forms.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddForm(context.Context, *AddFormRequest, ...dcerpc.CallOption) (*AddFormResponse, error)

	// RpcDeleteForm removes a form name from the list of supported forms.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteForm(context.Context, *DeleteFormRequest, ...dcerpc.CallOption) (*DeleteFormResponse, error)

	// RpcGetForm retrieves information about a specified form.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetForm(context.Context, *GetFormRequest, ...dcerpc.CallOption) (*GetFormResponse, error)

	// RpcSetForm replaces the form information for the specified form.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetForm(context.Context, *SetFormRequest, ...dcerpc.CallOption) (*SetFormResponse, error)

	// The RpcEnumForms method enumerates the forms that the specified printer supports.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumForms(context.Context, *EnumFormsRequest, ...dcerpc.CallOption) (*EnumFormsResponse, error)

	// RpcEnumPorts enumerates the ports that are available for printing on a specified
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPorts(context.Context, *EnumPortsRequest, ...dcerpc.CallOption) (*EnumPortsResponse, error)

	// The RpcEnumMonitors method retrieves information about the port monitors installed
	// on the specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumMonitors(context.Context, *EnumMonitorsRequest, ...dcerpc.CallOption) (*EnumMonitorsResponse, error)

	// Removes a port.<357>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePort(context.Context, *DeletePortRequest, ...dcerpc.CallOption) (*DeletePortResponse, error)

	// RpcCreatePrinterIC is called by the Graphics Device Interface (GDI) to create an
	// information context for a specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	CreatePrinterIC(context.Context, *CreatePrinterICRequest, ...dcerpc.CallOption) (*CreatePrinterICResponse, error)

	// RpcPlayGdiScriptOnPrinterIC returns font information for a printer connection. UNIVERSAL_FONT_ID
	// (section 2.2.2.12) structures are used to identify the fonts.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	PlayGDIScriptOnPrinterIC(context.Context, *PlayGDIScriptOnPrinterICRequest, ...dcerpc.CallOption) (*PlayGDIScriptOnPrinterICResponse, error)

	// RpcDeletePrinterIC deletes a printer information context.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterIC(context.Context, *DeletePrinterICRequest, ...dcerpc.CallOption) (*DeletePrinterICResponse, error)

	// RpcAddMonitor installs a local port monitor and links the configuration, data, and
	// monitor files.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddMonitor(context.Context, *AddMonitorRequest, ...dcerpc.CallOption) (*AddMonitorResponse, error)

	// RpcDeleteMonitor removes a port monitor.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteMonitor(context.Context, *DeleteMonitorRequest, ...dcerpc.CallOption) (*DeleteMonitorResponse, error)

	// RpcDeletePrintProcessor removes a print processor.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrintProcessor(context.Context, *DeletePrintProcessorRequest, ...dcerpc.CallOption) (*DeletePrintProcessorResponse, error)

	// RpcEnumPrintProcessorDatatypes enumerates the data types that a specified print processor
	// supports.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrintProcessorDataTypes(context.Context, *EnumPrintProcessorDataTypesRequest, ...dcerpc.CallOption) (*EnumPrintProcessorDataTypesResponse, error)

	// RpcResetPrinter resets the data type and device mode (For more information, see [DEVMODE])
	// values to use for printing documents submitted by the RpcStartDocPrinter (section
	// 3.1.4.9.1) method.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ResetPrinter(context.Context, *ResetPrinterRequest, ...dcerpc.CallOption) (*ResetPrinterResponse, error)

	// RpcGetPrinterDriver2 retrieves printer driver data for the specified printer.<334>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriver2(context.Context, *GetPrinterDriver2Request, ...dcerpc.CallOption) (*GetPrinterDriver2Response, error)

	// The RpcFindClosePrinterChangeNotification method closes a change notification object
	// created by RpcRemoteFindFirstPrinterChangeNotification (section 3.1.4.10.3) or RpcRemoteFindFirstPrinterChangeNotificationEx
	// (section 3.1.4.10.4).<380> The printer or print server associated with the change
	// notification object is no longer monitored by that object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	FindClosePrinterChangeNotification(context.Context, *FindClosePrinterChangeNotificationRequest, ...dcerpc.CallOption) (*FindClosePrinterChangeNotificationResponse, error)

	// RpcReplyOpenPrinter establishes a context handle from a print server to a print client.<412>
	// The server uses the RPC context handle returned by this method to send notification
	// data to the client machine.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReplyOpenPrinter(context.Context, *ReplyOpenPrinterRequest, ...dcerpc.CallOption) (*ReplyOpenPrinterResponse, error)

	// RpcRouterReplyPrinter handles a notification from a print server.<414>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterReplyPrinter(context.Context, *RouterReplyPrinterRequest, ...dcerpc.CallOption) (*RouterReplyPrinterResponse, error)

	// RpcReplyClosePrinter closes the notification channel between a print server and a
	// print client.<415>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReplyClosePrinter(context.Context, *ReplyClosePrinterRequest, ...dcerpc.CallOption) (*ReplyClosePrinterResponse, error)

	// RpcAddPortEx adds a port name to the list of supported ports.<359>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPortEx(context.Context, *AddPortExRequest, ...dcerpc.CallOption) (*AddPortExResponse, error)

	// RpcRemoteFindFirstPrinterChangeNotification creates a remote change notification
	// object that monitors changes to printer objects and sends change notifications to
	// a print client using either RpcRouterReplyPrinter (section 3.2.4.1.2) or RpcRouterReplyPrinterEx
	// (section 3.2.4.1.4).
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RemoteFindFirstPrinterChangeNotification(context.Context, *RemoteFindFirstPrinterChangeNotificationRequest, ...dcerpc.CallOption) (*RemoteFindFirstPrinterChangeNotificationResponse, error)

	// RpcRemoteFindFirstPrinterChangeNotificationEx creates a remote change notification
	// object that monitors changes to printer objects and sends change notifications to
	// a print client using either RpcRouterReplyPrinter (section 3.2.4.1.2) or RpcRouterReplyPrinterEx
	// (section 3.2.4.1.4).
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RemoteFindFirstPrinterChangeNotificationEx(context.Context, *RemoteFindFirstPrinterChangeNotificationExRequest, ...dcerpc.CallOption) (*RemoteFindFirstPrinterChangeNotificationExResponse, error)

	// RpcRouterReplyPrinterEx handles a notification from a print server.<416>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterReplyPrinterEx(context.Context, *RouterReplyPrinterExRequest, ...dcerpc.CallOption) (*RouterReplyPrinterExResponse, error)

	// RpcRouterRefreshPrinterChangeNotification returns change notification information.<383>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterRefreshPrinterChangeNotification(context.Context, *RouterRefreshPrinterChangeNotificationRequest, ...dcerpc.CallOption) (*RouterRefreshPrinterChangeNotificationResponse, error)

	// RpcOpenPrinterEx retrieves a handle for a printer, port, port monitor, print job,
	// or print server.<287>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	OpenPrinterEx(context.Context, *OpenPrinterExRequest, ...dcerpc.CallOption) (*OpenPrinterExResponse, error)

	// RpcAddPrinterEx installs a printer on the print server.<288>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterEx(context.Context, *AddPrinterExRequest, ...dcerpc.CallOption) (*AddPrinterExResponse, error)

	// RpcSetPort sets the status associated with a printer port.<361>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPort(context.Context, *SetPortRequest, ...dcerpc.CallOption) (*SetPortResponse, error)

	// RpcEnumPrinterData enumerates configuration data for a specified printer.<292>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterData(context.Context, *EnumPrinterDataRequest, ...dcerpc.CallOption) (*EnumPrinterDataResponse, error)

	// RpcDeletePrinterData deletes specified configuration data for a printer.<294>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterData(context.Context, *DeletePrinterDataRequest, ...dcerpc.CallOption) (*DeletePrinterDataResponse, error)

	// RpcSetPrinterDataEx sets the configuration data for a printer or print server.<298>
	// This method is similar to RpcSetPrinterData (section 3.1.4.2.8) but additionally
	// allows the caller to specify the registry key under which to store the data.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinterDataEx(context.Context, *SetPrinterDataExRequest, ...dcerpc.CallOption) (*SetPrinterDataExResponse, error)

	// RpcGetPrinterDataEx retrieves configuration data for the specified printer or print
	// server.<301> This method is similar to RpcGetPrinterData (section 3.1.4.2.7), but
	// it also allows the caller to specify the registry key from which to retrieve the
	// data.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDataEx(context.Context, *GetPrinterDataExRequest, ...dcerpc.CallOption) (*GetPrinterDataExResponse, error)

	// RpcEnumPrinterDataEx enumerates all value names and data for a specified printer
	// and key.<304> This method is similar to RpcEnumPrinterData (section 3.1.4.2.16) but
	// also allows the caller to specify the registry key from which to enumerate the data,
	// and allows retrieving several values in a single call.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterDataEx(context.Context, *EnumPrinterDataExRequest, ...dcerpc.CallOption) (*EnumPrinterDataExResponse, error)

	// RpcEnumPrinterKey enumerates the subkeys of a specified key for a specified printer.<305>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterKey(context.Context, *EnumPrinterKeyRequest, ...dcerpc.CallOption) (*EnumPrinterKeyResponse, error)

	// RpcDeletePrinterDataEx deletes a specified value from a printer's configuration data,
	// which consists of a set of named and typed values stored in a hierarchy of registry
	// keys.<306>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDataEx(context.Context, *DeletePrinterDataExRequest, ...dcerpc.CallOption) (*DeletePrinterDataExResponse, error)

	// RpcDeletePrinterKey deletes a specified key and all of its subkeys for a specified
	// printer.<309>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterKey(context.Context, *DeletePrinterKeyRequest, ...dcerpc.CallOption) (*DeletePrinterKeyResponse, error)

	// RpcDeletePrinterDriverEx removes the specified printer driver from the list of supported
	// drivers for a server and deletes the files associated with it.<339> This method can
	// also be used to delete specific versions of a driver.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDriverEx(context.Context, *DeletePrinterDriverExRequest, ...dcerpc.CallOption) (*DeletePrinterDriverExResponse, error)

	// RpcAddPerMachineConnection adds a remote printer name to the list of supported printer
	// connections for every user who locally logs onto the computer running the print server.<311>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPerMachineConnection(context.Context, *AddPerMachineConnectionRequest, ...dcerpc.CallOption) (*AddPerMachineConnectionResponse, error)

	// RpcDeletePerMachineConnection deletes information about a printer connection.<314>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePerMachineConnection(context.Context, *DeletePerMachineConnectionRequest, ...dcerpc.CallOption) (*DeletePerMachineConnectionResponse, error)

	// Enumerates each of the connections and copies PRINTER_INFO_4 (section 2.2.1.10.5)
	// structures for all the per-machine connections into the buffer pPrinterEnum.<316>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPerMachineConnections(context.Context, *EnumPerMachineConnectionsRequest, ...dcerpc.CallOption) (*EnumPerMachineConnectionsResponse, error)

	// RpcXcvData provides an extensible mechanism by which a client can control ports on
	// the server and exchange port specific commands and data with the server.<363>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate that the
	// print server successfully called the port monitor's XcvData method, or a nonzero
	// Windows error code to indicate failure [MS-ERREF].
	XcvData(context.Context, *XcvDataRequest, ...dcerpc.CallOption) (*XcvDataResponse, error)

	// RpcAddPrinterDriverEx installs a printer driver on the print server.<342> This method
	// performs a function similar to RpcAddPrinterDriver (section 3.1.4.4.1) and is also
	// used to specify options that permit printer driver upgrade, printer driver downgrade,
	// copying of newer files only, and copying of all files regardless of their time stamps.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterDriverEx(context.Context, *AddPrinterDriverExRequest, ...dcerpc.CallOption) (*AddPrinterDriverExResponse, error)

	// RpcFlushPrinter is used by printer drivers to send a buffer of bytes to a specified
	// port to cleanly abort a print job.<378> It also allows delaying the I/O line to the
	// printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	FlushPrinter(context.Context, *FlushPrinterRequest, ...dcerpc.CallOption) (*FlushPrinterResponse, error)

	// The RpcSendRecvBidiData method sends and receives bidirectional data. This method
	// is used to communicate with port monitors that support such data.<317>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SendRecvBIDIData(context.Context, *SendRecvBIDIDataRequest, ...dcerpc.CallOption) (*SendRecvBIDIDataResponse, error)

	// RpcGetCorePrinterDrivers gets the GUIDs, versions, and publish dates of the specified
	// core printer drivers, and the paths to their packages.<347>
	//
	// Return Values: This method MUST return zero or an HRESULT success value ([MS-ERREF]
	// section 2.1) to indicate successful completion or an HRESULT error value to indicate
	// failure.
	//
	// Exceptions Thrown: This method MUST NOT throw any exceptions other than those that
	// are thrown by the underlying RPC protocol [MS-RPCE].
	GetCorePrinterDrivers(context.Context, *GetCorePrinterDriversRequest, ...dcerpc.CallOption) (*GetCorePrinterDriversResponse, error)

	// RpcGetPrinterDriverPackagePath gets the path to the specified printer driver package.<349>
	//
	// Return Values: This method MUST return zero or an HRESULT success value ([MS-ERREF]
	// section 2.1) to indicate successful completion or an HRESULT error value to indicate
	// failure.
	//
	// Exceptions Thrown: This method MUST NOT throw any exceptions other than those that
	// are thrown by the underlying RPC protocol [MS-RPCE].
	GetPrinterDriverPackagePath(context.Context, *GetPrinterDriverPackagePathRequest, ...dcerpc.CallOption) (*GetPrinterDriverPackagePathResponse, error)

	// RpcGetJobNamedPropertyValue retrieves the current value of the specified Job Named
	// Property (section 3.1.1).<397>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetJobNamedPropertyValue(context.Context, *GetJobNamedPropertyValueRequest, ...dcerpc.CallOption) (*GetJobNamedPropertyValueResponse, error)

	// RpcSetJobNamedProperty creates a new Job Named Property (section 3.1.1), or changes
	// the value of an existing Job Named Property for the specified print job.<398>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetJobNamedProperty(context.Context, *SetJobNamedPropertyRequest, ...dcerpc.CallOption) (*SetJobNamedPropertyResponse, error)

	// RpcDeleteJobNamedProperty deletes an existing Job Named Property (section 3.1.1)
	// for the specified print job.<399>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteJobNamedProperty(context.Context, *DeleteJobNamedPropertyRequest, ...dcerpc.CallOption) (*DeleteJobNamedPropertyResponse, error)

	// RpcEnumJobNamedProperties enumerates the Job Named Properties (section 3.1.1) for
	// the specified print job.<400>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumJobNamedProperties(context.Context, *EnumJobNamedPropertiesRequest, ...dcerpc.CallOption) (*EnumJobNamedPropertiesResponse, error)

	// RpcLogJobInfoForBranchOffice operation.
	LogJobInfoForBranchOffice(context.Context, *LogJobInfoForBranchOfficeRequest, ...dcerpc.CallOption) (*LogJobInfoForBranchOfficeResponse, error)

	// RpcRegeneratePrintDeviceCapabilities operation.
	RegeneratePrintDeviceCapabilities(context.Context, *RegeneratePrintDeviceCapabilitiesRequest, ...dcerpc.CallOption) (*RegeneratePrintDeviceCapabilitiesResponse, error)

	// RpcIppCreateJobOnPrinter operation.
	CreateJobOnPrinter(context.Context, *CreateJobOnPrinterRequest, ...dcerpc.CallOption) (*CreateJobOnPrinterResponse, error)

	// RpcIppGetJobAttributes operation.
	GetJobAttributes(context.Context, *GetJobAttributesRequest, ...dcerpc.CallOption) (*GetJobAttributesResponse, error)

	// RpcIppSetJobAttributes operation.
	SetJobAttributes(context.Context, *SetJobAttributesRequest, ...dcerpc.CallOption) (*SetJobAttributesResponse, error)

	// RpcIppGetPrinterAttributes operation.
	GetPrinterAttributes(context.Context, *GetPrinterAttributesRequest, ...dcerpc.CallOption) (*GetPrinterAttributesResponse, error)

	// RpcIppSetPrinterAttributes operation.
	SetPrinterAttributes(context.Context, *SetPrinterAttributesRequest, ...dcerpc.CallOption) (*SetPrinterAttributesResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

winspool interface.

func NewWinspoolClient

func NewWinspoolClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (WinspoolClient, error)

type WinspoolServer

type WinspoolServer interface {

	// RpcEnumPrinters enumerates available printers, print servers, domains, or print providers.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion and SHOULD<264> return a nonzero Windows error code ([MS-ERREF] section
	// 2.2) to indicate failure.
	EnumPrinters(context.Context, *EnumPrintersRequest) (*EnumPrintersResponse, error)

	// RpcOpenPrinter retrieves a handle for a printer, port, port monitor, print job, or
	// print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	OpenPrinter(context.Context, *OpenPrinterRequest) (*OpenPrinterResponse, error)

	// RpcSetJob pauses, resumes, cancels, or restarts a print job. It also sets print job
	// parameters, such as the job priority and the document name.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetJob(context.Context, *SetJobRequest) (*SetJobResponse, error)

	// RpcGetJob retrieves information about a specified print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetJob(context.Context, *GetJobRequest) (*GetJobResponse, error)

	// RpcEnumJobs retrieves information about a specified set of print jobs for a specified
	// printer or port.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumJobs(context.Context, *EnumJobsRequest) (*EnumJobsResponse, error)

	// RpcAddPrinter adds a printer to the list of supported printers for a specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinter(context.Context, *AddPrinterRequest) (*AddPrinterResponse, error)

	// RpcDeletePrinter is a method that deletes the specified printer object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinter(context.Context, *DeletePrinterRequest) (*DeletePrinterResponse, error)

	// RpcSetPrinter sets the data or state of a specified printer by pausing or resuming
	// printing or by clearing all print jobs.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinter(context.Context, *SetPrinterRequest) (*SetPrinterResponse, error)

	// RpcGetPrinter retrieves information about a specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinter(context.Context, *GetPrinterRequest) (*GetPrinterResponse, error)

	// RpcAddPrinterDriver installs a printer driver on the print server and links the configuration,
	// data, and printer driver files.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterDriver(context.Context, *AddPrinterDriverRequest) (*AddPrinterDriverResponse, error)

	// RpcEnumPrinterDrivers enumerates the printer drivers installed on a specified print
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterDrivers(context.Context, *EnumPrinterDriversRequest) (*EnumPrinterDriversResponse, error)

	// RpcGetPrinterDriver retrieves printer driver data for the specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriver(context.Context, *GetPrinterDriverRequest) (*GetPrinterDriverResponse, error)

	// RpcGetPrinterDriverDirectory retrieves the path of the printer driver directory.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriverDirectory(context.Context, *GetPrinterDriverDirectoryRequest) (*GetPrinterDriverDirectoryResponse, error)

	// RpcDeletePrinterDriver removes the specified printer driver from the list of supported
	// drivers for a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDriver(context.Context, *DeletePrinterDriverRequest) (*DeletePrinterDriverResponse, error)

	// RpcAddPrintProcessor installs a print processor on the specified server and adds
	// its name to an internal list of supported print processors.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrintProcessor(context.Context, *AddPrintProcessorRequest) (*AddPrintProcessorResponse, error)

	// RpcEnumPrintProcessors enumerates the print processors installed on a specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrintProcessors(context.Context, *EnumPrintProcessorsRequest) (*EnumPrintProcessorsResponse, error)

	// RpcGetPrintProcessorDirectory retrieves the path for the print processor on the specified
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrintProcessorDirectory(context.Context, *GetPrintProcessorDirectoryRequest) (*GetPrintProcessorDirectoryResponse, error)

	// RpcStartDocPrinter notifies the print server that a document is being spooled for
	// printing.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	StartDocPrinter(context.Context, *StartDocPrinterRequest) (*StartDocPrinterResponse, error)

	// RpcStartPagePrinter notifies the spooler that a page is about to be printed on the
	// specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	StartPagePrinter(context.Context, *StartPagePrinterRequest) (*StartPagePrinterResponse, error)

	// RpcWritePrinter sends data to the print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	WritePrinter(context.Context, *WritePrinterRequest) (*WritePrinterResponse, error)

	// RpcEndPagePrinter notifies the print server that the application is at the end of
	// a page in a print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EndPagePrinter(context.Context, *EndPagePrinterRequest) (*EndPagePrinterResponse, error)

	// RpcAbortPrinter aborts the currently spooling print document.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AbortPrinter(context.Context, *AbortPrinterRequest) (*AbortPrinterResponse, error)

	// RpcReadPrinter retrieves data from the specified job or port.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReadPrinter(context.Context, *ReadPrinterRequest) (*ReadPrinterResponse, error)

	// RpcEndDocPrinter notifies the print server that the application is at the end of
	// the current print job.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EndDocPrinter(context.Context, *EndDocPrinterRequest) (*EndDocPrinterResponse, error)

	// RpcAddJob does not perform any function but returns a nonzero Windows error code
	// to indicate failure.
	//
	// Return Values: This method MUST return a nonzero Windows error code to indicate failure
	// [MS-ERREF].
	AddJob(context.Context, *AddJobRequest) (*AddJobResponse, error)

	// RpcScheduleJob does not perform any function, but returns a nonzero Windows error
	// code to indicate failure.
	//
	// Return Values: This method MUST return a nonzero Windows error code to indicate failure
	// [MS-ERREF].
	ScheduleJob(context.Context, *ScheduleJobRequest) (*ScheduleJobResponse, error)

	// RpcGetPrinterData retrieves printer configuration data for a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterData(context.Context, *GetPrinterDataRequest) (*GetPrinterDataResponse, error)

	// RpcSetPrinterData sets the configuration data for a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinterData(context.Context, *SetPrinterDataRequest) (*SetPrinterDataResponse, error)

	// RpcWaitForPrinterChange retrieves information about the most recent change notification
	// that is associated with a printer or print server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	WaitForPrinterChange(context.Context, *WaitForPrinterChangeRequest) (*WaitForPrinterChangeResponse, error)

	// RpcClosePrinter closes a handle to a printer object, server object, job object, or
	// port object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ClosePrinter(context.Context, *ClosePrinterRequest) (*ClosePrinterResponse, error)

	// RpcAddForm adds a form name to the list of supported forms.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddForm(context.Context, *AddFormRequest) (*AddFormResponse, error)

	// RpcDeleteForm removes a form name from the list of supported forms.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteForm(context.Context, *DeleteFormRequest) (*DeleteFormResponse, error)

	// RpcGetForm retrieves information about a specified form.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetForm(context.Context, *GetFormRequest) (*GetFormResponse, error)

	// RpcSetForm replaces the form information for the specified form.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetForm(context.Context, *SetFormRequest) (*SetFormResponse, error)

	// The RpcEnumForms method enumerates the forms that the specified printer supports.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumForms(context.Context, *EnumFormsRequest) (*EnumFormsResponse, error)

	// RpcEnumPorts enumerates the ports that are available for printing on a specified
	// server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPorts(context.Context, *EnumPortsRequest) (*EnumPortsResponse, error)

	// The RpcEnumMonitors method retrieves information about the port monitors installed
	// on the specified server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumMonitors(context.Context, *EnumMonitorsRequest) (*EnumMonitorsResponse, error)

	// Removes a port.<357>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePort(context.Context, *DeletePortRequest) (*DeletePortResponse, error)

	// RpcCreatePrinterIC is called by the Graphics Device Interface (GDI) to create an
	// information context for a specified printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	CreatePrinterIC(context.Context, *CreatePrinterICRequest) (*CreatePrinterICResponse, error)

	// RpcPlayGdiScriptOnPrinterIC returns font information for a printer connection. UNIVERSAL_FONT_ID
	// (section 2.2.2.12) structures are used to identify the fonts.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	PlayGDIScriptOnPrinterIC(context.Context, *PlayGDIScriptOnPrinterICRequest) (*PlayGDIScriptOnPrinterICResponse, error)

	// RpcDeletePrinterIC deletes a printer information context.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterIC(context.Context, *DeletePrinterICRequest) (*DeletePrinterICResponse, error)

	// RpcAddMonitor installs a local port monitor and links the configuration, data, and
	// monitor files.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddMonitor(context.Context, *AddMonitorRequest) (*AddMonitorResponse, error)

	// RpcDeleteMonitor removes a port monitor.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteMonitor(context.Context, *DeleteMonitorRequest) (*DeleteMonitorResponse, error)

	// RpcDeletePrintProcessor removes a print processor.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrintProcessor(context.Context, *DeletePrintProcessorRequest) (*DeletePrintProcessorResponse, error)

	// RpcEnumPrintProcessorDatatypes enumerates the data types that a specified print processor
	// supports.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrintProcessorDataTypes(context.Context, *EnumPrintProcessorDataTypesRequest) (*EnumPrintProcessorDataTypesResponse, error)

	// RpcResetPrinter resets the data type and device mode (For more information, see [DEVMODE])
	// values to use for printing documents submitted by the RpcStartDocPrinter (section
	// 3.1.4.9.1) method.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ResetPrinter(context.Context, *ResetPrinterRequest) (*ResetPrinterResponse, error)

	// RpcGetPrinterDriver2 retrieves printer driver data for the specified printer.<334>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDriver2(context.Context, *GetPrinterDriver2Request) (*GetPrinterDriver2Response, error)

	// The RpcFindClosePrinterChangeNotification method closes a change notification object
	// created by RpcRemoteFindFirstPrinterChangeNotification (section 3.1.4.10.3) or RpcRemoteFindFirstPrinterChangeNotificationEx
	// (section 3.1.4.10.4).<380> The printer or print server associated with the change
	// notification object is no longer monitored by that object.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	FindClosePrinterChangeNotification(context.Context, *FindClosePrinterChangeNotificationRequest) (*FindClosePrinterChangeNotificationResponse, error)

	// RpcReplyOpenPrinter establishes a context handle from a print server to a print client.<412>
	// The server uses the RPC context handle returned by this method to send notification
	// data to the client machine.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReplyOpenPrinter(context.Context, *ReplyOpenPrinterRequest) (*ReplyOpenPrinterResponse, error)

	// RpcRouterReplyPrinter handles a notification from a print server.<414>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterReplyPrinter(context.Context, *RouterReplyPrinterRequest) (*RouterReplyPrinterResponse, error)

	// RpcReplyClosePrinter closes the notification channel between a print server and a
	// print client.<415>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	ReplyClosePrinter(context.Context, *ReplyClosePrinterRequest) (*ReplyClosePrinterResponse, error)

	// RpcAddPortEx adds a port name to the list of supported ports.<359>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPortEx(context.Context, *AddPortExRequest) (*AddPortExResponse, error)

	// RpcRemoteFindFirstPrinterChangeNotification creates a remote change notification
	// object that monitors changes to printer objects and sends change notifications to
	// a print client using either RpcRouterReplyPrinter (section 3.2.4.1.2) or RpcRouterReplyPrinterEx
	// (section 3.2.4.1.4).
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RemoteFindFirstPrinterChangeNotification(context.Context, *RemoteFindFirstPrinterChangeNotificationRequest) (*RemoteFindFirstPrinterChangeNotificationResponse, error)

	// RpcRemoteFindFirstPrinterChangeNotificationEx creates a remote change notification
	// object that monitors changes to printer objects and sends change notifications to
	// a print client using either RpcRouterReplyPrinter (section 3.2.4.1.2) or RpcRouterReplyPrinterEx
	// (section 3.2.4.1.4).
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RemoteFindFirstPrinterChangeNotificationEx(context.Context, *RemoteFindFirstPrinterChangeNotificationExRequest) (*RemoteFindFirstPrinterChangeNotificationExResponse, error)

	// RpcRouterReplyPrinterEx handles a notification from a print server.<416>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterReplyPrinterEx(context.Context, *RouterReplyPrinterExRequest) (*RouterReplyPrinterExResponse, error)

	// RpcRouterRefreshPrinterChangeNotification returns change notification information.<383>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	RouterRefreshPrinterChangeNotification(context.Context, *RouterRefreshPrinterChangeNotificationRequest) (*RouterRefreshPrinterChangeNotificationResponse, error)

	// RpcOpenPrinterEx retrieves a handle for a printer, port, port monitor, print job,
	// or print server.<287>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	OpenPrinterEx(context.Context, *OpenPrinterExRequest) (*OpenPrinterExResponse, error)

	// RpcAddPrinterEx installs a printer on the print server.<288>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterEx(context.Context, *AddPrinterExRequest) (*AddPrinterExResponse, error)

	// RpcSetPort sets the status associated with a printer port.<361>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPort(context.Context, *SetPortRequest) (*SetPortResponse, error)

	// RpcEnumPrinterData enumerates configuration data for a specified printer.<292>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterData(context.Context, *EnumPrinterDataRequest) (*EnumPrinterDataResponse, error)

	// RpcDeletePrinterData deletes specified configuration data for a printer.<294>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterData(context.Context, *DeletePrinterDataRequest) (*DeletePrinterDataResponse, error)

	// RpcSetPrinterDataEx sets the configuration data for a printer or print server.<298>
	// This method is similar to RpcSetPrinterData (section 3.1.4.2.8) but additionally
	// allows the caller to specify the registry key under which to store the data.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetPrinterDataEx(context.Context, *SetPrinterDataExRequest) (*SetPrinterDataExResponse, error)

	// RpcGetPrinterDataEx retrieves configuration data for the specified printer or print
	// server.<301> This method is similar to RpcGetPrinterData (section 3.1.4.2.7), but
	// it also allows the caller to specify the registry key from which to retrieve the
	// data.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetPrinterDataEx(context.Context, *GetPrinterDataExRequest) (*GetPrinterDataExResponse, error)

	// RpcEnumPrinterDataEx enumerates all value names and data for a specified printer
	// and key.<304> This method is similar to RpcEnumPrinterData (section 3.1.4.2.16) but
	// also allows the caller to specify the registry key from which to enumerate the data,
	// and allows retrieving several values in a single call.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterDataEx(context.Context, *EnumPrinterDataExRequest) (*EnumPrinterDataExResponse, error)

	// RpcEnumPrinterKey enumerates the subkeys of a specified key for a specified printer.<305>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPrinterKey(context.Context, *EnumPrinterKeyRequest) (*EnumPrinterKeyResponse, error)

	// RpcDeletePrinterDataEx deletes a specified value from a printer's configuration data,
	// which consists of a set of named and typed values stored in a hierarchy of registry
	// keys.<306>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDataEx(context.Context, *DeletePrinterDataExRequest) (*DeletePrinterDataExResponse, error)

	// RpcDeletePrinterKey deletes a specified key and all of its subkeys for a specified
	// printer.<309>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterKey(context.Context, *DeletePrinterKeyRequest) (*DeletePrinterKeyResponse, error)

	// RpcDeletePrinterDriverEx removes the specified printer driver from the list of supported
	// drivers for a server and deletes the files associated with it.<339> This method can
	// also be used to delete specific versions of a driver.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePrinterDriverEx(context.Context, *DeletePrinterDriverExRequest) (*DeletePrinterDriverExResponse, error)

	// RpcAddPerMachineConnection adds a remote printer name to the list of supported printer
	// connections for every user who locally logs onto the computer running the print server.<311>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPerMachineConnection(context.Context, *AddPerMachineConnectionRequest) (*AddPerMachineConnectionResponse, error)

	// RpcDeletePerMachineConnection deletes information about a printer connection.<314>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeletePerMachineConnection(context.Context, *DeletePerMachineConnectionRequest) (*DeletePerMachineConnectionResponse, error)

	// Enumerates each of the connections and copies PRINTER_INFO_4 (section 2.2.1.10.5)
	// structures for all the per-machine connections into the buffer pPrinterEnum.<316>
	//
	// This method is used for remote administration of client computers running the print
	// system.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumPerMachineConnections(context.Context, *EnumPerMachineConnectionsRequest) (*EnumPerMachineConnectionsResponse, error)

	// RpcXcvData provides an extensible mechanism by which a client can control ports on
	// the server and exchange port specific commands and data with the server.<363>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate that the
	// print server successfully called the port monitor's XcvData method, or a nonzero
	// Windows error code to indicate failure [MS-ERREF].
	XcvData(context.Context, *XcvDataRequest) (*XcvDataResponse, error)

	// RpcAddPrinterDriverEx installs a printer driver on the print server.<342> This method
	// performs a function similar to RpcAddPrinterDriver (section 3.1.4.4.1) and is also
	// used to specify options that permit printer driver upgrade, printer driver downgrade,
	// copying of newer files only, and copying of all files regardless of their time stamps.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	AddPrinterDriverEx(context.Context, *AddPrinterDriverExRequest) (*AddPrinterDriverExResponse, error)

	// RpcFlushPrinter is used by printer drivers to send a buffer of bytes to a specified
	// port to cleanly abort a print job.<378> It also allows delaying the I/O line to the
	// printer.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	FlushPrinter(context.Context, *FlushPrinterRequest) (*FlushPrinterResponse, error)

	// The RpcSendRecvBidiData method sends and receives bidirectional data. This method
	// is used to communicate with port monitors that support such data.<317>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SendRecvBIDIData(context.Context, *SendRecvBIDIDataRequest) (*SendRecvBIDIDataResponse, error)

	// RpcGetCorePrinterDrivers gets the GUIDs, versions, and publish dates of the specified
	// core printer drivers, and the paths to their packages.<347>
	//
	// Return Values: This method MUST return zero or an HRESULT success value ([MS-ERREF]
	// section 2.1) to indicate successful completion or an HRESULT error value to indicate
	// failure.
	//
	// Exceptions Thrown: This method MUST NOT throw any exceptions other than those that
	// are thrown by the underlying RPC protocol [MS-RPCE].
	GetCorePrinterDrivers(context.Context, *GetCorePrinterDriversRequest) (*GetCorePrinterDriversResponse, error)

	// RpcGetPrinterDriverPackagePath gets the path to the specified printer driver package.<349>
	//
	// Return Values: This method MUST return zero or an HRESULT success value ([MS-ERREF]
	// section 2.1) to indicate successful completion or an HRESULT error value to indicate
	// failure.
	//
	// Exceptions Thrown: This method MUST NOT throw any exceptions other than those that
	// are thrown by the underlying RPC protocol [MS-RPCE].
	GetPrinterDriverPackagePath(context.Context, *GetPrinterDriverPackagePathRequest) (*GetPrinterDriverPackagePathResponse, error)

	// RpcGetJobNamedPropertyValue retrieves the current value of the specified Job Named
	// Property (section 3.1.1).<397>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	GetJobNamedPropertyValue(context.Context, *GetJobNamedPropertyValueRequest) (*GetJobNamedPropertyValueResponse, error)

	// RpcSetJobNamedProperty creates a new Job Named Property (section 3.1.1), or changes
	// the value of an existing Job Named Property for the specified print job.<398>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	SetJobNamedProperty(context.Context, *SetJobNamedPropertyRequest) (*SetJobNamedPropertyResponse, error)

	// RpcDeleteJobNamedProperty deletes an existing Job Named Property (section 3.1.1)
	// for the specified print job.<399>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	DeleteJobNamedProperty(context.Context, *DeleteJobNamedPropertyRequest) (*DeleteJobNamedPropertyResponse, error)

	// RpcEnumJobNamedProperties enumerates the Job Named Properties (section 3.1.1) for
	// the specified print job.<400>
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	EnumJobNamedProperties(context.Context, *EnumJobNamedPropertiesRequest) (*EnumJobNamedPropertiesResponse, error)

	// RpcLogJobInfoForBranchOffice operation.
	LogJobInfoForBranchOffice(context.Context, *LogJobInfoForBranchOfficeRequest) (*LogJobInfoForBranchOfficeResponse, error)

	// RpcRegeneratePrintDeviceCapabilities operation.
	RegeneratePrintDeviceCapabilities(context.Context, *RegeneratePrintDeviceCapabilitiesRequest) (*RegeneratePrintDeviceCapabilitiesResponse, error)

	// RpcIppCreateJobOnPrinter operation.
	CreateJobOnPrinter(context.Context, *CreateJobOnPrinterRequest) (*CreateJobOnPrinterResponse, error)

	// RpcIppGetJobAttributes operation.
	GetJobAttributes(context.Context, *GetJobAttributesRequest) (*GetJobAttributesResponse, error)

	// RpcIppSetJobAttributes operation.
	SetJobAttributes(context.Context, *SetJobAttributesRequest) (*SetJobAttributesResponse, error)

	// RpcIppGetPrinterAttributes operation.
	GetPrinterAttributes(context.Context, *GetPrinterAttributesRequest) (*GetPrinterAttributesResponse, error)

	// RpcIppSetPrinterAttributes operation.
	SetPrinterAttributes(context.Context, *SetPrinterAttributesRequest) (*SetPrinterAttributesResponse, error)
}

winspool server interface.

type WritePrinterRequest

type WritePrinterRequest struct {
	// hPrinter: A handle to a printer object or port object that was opened by RpcAddPrinter
	// (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section
	// 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).
	Printer *Printer `idl:"name:hPrinter" json:"printer"`
	// pBuf: A pointer to a buffer that contains the data to be written. This parameter
	// can be NULL if the value of the cbBuf parameter is zero.
	Buffer []byte `idl:"name:pBuf;size_is:(cbBuf)" json:"buffer"`
	// cbBuf: The number of bytes of data to be written.
	BufferLength uint32 `idl:"name:cbBuf" json:"buffer_length"`
}

WritePrinterRequest structure represents the RpcWritePrinter operation request

func (*WritePrinterRequest) MarshalNDR

func (o *WritePrinterRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*WritePrinterRequest) UnmarshalNDR

func (o *WritePrinterRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type WritePrinterResponse

type WritePrinterResponse struct {
	// pcWritten: A pointer to a value that receives the number of bytes of data that were
	// written.
	WrittenCount uint32 `idl:"name:pcWritten" json:"written_count"`
	// Return: The RpcWritePrinter return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

WritePrinterResponse structure represents the RpcWritePrinter operation response

func (*WritePrinterResponse) MarshalNDR

func (o *WritePrinterResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*WritePrinterResponse) UnmarshalNDR

func (o *WritePrinterResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type XcvDataRequest

type XcvDataRequest struct {
	// hXcv: A handle to a port or port monitor object that was opened by RpcOpenPrinter
	// (section 3.1.4.2.2) or RpcOpenPrinterEx (section 3.1.4.2.14).
	Xcv *Printer `idl:"name:hXcv" json:"xcv"`
	// pszDataName: A pointer to a string representing the name of the requested data or
	// action. The following table shows the actions that SHOULD be supported. Other port
	// monitor–specific action strings MAY be supported.<364>
	//
	//	+--------------+----------------------------------------------------------------------------------+
	//	|              |                                                                                  |
	//	|    VALUE     |                                   DESCRIPTION                                    |
	//	|              |                                                                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	+--------------+----------------------------------------------------------------------------------+
	//	| "AddPort"    | Add an instance of a specific port type controlled by the port monitor.          |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| "DeletePort" | Delete an instance of a specific port type controlled by the port monitor.       |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| "MonitorUI"  | The action returns the name of the associated port monitor client-side           |
	//	|              | executable configuration module in the buffer that is referenced by the          |
	//	|              | pOutputData parameter.                                                           |
	//	+--------------+----------------------------------------------------------------------------------+
	DataName string `idl:"name:pszDataName;string" json:"data_name"`
	// pInputData: A pointer to a buffer that contains input data. This parameter can be
	// NULL if cbInputData equals zero.
	InputData []byte `idl:"name:pInputData;size_is:(cbInputData)" json:"input_data"`
	// cbInputData: The size, in bytes, of the buffer pointed to by the pInputData parameter.
	InputDataLength uint32 `idl:"name:cbInputData" json:"input_data_length"`
	// cbOutputData: The size, in bytes, of the buffer pointed to by the pOutputData parameter.
	OutputDataLength uint32 `idl:"name:cbOutputData" json:"output_data_length"`
	// pdwStatus: A pointer to a variable that receives the status value that is returned
	// by the port monitor's XcvData method. The value MUST be zero to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	Status uint32 `idl:"name:pdwStatus" json:"status"`
}

XcvDataRequest structure represents the RpcXcvData operation request

func (*XcvDataRequest) MarshalNDR

func (o *XcvDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*XcvDataRequest) UnmarshalNDR

func (o *XcvDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type XcvDataResponse

type XcvDataResponse struct {
	// pOutputData: A pointer to a buffer to receive output data. This parameter can be
	// NULL if cbOutputData equals zero.
	OutputData []byte `idl:"name:pOutputData;size_is:(cbOutputData)" json:"output_data"`
	// pcbOutputNeeded: A pointer to a location that receives the size, in bytes, required
	// for the buffer pointed to by the pOutputData parameter.
	OutputNeededLength uint32 `idl:"name:pcbOutputNeeded" json:"output_needed_length"`
	// pdwStatus: A pointer to a variable that receives the status value that is returned
	// by the port monitor's XcvData method. The value MUST be zero to indicate successful
	// completion or a nonzero Windows error code to indicate failure [MS-ERREF].
	Status uint32 `idl:"name:pdwStatus" json:"status"`
	// Return: The RpcXcvData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

XcvDataResponse structure represents the RpcXcvData operation response

func (*XcvDataResponse) MarshalNDR

func (o *XcvDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*XcvDataResponse) UnmarshalNDR

func (o *XcvDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL