Documentation ¶
Index ¶
- Variables
- func NewQm2qmServerHandle(o Qm2qmServer) dcerpc.ServerHandle
- func Qm2qmServerHandle(ctx context.Context, o Qm2qmServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func RegisterQm2qmServer(conn dcerpc.Conn, o Qm2qmServer, opts ...dcerpc.Option)
- type CancelReceiveRequest
- type CancelReceiveResponse
- type CloseCursorRequest
- type CloseCursorResponse
- type CloseQueueRequest
- type CloseQueueResponse
- type Context
- type EndReceiveRequest
- type EndReceiveResponse
- type GetQMQMServerPortRequest
- type GetQMQMServerPortResponse
- type GetVersionRequest
- type GetVersionResponse
- type OpenQueueRequest
- type OpenQueueResponse
- type PurgeQueueRequest
- type PurgeQueueResponse
- type Qm2qmClient
- type Qm2qmServer
- type RemoteReadAck
- type RemoteReadDesc
- type RemoteReadDesc2
- type Session
- type StartReceive2Request
- type StartReceive2Response
- type StartReceiveByLookupIDRequest
- type StartReceiveByLookupIDResponse
- type StartReceiveRequest
- type StartReceiveResponse
Constants ¶
This section is empty.
Variables ¶
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} )
var (
// import guard
GoPackage = "mqqp"
)
Functions ¶
func NewQm2qmServerHandle ¶
func NewQm2qmServerHandle(o Qm2qmServer) dcerpc.ServerHandle
func Qm2qmServerHandle ¶
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 (*CancelReceiveRequest) UnmarshalNDR ¶
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 (*CancelReceiveResponse) UnmarshalNDR ¶
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 (*CloseCursorRequest) UnmarshalNDR ¶
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 (*CloseCursorResponse) UnmarshalNDR ¶
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 (*CloseQueueRequest) UnmarshalNDR ¶
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 (*CloseQueueResponse) UnmarshalNDR ¶
type Context ¶
type Context dcetypes.ContextHandle
Context structure represents PCTX_REMOTEREAD_HANDLE_TYPE RPC structure.
func (*Context) ContextHandle ¶
func (o *Context) ContextHandle() *dcetypes.ContextHandle
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 (*EndReceiveRequest) UnmarshalNDR ¶
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 (*EndReceiveResponse) UnmarshalNDR ¶
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 (*GetQMQMServerPortRequest) UnmarshalNDR ¶
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 (*GetQMQMServerPortResponse) UnmarshalNDR ¶
type GetVersionRequest ¶
type GetVersionRequest struct { }
GetVersionRequest structure represents the RemoteQmGetVersion operation request
func (*GetVersionRequest) MarshalNDR ¶
func (*GetVersionRequest) UnmarshalNDR ¶
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 (*GetVersionResponse) UnmarshalNDR ¶
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 (*OpenQueueRequest) UnmarshalNDR ¶
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 (*OpenQueueResponse) UnmarshalNDR ¶
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 (*PurgeQueueRequest) UnmarshalNDR ¶
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 (*PurgeQueueResponse) UnmarshalNDR ¶
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 // Conn returns the client connection (unsafe) Conn() dcerpc.Conn }
qm2qm interface.
func NewQm2qmClient ¶
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 (*RemoteReadDesc) UnmarshalNDR ¶
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 (*RemoteReadDesc2) UnmarshalNDR ¶
type Session ¶
type Session dcetypes.ContextHandle
Session structure represents PCTX_RRSESSION_HANDLE_TYPE RPC structure.
func (*Session) ContextHandle ¶
func (o *Session) ContextHandle() *dcetypes.ContextHandle
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 (*StartReceive2Request) UnmarshalNDR ¶
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 (*StartReceive2Response) UnmarshalNDR ¶
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 ¶
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 (*StartReceiveRequest) UnmarshalNDR ¶
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