qm2qm

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
	Qm2qmSyntaxUUID = &uuid.UUID{TimeLow: 0x1088a980, TimeMid: 0xeae5, TimeHiAndVersion: 0x11d0, ClockSeqHiAndReserved: 0x8d, ClockSeqLow: 0x9b, Node: [6]uint8{0x0, 0xa0, 0x24, 0x53, 0xc3, 0x37}}
	// Syntax ID
	Qm2qmSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: Qm2qmSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "mqqp"
)

Functions

func NewQm2qmServerHandle

func NewQm2qmServerHandle(o Qm2qmServer) dcerpc.ServerHandle

func Qm2qmServerHandle

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

func RegisterQm2qmServer

func RegisterQm2qmServer(conn dcerpc.Conn, o Qm2qmServer, opts ...dcerpc.Option)

Types

type CancelReceiveRequest

type CancelReceiveRequest struct {
	// hQueue:  Queue identifier to cancel receive. Its value is validated in the method's
	// processing rules.
	Queue uint32 `idl:"name:hQueue" json:"queue"`
	// pQueue:  Queue descriptor to cancel receive. Its value is validated in the method's
	// processing rules.
	QueueID uint32 `idl:"name:pQueue" json:"queue_id"`
	// dwRequestID: A unique value that identifies a pending remote read operation.
	RequestID uint32 `idl:"name:dwRequestID" json:"request_id"`
}

CancelReceiveRequest structure represents the RemoteQMCancelReceive operation request

func (*CancelReceiveRequest) MarshalNDR

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

func (*CancelReceiveRequest) UnmarshalNDR

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

type CancelReceiveResponse

type CancelReceiveResponse struct {
	// Return: The RemoteQMCancelReceive return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CancelReceiveResponse structure represents the RemoteQMCancelReceive operation response

func (*CancelReceiveResponse) MarshalNDR

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

func (*CancelReceiveResponse) UnmarshalNDR

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

type CloseCursorRequest

type CloseCursorRequest struct {
	// hQueue:  A queue handle value upon which the cursor operates.
	Queue uint32 `idl:"name:hQueue" json:"queue"`
	// hCursor: Specifies the cursor handle to be closed.
	Cursor uint32 `idl:"name:hCursor" json:"cursor"`
}

CloseCursorRequest structure represents the RemoteQMCloseCursor operation request

func (*CloseCursorRequest) MarshalNDR

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

func (*CloseCursorRequest) UnmarshalNDR

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

type CloseCursorResponse

type CloseCursorResponse struct {
	// Return: The RemoteQMCloseCursor return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CloseCursorResponse structure represents the RemoteQMCloseCursor operation response

func (*CloseCursorResponse) MarshalNDR

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

func (*CloseCursorResponse) UnmarshalNDR

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

type CloseQueueRequest

type CloseQueueRequest struct {
	// pphContext: A PCTX_RRSESSION_HANDLE_TYPE to a remote opened queue.
	Context *Session `idl:"name:pphContext" json:"context"`
}

CloseQueueRequest structure represents the RemoteQMCloseQueue operation request

func (*CloseQueueRequest) MarshalNDR

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

func (*CloseQueueRequest) UnmarshalNDR

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

type CloseQueueResponse

type CloseQueueResponse struct {
	// pphContext: A PCTX_RRSESSION_HANDLE_TYPE to a remote opened queue.
	Context *Session `idl:"name:pphContext" json:"context"`
	// Return: The RemoteQMCloseQueue return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CloseQueueResponse structure represents the RemoteQMCloseQueue operation response

func (*CloseQueueResponse) MarshalNDR

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

func (*CloseQueueResponse) UnmarshalNDR

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

type Context

type Context dcetypes.ContextHandle

Context structure represents PCTX_REMOTEREAD_HANDLE_TYPE RPC structure.

func (*Context) ContextHandle

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

func (*Context) MarshalNDR

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

func (*Context) UnmarshalNDR

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

type EndReceiveRequest

type EndReceiveRequest struct {
	// pphContext: A pointer to a context handle of a pending remote read operation.
	Context *Context `idl:"name:pphContext" json:"context"`
	// dwAck: An ACK or NACK about the status of the message packet of the pending remote
	// read operation.
	//
	//	+--------------------+----------------------------------------------------------------------------------+
	//	|                    |                                                                                  |
	//	|       VALUE        |                                     MEANING                                      |
	//	|                    |                                                                                  |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| RR_NACK 0x00000001 | The client acknowledges that the message packet was not delivered successfully.  |
	//	|                    | The server MUST keep the message in the queue and make it available for          |
	//	|                    | subsequent consumption.                                                          |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| RR_ACK 0x00000002  | The client acknowledges that the message packet was delivered successfully.      |
	//	|                    | The server MUST remove the message from the queue and make it unavailable for    |
	//	|                    | subsequent consumption.                                                          |
	//	+--------------------+----------------------------------------------------------------------------------+
	Ack uint32 `idl:"name:dwAck" json:"ack"`
}

EndReceiveRequest structure represents the RemoteQMEndReceive operation request

func (*EndReceiveRequest) MarshalNDR

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

func (*EndReceiveRequest) UnmarshalNDR

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

type EndReceiveResponse

type EndReceiveResponse struct {
	// pphContext: A pointer to a context handle of a pending remote read operation.
	Context *Context `idl:"name:pphContext" json:"context"`
	// Return: The RemoteQMEndReceive return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EndReceiveResponse structure represents the RemoteQMEndReceive operation response

func (*EndReceiveResponse) MarshalNDR

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

func (*EndReceiveResponse) UnmarshalNDR

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

type GetQMQMServerPortRequest

type GetQMQMServerPortRequest struct {
	// dwPortType:  Specifies the interface for which a port value is to be returned. One
	// of the following values MUST be specified; otherwise, this method MUST return 0x00000000
	// to indicate failure.
	//
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	|                          |                                                                                  |
	//	|          VALUE           |                                     MEANING                                      |
	//	|                          |                                                                                  |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IP_HANDSHAKE 0x00000000  | Requests that the server return the RPC port number for the qmcomm and qmcomm2   |
	//	|                          | interfaces bound to TCP/IP. For more information on the qmcomm and qmcomm2       |
	//	|                          | interfaces, see [MS-MQMP]. The default port number is 2103.                      |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IP_READ 0x00000001       | Requests that the server return the RPC port number for the qm2qm interface      |
	//	|                          | bound to TCP/IP. For more information on the qm2qm interface, see section 3.1.4. |
	//	|                          | The default port number is 2105.                                                 |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IPX_HANDSHAKE 0x00000002 | Requests that the server return the RPC port number for the qmcomm and qmcomm2   |
	//	|                          | interfaces bound to SPX.<19> For more information on the qmcomm and qmcomm2      |
	//	|                          | interfaces, see [MS-MQMP]. The default port number is 2103.                      |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IPX_READ 0x00000003      | Requests that the server return the RPC port number for the qm2qm interface      |
	//	|                          | bound to SPX.<20> For more information on the qm2qm interface, see section       |
	//	|                          | 3.1.4. The default port number is 2105.                                          |
	//	+--------------------------+----------------------------------------------------------------------------------+
	PortType uint32 `idl:"name:dwPortType" json:"port_type"`
}

GetQMQMServerPortRequest structure represents the RemoteQMGetQMQMServerPort operation request

func (*GetQMQMServerPortRequest) MarshalNDR

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

func (*GetQMQMServerPortRequest) UnmarshalNDR

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

type GetQMQMServerPortResponse

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

GetQMQMServerPortResponse structure represents the RemoteQMGetQMQMServerPort operation response

func (*GetQMQMServerPortResponse) MarshalNDR

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

func (*GetQMQMServerPortResponse) UnmarshalNDR

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

type GetVersionRequest

type GetVersionRequest struct {
}

GetVersionRequest structure represents the RemoteQmGetVersion operation request

func (*GetVersionRequest) MarshalNDR

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

func (*GetVersionRequest) UnmarshalNDR

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

type GetVersionResponse

type GetVersionResponse struct {
	// pMajor: A pointer to an unsigned character. The server SHOULD<22> set this parameter
	// to 0x06.
	Major uint8 `idl:"name:pMajor" json:"major"`
	// pMinor: A pointer to an unsigned character. The server SHOULD<23> set this parameter
	// to 0x01.
	Minor uint8 `idl:"name:pMinor" json:"minor"`
	// pBuildNumber: A pointer to an unsigned short. The server SHOULD<24> set this parameter
	// to an implementation-specific build number.
	BuildNumber uint16 `idl:"name:pBuildNumber" json:"build_number"`
}

GetVersionResponse structure represents the RemoteQmGetVersion operation response

func (*GetVersionResponse) MarshalNDR

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

func (*GetVersionResponse) UnmarshalNDR

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

type OpenQueueRequest

type OpenQueueRequest struct {
	// pLicGuid: A pointer to a valid GUID ([MS-DTYP] section 2.3.4) that uniquely identifies
	// the client. This value is set to the QueueManager.Identifier ADM element of the queue
	// manager at the client end.
	ClientGUID *dtyp.GUID `idl:"name:pLicGuid" json:"client_guid"`
	// dwMQS: This value MAY be used by the server to impose an implementation-specific
	// limit on the number of concurrent callers.<12>
	MQS uint32 `idl:"name:dwMQS" json:"mqs"`
	// hQueue: A queue identifier. This value SHOULD be ignored by the server.<13>
	Queue uint32 `idl:"name:hQueue" json:"queue"`
	// pQueue: A DWORD that references an OpenQueueDescriptor of a remote opened queue.
	QueueID uint32 `idl:"name:pQueue" json:"queue_id"`
	// dwpContext: A DWORD that references an OpenQueueDescriptor of a remote opened queue.
	ContextID uint32 `idl:"name:dwpContext" json:"context_id"`
}

OpenQueueRequest structure represents the RemoteQMOpenQueue operation request

func (*OpenQueueRequest) MarshalNDR

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

func (*OpenQueueRequest) UnmarshalNDR

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

type OpenQueueResponse

type OpenQueueResponse struct {
	// phContext:  A pointer to a context handle that contains the information about the
	// opened queue, which corresponds to the abstract data model's OpenQueueEntry. The
	// server MUST set this value; it gets deleted on a call to RemoteQMCloseQueue.
	Context *Session `idl:"name:phContext" json:"context"`
	// Return: The RemoteQMOpenQueue return value.
	Return int32 `idl:"name:Return" json:"return"`
}

OpenQueueResponse structure represents the RemoteQMOpenQueue operation response

func (*OpenQueueResponse) MarshalNDR

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

func (*OpenQueueResponse) UnmarshalNDR

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

type PurgeQueueRequest

type PurgeQueueRequest struct {
	// hQueue: A queue handle value acquired from the phQueue parameter of the qmcomm:R_QMOpenRemoteQueue
	// method as specified in [MS-MQMP] section 3.1.4.2.
	Queue uint32 `idl:"name:hQueue" json:"queue"`
}

PurgeQueueRequest structure represents the RemoteQMPurgeQueue operation request

func (*PurgeQueueRequest) MarshalNDR

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

func (*PurgeQueueRequest) UnmarshalNDR

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

type PurgeQueueResponse

type PurgeQueueResponse struct {
	// Return: The RemoteQMPurgeQueue return value.
	Return int32 `idl:"name:Return" json:"return"`
}

PurgeQueueResponse structure represents the RemoteQMPurgeQueue operation response

func (*PurgeQueueResponse) MarshalNDR

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

func (*PurgeQueueResponse) UnmarshalNDR

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

type Qm2qmClient

type Qm2qmClient interface {

	// The RemoteQMStartReceive method peeks or receives a message from an open queue.
	//
	// If RemoteQMStartReceive is invoked with a Peek action type, as specified in the ulAction
	// member of the lpRemoteReadDesc parameter, the operation completes when RemoteQMStartReceive
	// returns.
	//
	// If RemoteQMStartReceive is invoked with a Receive action type, as specified in the
	// ulAction member of the lpRemoteReadDesc parameter, the client MUST pair each call
	// to RemoteQMStartReceive with a call to RemoteQMEndReceive to complete the operation,
	// or to RemoteQMCancelReceive to cancel the operation.
	//
	// For each call to RemoteQMCancelReceive, the dwRequestID parameter MUST match the
	// dwRequestID member of the lpRemoteReadDesc parameter in a previous call to RemoteQMStartReceive.
	//
	// If the client specifies a nonzero value for the ulTimeout member of the lpRemoteReadDesc
	// parameter, and a message is not available in the queue at the time of the call, the
	// server waits up to the specified time-out for a message to become available in the
	// queue before responding to the call. The client can call RemoteQMCancelReceive with
	// a matching REMOTEREADDESC.dwRequestID to cancel the pending RemoteQMStartReceive
	// request.
	//
	// Before calling this method, the client MUST have already called RemoteQMOpenQueue.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// STATUS_INVALID_PARAMETER (0xC000000D)
	//
	// Exceptions Thrown: None except those thrown by the underlying RPC protocol, as specified
	// in [MS-RPCE].
	StartReceive(context.Context, *StartReceiveRequest, ...dcerpc.CallOption) (*StartReceiveResponse, error)

	// The client MUST invoke the RemoteQMEndReceive method to advise the server that the
	// message packet returned by the RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	// method has been received.
	//
	// The combination of the RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	// method and the positive acknowledgment of the RemoteQMEndReceive method ensures that
	// a message packet is not lost in transit from the server to the client due to a network
	// outage during the call sequence.
	//
	// Before calling this method, the following methods MUST be called:
	//
	// * RemoteQMOpenQueue
	//
	// * RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	//
	// HRESULT RemoteQMEndReceive(
	//
	// [in] handle_t hBind,
	//
	// * [in, range(1, 2)] DWORD dwAck
	//
	// );
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_TRANSACTION_SEQUENCE (0xC00E0051)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, [MS-RPCE].
	EndReceive(context.Context, *EndReceiveRequest, ...dcerpc.CallOption) (*EndReceiveResponse, error)

	// The RemoteQMOpenQueue method opens a queue in preparation for subsequent operations
	// against it. This method assumes that the client has called qmcomm:R_QMOpenRemoteQueue
	// to obtain a queue handle; for more information, see [MS-MQMP] section 3.1.4.2. This
	// method is called as part of the sequence of events involved in opening a remote queue
	// by an MQMP application as described in [MS-MQMP] section 4.2. This method MUST be
	// called prior to calling any of the following operations:
	//
	// * RemoteQMStartReceive ( aab4d8fa-3a56-483c-ac61-4172a09fc199 )
	//
	// * RemoteQMEndReceive ( 4c0b91ba-37fa-441c-974a-91bbea58a62d )
	//
	// * RemoteQMCloseQueue ( f8b37cf7-cdf4-4e3a-8497-cf2c65074db5 )
	//
	// * RemoteQMCloseCursor ( 0ec761b0-e700-4e3d-b735-54bdf458509d )
	//
	// * RemoteQMCancelReceive ( 76f56b96-7c8d-432e-a169-a1b750e20527 )
	//
	// * RemoteQMPurgeQueue ( 119644cf-f6ca-4f74-bb4a-c2624ccab22c )
	//
	// * RemoteQMStartReceive2 ( a0df225e-80ea-4242-90e5-9891bfa9ebfb )
	//
	// * RemoteQMStartReceiveByLookupId ( b8a82b34-6feb-4057-8f7f-48275fa65068 )
	//
	// HRESULT RemoteQMOpenQueue(
	//
	// [in] handle_t hBind,
	//
	// * [in, range(0, 16)] DWORD dwMQS,
	//
	// [in] DWORD hQueue,
	//
	// [in] DWORD pQueue,
	//
	// [in] DWORD dwpContext
	//
	// );
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// Exceptions Thrown:
	//
	// No exceptions are thrown except those thrown by the underlying RPC protocol (see
	// [MS-RPCE]).
	OpenQueue(context.Context, *OpenQueueRequest, ...dcerpc.CallOption) (*OpenQueueResponse, error)

	// The RemoteQMCloseQueue method closes a PCTX_RRSESSION_HANDLE_TYPE that was previously
	// opened by using a call to the RemoteQMOpenQueue method. The client MUST call this
	// method to reclaim resources on the server allocated by the RemoteQMOpenQueue method.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CloseQueue(context.Context, *CloseQueueRequest, ...dcerpc.CallOption) (*CloseQueueResponse, error)

	// The RemoteQMCloseCursor method closes the handle for a previously created cursor.
	// The client MUST call this method to reclaim resources on the server allocated by
	// the qmcomm:R_QMCreateRemoteCursor method, as specified in [MS-MQMP] section 3.1.4.4.
	//
	// Return Values:  The method MUST return MQ_OK (0x00000000) on success; otherwise,
	// it MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CloseCursor(context.Context, *CloseCursorRequest, ...dcerpc.CallOption) (*CloseCursorResponse, error)

	// The RemoteQMCancelReceive method cancels a pending call to RemoteQMStartReceive and
	// provides a way for the client to cancel a blocked request.
	//
	// Before calling this method, the following methods MUST be called:
	//
	// * RemoteQMOpenQueue ( 0dbcb6fd-ed56-44c3-9c02-e9fa2d7798b3 )
	//
	// * RemoteQMStartReceive or RemoteQMStartReceive2 ( a0df225e-80ea-4242-90e5-9891bfa9ebfb
	// )
	//
	// HRESULT RemoteQMCancelReceive(
	//
	// [in] handle_t hBind,
	//
	// [in] DWORD hQueue,
	//
	// [in] DWORD pQueue,
	//
	// [in] DWORD dwRequestID
	//
	// );
	//
	// Return Values:  The method MUST return MQ_OK (0x00000000) on success; otherwise,
	// it MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR (0xC00E0001)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// STATUS_NOT_FOUND (0xC0000225)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CancelReceive(context.Context, *CancelReceiveRequest, ...dcerpc.CallOption) (*CancelReceiveResponse, error)

	// The RemoteQMPurgeQueue method removes all messages from the queue.
	//
	// Before calling this method, the RemoteQMOpenQueue method MUST be called.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// Exceptions Thrown: Failure HRESULTs returned by this method MAY<18> be thrown as
	// exceptions as well as those thrown by the underlying RPC protocol, as specified in
	// [MS-RPCE].
	PurgeQueue(context.Context, *PurgeQueueRequest, ...dcerpc.CallOption) (*PurgeQueueResponse, error)

	// The RemoteQMGetQMQMServerPort method returns an RPC port number (see [MS-RPCE]) for
	// the requested combination of interface and protocol.
	//
	// Return Values:  On success, this method returns a nonzero IP port value for the
	// RPC interface specified by the dwPortType parameter. If an invalid value is specified
	// for dwPortType, or if the requested interface is otherwise unavailable, or if any
	// other error is encountered, this method MUST return 0x00000000.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol (see [MS-RPCE]).
	//
	// As specified in section 3.1.3, this protocol configures a fixed listening endpoint
	// at an RPC port number, which can vary. For the interface and protocol specified by
	// the dwPortType parameter, this method returns the RPC port number determined at server
	// initialization time. If the default port is already in use, the server SHOULD increment
	// the port number by 11 until an unused port is found.
	GetQMQMServerPort(context.Context, *GetQMQMServerPortRequest, ...dcerpc.CallOption) (*GetQMQMServerPortResponse, error)

	// The RemoteQmGetVersion method retrieves the Message queuing version of the server;
	// this method is called before the RemoteQMOpenQueue method.<21>
	//
	// Return Values: This method has no return values.
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	GetVersion(context.Context, *GetVersionRequest, ...dcerpc.CallOption) (*GetVersionResponse, error)

	// The RemoteQMStartReceive2 method functions in the same way as RemoteQMStartReceive
	// (section 3.1.4.1), except that it returns a structure that contains the SequentialId
	// of the message.<25>
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000).
	//
	// If an error occurs, the server MUST return a failure HRESULT, and the client MUST
	// treat all failure HRESULTs identically.
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	StartReceive2(context.Context, *StartReceive2Request, ...dcerpc.CallOption) (*StartReceive2Response, error)

	// The RemoteQMStartReceiveByLookupId method reads a message from the opened remote
	// queue by using the lookup identifier.<27>
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_IO_TIMEOUT ((0xC00E001B))
	//
	// MQ_ERROR_MESSAGE_ALREADY_RECEIVED ((0xC00E001D))
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	StartReceiveByLookupID(context.Context, *StartReceiveByLookupIDRequest, ...dcerpc.CallOption) (*StartReceiveByLookupIDResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

qm2qm interface.

func NewQm2qmClient

func NewQm2qmClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (Qm2qmClient, error)

type Qm2qmServer

type Qm2qmServer interface {

	// The RemoteQMStartReceive method peeks or receives a message from an open queue.
	//
	// If RemoteQMStartReceive is invoked with a Peek action type, as specified in the ulAction
	// member of the lpRemoteReadDesc parameter, the operation completes when RemoteQMStartReceive
	// returns.
	//
	// If RemoteQMStartReceive is invoked with a Receive action type, as specified in the
	// ulAction member of the lpRemoteReadDesc parameter, the client MUST pair each call
	// to RemoteQMStartReceive with a call to RemoteQMEndReceive to complete the operation,
	// or to RemoteQMCancelReceive to cancel the operation.
	//
	// For each call to RemoteQMCancelReceive, the dwRequestID parameter MUST match the
	// dwRequestID member of the lpRemoteReadDesc parameter in a previous call to RemoteQMStartReceive.
	//
	// If the client specifies a nonzero value for the ulTimeout member of the lpRemoteReadDesc
	// parameter, and a message is not available in the queue at the time of the call, the
	// server waits up to the specified time-out for a message to become available in the
	// queue before responding to the call. The client can call RemoteQMCancelReceive with
	// a matching REMOTEREADDESC.dwRequestID to cancel the pending RemoteQMStartReceive
	// request.
	//
	// Before calling this method, the client MUST have already called RemoteQMOpenQueue.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// STATUS_INVALID_PARAMETER (0xC000000D)
	//
	// Exceptions Thrown: None except those thrown by the underlying RPC protocol, as specified
	// in [MS-RPCE].
	StartReceive(context.Context, *StartReceiveRequest) (*StartReceiveResponse, error)

	// The client MUST invoke the RemoteQMEndReceive method to advise the server that the
	// message packet returned by the RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	// method has been received.
	//
	// The combination of the RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	// method and the positive acknowledgment of the RemoteQMEndReceive method ensures that
	// a message packet is not lost in transit from the server to the client due to a network
	// outage during the call sequence.
	//
	// Before calling this method, the following methods MUST be called:
	//
	// * RemoteQMOpenQueue
	//
	// * RemoteQMStartReceive, RemoteQMStartReceive2, or RemoteQMStartReceiveByLookupId
	//
	// HRESULT RemoteQMEndReceive(
	//
	// [in] handle_t hBind,
	//
	// * [in, range(1, 2)] DWORD dwAck
	//
	// );
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_TRANSACTION_SEQUENCE (0xC00E0051)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, [MS-RPCE].
	EndReceive(context.Context, *EndReceiveRequest) (*EndReceiveResponse, error)

	// The RemoteQMOpenQueue method opens a queue in preparation for subsequent operations
	// against it. This method assumes that the client has called qmcomm:R_QMOpenRemoteQueue
	// to obtain a queue handle; for more information, see [MS-MQMP] section 3.1.4.2. This
	// method is called as part of the sequence of events involved in opening a remote queue
	// by an MQMP application as described in [MS-MQMP] section 4.2. This method MUST be
	// called prior to calling any of the following operations:
	//
	// * RemoteQMStartReceive ( aab4d8fa-3a56-483c-ac61-4172a09fc199 )
	//
	// * RemoteQMEndReceive ( 4c0b91ba-37fa-441c-974a-91bbea58a62d )
	//
	// * RemoteQMCloseQueue ( f8b37cf7-cdf4-4e3a-8497-cf2c65074db5 )
	//
	// * RemoteQMCloseCursor ( 0ec761b0-e700-4e3d-b735-54bdf458509d )
	//
	// * RemoteQMCancelReceive ( 76f56b96-7c8d-432e-a169-a1b750e20527 )
	//
	// * RemoteQMPurgeQueue ( 119644cf-f6ca-4f74-bb4a-c2624ccab22c )
	//
	// * RemoteQMStartReceive2 ( a0df225e-80ea-4242-90e5-9891bfa9ebfb )
	//
	// * RemoteQMStartReceiveByLookupId ( b8a82b34-6feb-4057-8f7f-48275fa65068 )
	//
	// HRESULT RemoteQMOpenQueue(
	//
	// [in] handle_t hBind,
	//
	// * [in, range(0, 16)] DWORD dwMQS,
	//
	// [in] DWORD hQueue,
	//
	// [in] DWORD pQueue,
	//
	// [in] DWORD dwpContext
	//
	// );
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// Exceptions Thrown:
	//
	// No exceptions are thrown except those thrown by the underlying RPC protocol (see
	// [MS-RPCE]).
	OpenQueue(context.Context, *OpenQueueRequest) (*OpenQueueResponse, error)

	// The RemoteQMCloseQueue method closes a PCTX_RRSESSION_HANDLE_TYPE that was previously
	// opened by using a call to the RemoteQMOpenQueue method. The client MUST call this
	// method to reclaim resources on the server allocated by the RemoteQMOpenQueue method.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CloseQueue(context.Context, *CloseQueueRequest) (*CloseQueueResponse, error)

	// The RemoteQMCloseCursor method closes the handle for a previously created cursor.
	// The client MUST call this method to reclaim resources on the server allocated by
	// the qmcomm:R_QMCreateRemoteCursor method, as specified in [MS-MQMP] section 3.1.4.4.
	//
	// Return Values:  The method MUST return MQ_OK (0x00000000) on success; otherwise,
	// it MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CloseCursor(context.Context, *CloseCursorRequest) (*CloseCursorResponse, error)

	// The RemoteQMCancelReceive method cancels a pending call to RemoteQMStartReceive and
	// provides a way for the client to cancel a blocked request.
	//
	// Before calling this method, the following methods MUST be called:
	//
	// * RemoteQMOpenQueue ( 0dbcb6fd-ed56-44c3-9c02-e9fa2d7798b3 )
	//
	// * RemoteQMStartReceive or RemoteQMStartReceive2 ( a0df225e-80ea-4242-90e5-9891bfa9ebfb
	// )
	//
	// HRESULT RemoteQMCancelReceive(
	//
	// [in] handle_t hBind,
	//
	// [in] DWORD hQueue,
	//
	// [in] DWORD pQueue,
	//
	// [in] DWORD dwRequestID
	//
	// );
	//
	// Return Values:  The method MUST return MQ_OK (0x00000000) on success; otherwise,
	// it MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR (0xC00E0001)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// STATUS_NOT_FOUND (0xC0000225)
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	CancelReceive(context.Context, *CancelReceiveRequest) (*CancelReceiveResponse, error)

	// The RemoteQMPurgeQueue method removes all messages from the queue.
	//
	// Before calling this method, the RemoteQMOpenQueue method MUST be called.
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// Exceptions Thrown: Failure HRESULTs returned by this method MAY<18> be thrown as
	// exceptions as well as those thrown by the underlying RPC protocol, as specified in
	// [MS-RPCE].
	PurgeQueue(context.Context, *PurgeQueueRequest) (*PurgeQueueResponse, error)

	// The RemoteQMGetQMQMServerPort method returns an RPC port number (see [MS-RPCE]) for
	// the requested combination of interface and protocol.
	//
	// Return Values:  On success, this method returns a nonzero IP port value for the
	// RPC interface specified by the dwPortType parameter. If an invalid value is specified
	// for dwPortType, or if the requested interface is otherwise unavailable, or if any
	// other error is encountered, this method MUST return 0x00000000.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol (see [MS-RPCE]).
	//
	// As specified in section 3.1.3, this protocol configures a fixed listening endpoint
	// at an RPC port number, which can vary. For the interface and protocol specified by
	// the dwPortType parameter, this method returns the RPC port number determined at server
	// initialization time. If the default port is already in use, the server SHOULD increment
	// the port number by 11 until an unused port is found.
	GetQMQMServerPort(context.Context, *GetQMQMServerPortRequest) (*GetQMQMServerPortResponse, error)

	// The RemoteQmGetVersion method retrieves the Message queuing version of the server;
	// this method is called before the RemoteQMOpenQueue method.<21>
	//
	// Return Values: This method has no return values.
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	GetVersion(context.Context, *GetVersionRequest) (*GetVersionResponse, error)

	// The RemoteQMStartReceive2 method functions in the same way as RemoteQMStartReceive
	// (section 3.1.4.1), except that it returns a structure that contains the SequentialId
	// of the message.<25>
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000).
	//
	// If an error occurs, the server MUST return a failure HRESULT, and the client MUST
	// treat all failure HRESULTs identically.
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	StartReceive2(context.Context, *StartReceive2Request) (*StartReceive2Response, error)

	// The RemoteQMStartReceiveByLookupId method reads a message from the opened remote
	// queue by using the lookup identifier.<27>
	//
	// Return Values: The method MUST return MQ_OK (0x00000000) on success; otherwise, it
	// MUST return a failure HRESULT and the client MUST treat all failure HRESULTs identically.
	//
	// MQ_OK (0x00000000)
	//
	// MQ_ERROR_INVALID_HANDLE (0xC00E0007)
	//
	// MQ_ERROR_INVALID_PARAMETER (0xC00E0006)
	//
	// MQ_ERROR_IO_TIMEOUT ((0xC00E001B))
	//
	// MQ_ERROR_MESSAGE_ALREADY_RECEIVED ((0xC00E001D))
	//
	// Exceptions Thrown: No exceptions are thrown except those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	StartReceiveByLookupID(context.Context, *StartReceiveByLookupIDRequest) (*StartReceiveByLookupIDResponse, error)
}

qm2qm server interface.

type RemoteReadAck

type RemoteReadAck uint16

RemoteReadAck type represents REMOTEREADACK RPC enumeration.

The REMOTEREADACK enumeration represents an acknowledgment (ACK) or a negative acknowledgment (NACK), indicating a successfully or an unsuccessfully delivered packet, respectively.

var (
	// RR_UNKNOWN:  No acknowledgment.
	RemoteReadAckUnknown RemoteReadAck = 0
	// RR_NACK:  Negative acknowledgment for a packet.
	RemoteReadAckNack RemoteReadAck = 1
	// RR_ACK:  Acknowledgment for a packet.
	RemoteReadAckAck RemoteReadAck = 2
)

func (RemoteReadAck) String

func (o RemoteReadAck) String() string

type RemoteReadDesc

type RemoteReadDesc struct {
	RemoteQueue uint32 `idl:"name:hRemoteQueue" json:"remote_queue"`
	Cursor      uint32 `idl:"name:hCursor" json:"cursor"`
	// ulAction:   The following table describes possible actions. The Peek and Receive
	// operations both enable access to the contents of a message. This value is set by
	// the client.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                                      |                                                                                  |
	//	|                VALUE                 |                                   TYPE/MEANING                                   |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_RECEIVE 0x00000000         | Type = Receive Reads and removes a message from the current cursor location if   |
	//	|                                      | hCursor is nonzero or from the front of the queue if hCursor is set to zero.     |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_CURRENT 0x80000000    | Type = Peek Reads a message from the current cursor location if hCursor is       |
	//	|                                      | nonzero or from the front of the queue if hCursor is set to zero but does not    |
	//	|                                      | remove it from the queue.                                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_NEXT 0x80000001       | Type = Peek Reads a message following the message at the current cursor location |
	//	|                                      | but does not remove it from the queue.                                           |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_CURRENT 0x40000010    | Type = Peek Reads the message specified by a lookup identifier but does not      |
	//	|                                      | remove it from the queue.                                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_NEXT 0x40000011       | Type = Peek Reads the message following the message specified by a lookup        |
	//	|                                      | identifier but does not remove it from the queue.                                |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_PREV 0x40000012       | Type = Peek Reads the message preceding the message specified by a lookup        |
	//	|                                      | identifier but does not remove it from the queue.                                |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_CURRENT 0x40000020 | Type = Receive Reads the message specified by a lookup identifier and removes it |
	//	|                                      | from the queue.                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_NEXT 0x40000021    | Type = Receive Reads the message following the message specified by a lookup     |
	//	|                                      | identifier and removes it from the queue.                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_PREV 0x40000022    | Type = Receive Reads the message preceding the message specified by a lookup     |
	//	|                                      | identifier and removes it from the queue.                                        |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	Action uint32 `idl:"name:ulAction" json:"action"`
	// ulTimeout:   Specifies a time-out in milliseconds for the server to wait for a message
	// to become available in the queue. This value is set by the client. To specify an
	// infinite time-out, the client MUST set this field to 0xFFFFFFFF.
	Timeout uint32 `idl:"name:ulTimeout" json:"timeout"`
	// dwSize:   Specifies the size, in bytes, of lpBuffer. The valid range is 0 to 0x00420000.
	// This value is set by the server and MUST be set to 0 by the client.
	Size  uint32 `idl:"name:dwSize" json:"size"`
	Queue uint32 `idl:"name:dwQueue" json:"queue"`
	// dwRequestID:  The client MUST set this member to a unique identifier for the receive
	// request, which could later be used to identify and cancel the receive request. This
	// value is set by the client. The client SHOULD NOT<6> reuse this identifier until
	// a call to the RemoteQMEndReceive (Opnum 1) method or to the RemoteQMCancelReceive
	// (Opnum 5) method has been made for that receive request.
	RequestID uint32 `idl:"name:dwRequestID" json:"request_id"`

	// dwArriveTime:   The server MUST set this value to the time that the message was added
	// to the queue. The time MUST be expressed as the number of seconds elapsed since 00:00:00.0,
	// January 1, 1970 Coordinated Universal Time (UTC).
	ArriveTime uint32 `idl:"name:dwArriveTime" json:"arrive_time"`
	// eAckNack:  This is a reserved field and MUST be ignored by the client and the server.
	AckNack RemoteReadAck `idl:"name:eAckNack" json:"ack_nack"`
	// lpBuffer:  This field represents a pointer to a buffer containing the UserMessage
	// Packet ([MS-MQMQ] section 2.2.20). The size of this field is specified by dwSize.
	// This value is set by the server and MUST be set to NULL by the client.
	Buffer []byte `idl:"name:lpBuffer;size_is:(dwSize);length_is:(dwSize);pointer:unique" json:"buffer"`
	// contains filtered or unexported fields
}

RemoteReadDesc structure represents REMOTEREADDESC RPC structure.

This structure is used to encapsulate the information necessary to perform operations RemoteQMStartReceive, RemoteQMStartReceive2, and RemoteQMStartReceiveByLookupId.

func (*RemoteReadDesc) MarshalNDR

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

func (*RemoteReadDesc) UnmarshalNDR

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

type RemoteReadDesc2

type RemoteReadDesc2 struct {
	// pRemoteReadDesc:   A pointer to a REMOTEREADDESC structure, as specified in section
	// 2.2.2.1.
	RemoteReadDesc *RemoteReadDesc `idl:"name:pRemoteReadDesc" json:"remote_read_desc"`
	// SequentialId:   This field is set by the server to the value of a unique message
	// identifier that corresponds to a received message.
	SequentialID uint64 `idl:"name:SequentialId" json:"sequential_id"`
}

RemoteReadDesc2 structure represents REMOTEREADDESC2 RPC structure.

This structure is used by RemoteQMStartReceive2 and RemoteQMStartReceiveByLookupId to encapsulate the parameters necessary for execution of these operations.

func (*RemoteReadDesc2) MarshalNDR

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

func (*RemoteReadDesc2) UnmarshalNDR

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

type Session

type Session dcetypes.ContextHandle

Session structure represents PCTX_RRSESSION_HANDLE_TYPE RPC structure.

func (*Session) ContextHandle

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

func (*Session) MarshalNDR

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

func (*Session) UnmarshalNDR

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

type StartReceive2Request

type StartReceive2Request struct {
	// lpRemoteReadDesc2: A pointer to an instance of a REMOTEREADDESC2 (section 2.2.2.2)
	// structure. The SequentialId member MUST be set to the least significant 7 bytes of
	// the Message.LookupIdentifier ([MS-MQDMPR] section 3.1.1.12) of the message that is
	// returned by this method.
	//
	// The client MUST provide all parameters of lpRemoteReadDesc2.pRemoteReadDesc that
	// are marked as to be set by the client in section 2.2.2.1.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|             VALUE OF              |                                                                                  |
	//	|             ULACTION              |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_RECEIVE 0x00000000      | If hCursor is nonzero, read and remove the first message available at the        |
	//	|                                   | current cursor location walking toward the end of the queue. If hCursor is zero, |
	//	|                                   | read and remove the message from the front of the queue.                         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_CURRENT 0x80000000 | If hCursor is nonzero, read the message at the current cursor location, but      |
	//	|                                   | do not remove it from the queue. The cursor location does not change after the   |
	//	|                                   | operation. If hCursor is zero, read the message at the front of the queue, but   |
	//	|                                   | do not remove it from the queue.                                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_NEXT 0x80000001    | Read the message following the message at the current cursor location, but       |
	//	|                                   | do not remove it. The cursor location will then change to the next available     |
	//	|                                   | message, walking toward the end of the queue. The hCursor parameter MUST be set  |
	//	|                                   | to a nonzero cursor handle.                                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The dwRequestID member of the lpRemoteReadDesc parameter is used in a subsequent
	// call to RemoteQMEndReceive or RemoteQMCancelReceive to correlate that call with the
	// call to RemoteQMStartReceive2.
	RemoteReadDesc2 *RemoteReadDesc2 `idl:"name:lpRemoteReadDesc2" json:"remote_read_desc2"`
}

StartReceive2Request structure represents the RemoteQMStartReceive2 operation request

func (*StartReceive2Request) MarshalNDR

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

func (*StartReceive2Request) UnmarshalNDR

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

type StartReceive2Response

type StartReceive2Response struct {
	// pphContext: The server MUST return a non-NULL value for this handle upon success
	// for receive calls. This handle will be used by the client in subsequent calls to
	// RemoteQMEndReceive (section 3.1.4.2). This handle MUST NOT be set upon failure or
	// for peek calls. If this method returns an error, pphContext is undefined and MUST
	// NOT be used as an argument for a call to RemoteQMEndReceive.
	Context *Context `idl:"name:pphContext" json:"context"`
	// lpRemoteReadDesc2: A pointer to an instance of a REMOTEREADDESC2 (section 2.2.2.2)
	// structure. The SequentialId member MUST be set to the least significant 7 bytes of
	// the Message.LookupIdentifier ([MS-MQDMPR] section 3.1.1.12) of the message that is
	// returned by this method.
	//
	// The client MUST provide all parameters of lpRemoteReadDesc2.pRemoteReadDesc that
	// are marked as to be set by the client in section 2.2.2.1.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|             VALUE OF              |                                                                                  |
	//	|             ULACTION              |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_RECEIVE 0x00000000      | If hCursor is nonzero, read and remove the first message available at the        |
	//	|                                   | current cursor location walking toward the end of the queue. If hCursor is zero, |
	//	|                                   | read and remove the message from the front of the queue.                         |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_CURRENT 0x80000000 | If hCursor is nonzero, read the message at the current cursor location, but      |
	//	|                                   | do not remove it from the queue. The cursor location does not change after the   |
	//	|                                   | operation. If hCursor is zero, read the message at the front of the queue, but   |
	//	|                                   | do not remove it from the queue.                                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_NEXT 0x80000001    | Read the message following the message at the current cursor location, but       |
	//	|                                   | do not remove it. The cursor location will then change to the next available     |
	//	|                                   | message, walking toward the end of the queue. The hCursor parameter MUST be set  |
	//	|                                   | to a nonzero cursor handle.                                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The dwRequestID member of the lpRemoteReadDesc parameter is used in a subsequent
	// call to RemoteQMEndReceive or RemoteQMCancelReceive to correlate that call with the
	// call to RemoteQMStartReceive2.
	RemoteReadDesc2 *RemoteReadDesc2 `idl:"name:lpRemoteReadDesc2" json:"remote_read_desc2"`
	// Return: The RemoteQMStartReceive2 return value.
	Return int32 `idl:"name:Return" json:"return"`
}

StartReceive2Response structure represents the RemoteQMStartReceive2 operation response

func (*StartReceive2Response) MarshalNDR

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

func (*StartReceive2Response) UnmarshalNDR

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

type StartReceiveByLookupIDRequest

type StartReceiveByLookupIDRequest struct {
	// LookupId: Lookup identifier of the message to be returned.
	LookupID uint64 `idl:"name:LookupId" json:"lookup_id"`
	// lpRemoteReadDesc2: A REMOTEREADDESC2 (section 2.2.2.2) instance that contains the
	// remote description accompanied by a sequential ID. The members of the pRemoteReadDesc
	// member of the lpRemoteReadDesc2 parameter MUST be assigned in the same manner as
	// that specified in RemoteQMStartReceive and section 2.2.2.1. In addition, the SequentialId
	// member MUST be set to the least significant 7 bytes of the Message.LookupIdentifier
	// ([MS-MQDMPR] section 3.1.1.12) of the message that is returned by this method.
	//
	// The client must provide all parameters of lpRemoteReadDesc2.pRemoteReadDesc that
	// are marked as to be set by the client in section 2.2.2.1.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|               VALUE OF               |                                                                                  |
	//	|               ULACTION               |                                     MEANING                                      |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_CURRENT 0x40000010    | Read the message that is specified by the LookupId parameter, but do not         |
	//	|                                      | remove it from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor          |
	//	|                                      | parameter MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The  |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_NEXT 0x40000011       | If LookupId is 0, read the first message. Otherwise, read the message following  |
	//	|                                      | the message that is specified by LookupId. In either case, do not remove the     |
	//	|                                      | message. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter MUST be set to  |
	//	|                                      | zero. The lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to   |
	//	|                                      | 0x00000000.                                                                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_PREV 0x40000012       | If LookupId is 0xFFFFFFFFFFFFFFFF, read the last message. Otherwise,             |
	//	|                                      | read the message preceding the message that is specified by the                  |
	//	|                                      | LookupId parameter. In either case, do not remove the message from               |
	//	|                                      | the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter               |
	//	|                                      | MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The            |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_CURRENT 0x40000020 | Read the message that is specified by the LookupId parameter, and remove         |
	//	|                                      | it from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter       |
	//	|                                      | MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The            |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_NEXT 0x40000021    | If LookupId is 0, read the first message. Otherwise, read the message following  |
	//	|                                      | the message that is specified by the LookupId parameter. Remove the message from |
	//	|                                      | the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter MUST be set   |
	//	|                                      | to zero. The lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set   |
	//	|                                      | to 0x00000000.                                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_PREV 0x40000022    | If LookupId is 0xFFFFFFFFFFFFFFFF, read the last message. Otherwise, read the    |
	//	|                                      | message preceding the message that is specified by the LookupId parameter.       |
	//	|                                      | Remove the message from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor |
	//	|                                      | parameter MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The  |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	RemoteReadDesc2 *RemoteReadDesc2 `idl:"name:lpRemoteReadDesc2" json:"remote_read_desc2"`
}

StartReceiveByLookupIDRequest structure represents the RemoteQMStartReceiveByLookupId operation request

func (*StartReceiveByLookupIDRequest) MarshalNDR

func (*StartReceiveByLookupIDRequest) UnmarshalNDR

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

type StartReceiveByLookupIDResponse

type StartReceiveByLookupIDResponse struct {
	// pphContext: The server MUST return a non-NULL value for this handle, on success for
	// receive calls. This handle is used by the client in subsequent calls to RemoteQMEndReceive.
	// This handle MUST NOT be set on failure, or for peek calls. If this method returns
	// an error, pphContext is undefined and MUST NOT be used as an argument for a call
	// to RemoteQMEndReceive.
	Context *Context `idl:"name:pphContext" json:"context"`
	// lpRemoteReadDesc2: A REMOTEREADDESC2 (section 2.2.2.2) instance that contains the
	// remote description accompanied by a sequential ID. The members of the pRemoteReadDesc
	// member of the lpRemoteReadDesc2 parameter MUST be assigned in the same manner as
	// that specified in RemoteQMStartReceive and section 2.2.2.1. In addition, the SequentialId
	// member MUST be set to the least significant 7 bytes of the Message.LookupIdentifier
	// ([MS-MQDMPR] section 3.1.1.12) of the message that is returned by this method.
	//
	// The client must provide all parameters of lpRemoteReadDesc2.pRemoteReadDesc that
	// are marked as to be set by the client in section 2.2.2.1.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|               VALUE OF               |                                                                                  |
	//	|               ULACTION               |                                     MEANING                                      |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_CURRENT 0x40000010    | Read the message that is specified by the LookupId parameter, but do not         |
	//	|                                      | remove it from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor          |
	//	|                                      | parameter MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The  |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_NEXT 0x40000011       | If LookupId is 0, read the first message. Otherwise, read the message following  |
	//	|                                      | the message that is specified by LookupId. In either case, do not remove the     |
	//	|                                      | message. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter MUST be set to  |
	//	|                                      | zero. The lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to   |
	//	|                                      | 0x00000000.                                                                      |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_PEEK_PREV 0x40000012       | If LookupId is 0xFFFFFFFFFFFFFFFF, read the last message. Otherwise,             |
	//	|                                      | read the message preceding the message that is specified by the                  |
	//	|                                      | LookupId parameter. In either case, do not remove the message from               |
	//	|                                      | the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter               |
	//	|                                      | MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The            |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_CURRENT 0x40000020 | Read the message that is specified by the LookupId parameter, and remove         |
	//	|                                      | it from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter       |
	//	|                                      | MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The            |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_NEXT 0x40000021    | If LookupId is 0, read the first message. Otherwise, read the message following  |
	//	|                                      | the message that is specified by the LookupId parameter. Remove the message from |
	//	|                                      | the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor parameter MUST be set   |
	//	|                                      | to zero. The lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set   |
	//	|                                      | to 0x00000000.                                                                   |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_LOOKUP_RECEIVE_PREV 0x40000022    | If LookupId is 0xFFFFFFFFFFFFFFFF, read the last message. Otherwise, read the    |
	//	|                                      | message preceding the message that is specified by the LookupId parameter.       |
	//	|                                      | Remove the message from the queue. The lpRemoteReadDesc2.pRemoteReadDesc.hCursor |
	//	|                                      | parameter MUST be set to zero. The LookupId parameter MUST NOT be set to 0. The  |
	//	|                                      | lpRemoteReadDesc2.pRemoteReadDesc.ulTimeout parameter MUST be set to 0x00000000. |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	RemoteReadDesc2 *RemoteReadDesc2 `idl:"name:lpRemoteReadDesc2" json:"remote_read_desc2"`
	// Return: The RemoteQMStartReceiveByLookupId return value.
	Return int32 `idl:"name:Return" json:"return"`
}

StartReceiveByLookupIDResponse structure represents the RemoteQMStartReceiveByLookupId operation response

func (*StartReceiveByLookupIDResponse) MarshalNDR

func (*StartReceiveByLookupIDResponse) UnmarshalNDR

type StartReceiveRequest

type StartReceiveRequest struct {
	// lpRemoteReadDesc: A pointer to an instance of a REMOTEREADDESC (section 2.2.2.1)
	// structure.
	//
	// In addition, the ulAction member of the lpRemoteReadDesc parameter MUST be one of
	// the following values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|             VALUE OF              |                                                                                  |
	//	|             ULACTION              |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_RECEIVE 0x00000000      | If hCursor is nonzero, read and remove the first message available at the        |
	//	|                                   | current cursor's location walking towards the end of the queue. If hCursor is    |
	//	|                                   | zero, read and remove the message from the front of the queue.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_CURRENT 0x80000000 | If hCursor is nonzero, read the message at the current cursor location, but      |
	//	|                                   | do not remove it from the queue. The cursor location does not change after the   |
	//	|                                   | operation. If hCursor is zero, read the message at the front of the queue, but   |
	//	|                                   | do not remove it from the queue.                                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_NEXT 0x80000001    | Read the message following the message at the current cursor location, but       |
	//	|                                   | do not remove it. The cursor location will then change to the next available     |
	//	|                                   | message, walking towards the end of the queue. The hCursor parameter MUST be set |
	//	|                                   | to a nonzero cursor handle.                                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The hCursor member of lpRemoteReadDesc specifies a handle to an opened cursor. A
	// value of zero indicates that a cursor is not used for this operation.
	//
	// The dwRequestID member of the lpRemoteReadDesc parameter is used in a subsequent
	// call to RemoteQMCancelReceive to correlate that call with the call to RemoteQMStartReceive.
	RemoteReadDesc *RemoteReadDesc `idl:"name:lpRemoteReadDesc" json:"remote_read_desc"`
}

StartReceiveRequest structure represents the RemoteQMStartReceive operation request

func (*StartReceiveRequest) MarshalNDR

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

func (*StartReceiveRequest) UnmarshalNDR

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

type StartReceiveResponse

type StartReceiveResponse struct {
	// pphContext: The server MUST return a non-NULL value for this handle upon success
	// for receive calls. This handle will be used by the client in subsequent calls to
	// RemoteQMEndReceive. This handle MUST NOT be set upon failure, or for peek calls.
	// If this method returns an error, pphContext is undefined and MUST NOT be used as
	// an argument for a call to RemoteQMEndReceive.
	Context *Context `idl:"name:pphContext" json:"context"`
	// lpRemoteReadDesc: A pointer to an instance of a REMOTEREADDESC (section 2.2.2.1)
	// structure.
	//
	// In addition, the ulAction member of the lpRemoteReadDesc parameter MUST be one of
	// the following values.
	//
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	|             VALUE OF              |                                                                                  |
	//	|             ULACTION              |                                     MEANING                                      |
	//	|                                   |                                                                                  |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_RECEIVE 0x00000000      | If hCursor is nonzero, read and remove the first message available at the        |
	//	|                                   | current cursor's location walking towards the end of the queue. If hCursor is    |
	//	|                                   | zero, read and remove the message from the front of the queue.                   |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_CURRENT 0x80000000 | If hCursor is nonzero, read the message at the current cursor location, but      |
	//	|                                   | do not remove it from the queue. The cursor location does not change after the   |
	//	|                                   | operation. If hCursor is zero, read the message at the front of the queue, but   |
	//	|                                   | do not remove it from the queue.                                                 |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_ACTION_PEEK_NEXT 0x80000001    | Read the message following the message at the current cursor location, but       |
	//	|                                   | do not remove it. The cursor location will then change to the next available     |
	//	|                                   | message, walking towards the end of the queue. The hCursor parameter MUST be set |
	//	|                                   | to a nonzero cursor handle.                                                      |
	//	+-----------------------------------+----------------------------------------------------------------------------------+
	//
	// The hCursor member of lpRemoteReadDesc specifies a handle to an opened cursor. A
	// value of zero indicates that a cursor is not used for this operation.
	//
	// The dwRequestID member of the lpRemoteReadDesc parameter is used in a subsequent
	// call to RemoteQMCancelReceive to correlate that call with the call to RemoteQMStartReceive.
	RemoteReadDesc *RemoteReadDesc `idl:"name:lpRemoteReadDesc" json:"remote_read_desc"`
	// Return: The RemoteQMStartReceive return value.
	Return int32 `idl:"name:Return" json:"return"`
}

StartReceiveResponse structure represents the RemoteQMStartReceive operation response

func (*StartReceiveResponse) MarshalNDR

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

func (*StartReceiveResponse) UnmarshalNDR

func (o *StartReceiveResponse) 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