Documentation ¶
Index ¶
- Variables
- func NewQmcomm2ServerHandle(o Qmcomm2Server) dcerpc.ServerHandle
- func Qmcomm2ServerHandle(ctx context.Context, o Qmcomm2Server, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func RegisterQmcomm2Server(conn dcerpc.Conn, o Qmcomm2Server, opts ...dcerpc.Option)
- type CreateCursorExRequest
- type CreateCursorExResponse
- type QMSendMessageInternalExRequest
- type QMSendMessageInternalExResponse
- type Qmcomm2Client
- type Qmcomm2Server
- type ReceiveMessageExRequest
- type ReceiveMessageExResponse
- type SendMessageExRequest
- type SendMessageExResponse
Constants ¶
This section is empty.
Variables ¶
var ( // Syntax UUID Qmcomm2SyntaxUUID = &uuid.UUID{TimeLow: 0x76d12b80, TimeMid: 0x3467, TimeHiAndVersion: 0x11d3, ClockSeqHiAndReserved: 0x91, ClockSeqLow: 0xff, Node: [6]uint8{0x0, 0x90, 0x27, 0x2f, 0x9e, 0xa3}} // Syntax ID Qmcomm2SyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: Qmcomm2SyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0} )
var (
// import guard
GoPackage = "mqmp"
)
Functions ¶
func NewQmcomm2ServerHandle ¶
func NewQmcomm2ServerHandle(o Qmcomm2Server) dcerpc.ServerHandle
func Qmcomm2ServerHandle ¶
func RegisterQmcomm2Server ¶
func RegisterQmcomm2Server(conn dcerpc.Conn, o Qmcomm2Server, opts ...dcerpc.Option)
Types ¶
type CreateCursorExRequest ¶
type CreateCursorExRequest struct { // hQueue: MUST be an RPC_QUEUE_HANDLE (section 2.2.1.1.2) acquired from the phQueue // parameter of rpc_QMOpenQueueInternal (section 3.1.4.17). Prior to this method being // invoked, the queue MUST NOT have been deleted, and the queue handle MUST NOT have // been closed. Queue *qmcomm.Queue `idl:"name:hQueue" json:"queue"` // pcc: A pointer to a CACCreateRemoteCursor (section 2.2.3.4) structure. MUST NOT // be NULL. Pcc *qmcomm.CreateRemoteCursor `idl:"name:pcc" json:"pcc"` }
CreateCursorExRequest structure represents the rpc_ACCreateCursorEx operation request
func (*CreateCursorExRequest) MarshalNDR ¶
func (*CreateCursorExRequest) UnmarshalNDR ¶
type CreateCursorExResponse ¶
type CreateCursorExResponse struct { // pcc: A pointer to a CACCreateRemoteCursor (section 2.2.3.4) structure. MUST NOT // be NULL. Pcc *qmcomm.CreateRemoteCursor `idl:"name:pcc" json:"pcc"` // Return: The rpc_ACCreateCursorEx return value. Return int32 `idl:"name:Return" json:"return"` }
CreateCursorExResponse structure represents the rpc_ACCreateCursorEx operation response
func (*CreateCursorExResponse) MarshalNDR ¶
func (*CreateCursorExResponse) UnmarshalNDR ¶
type QMSendMessageInternalExRequest ¶
type QMSendMessageInternalExRequest struct { // pQueueFormat: MUST be a pointer to a QUEUE_FORMAT ([MS-MQMQ] section 2.2.7) structure, // which identifies an existing queue to be opened. MUST NOT be NULL, and MUST conform // to the format name syntax rules defined in [MS-MQMQ]. The queue identified by pQueueFormat // MUST be local to the supporting server, and MUST be successfully openable via a call // to rpc_QMOpenQueueInternal with a dwDesiredAccess level of MQ_SEND_ACCESS (0x00000002). QueueFormat *mqmq.QueueFormat `idl:"name:pQueueFormat" json:"queue_format"` // ptb: A CACTransferBufferV2 structure pointer as described in section 2.2.3.3. See // the identical parameter in section 3.1.5.2 for details on this parameter. Ptb *qmcomm.TransferBufferV2 `idl:"name:ptb" json:"ptb"` // pMessageID: An OBJECTID as defined in [MS-MQMQ] section 2.2.8. See the identical // parameter in section 3.1.5.2 for details on this parameter. MessageID *mqmq.ObjectID `idl:"name:pMessageID;pointer:unique" json:"message_id"` }
QMSendMessageInternalExRequest structure represents the QMSendMessageInternalEx operation request
func (*QMSendMessageInternalExRequest) MarshalNDR ¶
func (*QMSendMessageInternalExRequest) UnmarshalNDR ¶
type QMSendMessageInternalExResponse ¶
type QMSendMessageInternalExResponse struct { // pMessageID: An OBJECTID as defined in [MS-MQMQ] section 2.2.8. See the identical // parameter in section 3.1.5.2 for details on this parameter. MessageID *mqmq.ObjectID `idl:"name:pMessageID;pointer:unique" json:"message_id"` // Return: The QMSendMessageInternalEx return value. Return int32 `idl:"name:Return" json:"return"` }
QMSendMessageInternalExResponse structure represents the QMSendMessageInternalEx operation response
func (*QMSendMessageInternalExResponse) MarshalNDR ¶
func (*QMSendMessageInternalExResponse) UnmarshalNDR ¶
type Qmcomm2Client ¶
type Qmcomm2Client interface { // A client invokes QMSendMessageInternalEx if the server returns STATUS_RETRY (0xc000022d) // from a prior call to rpc_ACSendMessageEx. Implementations of this protocol SHOULD // NOT return STATUS_RETRY from rpc_ACSendMessageEx, rendering this method unnecessary. // Such implementations MUST take no action when QMSendMessageInternalEx is invoked // and return MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064). // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<67> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface // specified by the fIP parameter. QMSendMessageInternalEx(context.Context, *QMSendMessageInternalExRequest, ...dcerpc.CallOption) (*QMSendMessageInternalExResponse, error) // A client calls the rpc_ACSendMessageEx method to place a message into a message queue // for delivery. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<72> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // (section 3.1.4.24) method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) // is the interface specified by the fIP parameter. // // Security Considerations: The caller can request that the server perform security // related operations such as signing and encrypting the message. These operations are // requested by setting members of the ptb.CACTransferBufferOld structure. SendMessageEx(context.Context, *SendMessageExRequest, ...dcerpc.CallOption) (*SendMessageExResponse, error) // A client calls rpc_ACReceiveMessageEx to peek or receive a message from a message // queue. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<73><74> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface // specified by the fIP parameter. ReceiveMessageEx(context.Context, *ReceiveMessageExRequest, ...dcerpc.CallOption) (*ReceiveMessageExResponse, error) // A client calls rpc_ACCreateCursorEx to create a cursor for use when peeking and receiving // from a message queue. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<75> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // (section 3.1.4.24) method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) // is the interface specified by the fIP parameter. CreateCursorEx(context.Context, *CreateCursorExRequest, ...dcerpc.CallOption) (*CreateCursorExResponse, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error }
qmcomm2 interface.
func NewQmcomm2Client ¶
type Qmcomm2Server ¶
type Qmcomm2Server interface { // A client invokes QMSendMessageInternalEx if the server returns STATUS_RETRY (0xc000022d) // from a prior call to rpc_ACSendMessageEx. Implementations of this protocol SHOULD // NOT return STATUS_RETRY from rpc_ACSendMessageEx, rendering this method unnecessary. // Such implementations MUST take no action when QMSendMessageInternalEx is invoked // and return MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064). // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<67> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface // specified by the fIP parameter. QMSendMessageInternalEx(context.Context, *QMSendMessageInternalExRequest) (*QMSendMessageInternalExResponse, error) // A client calls the rpc_ACSendMessageEx method to place a message into a message queue // for delivery. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<72> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // (section 3.1.4.24) method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) // is the interface specified by the fIP parameter. // // Security Considerations: The caller can request that the server perform security // related operations such as signing and encrypting the message. These operations are // requested by setting members of the ptb.CACTransferBufferOld structure. SendMessageEx(context.Context, *SendMessageExRequest) (*SendMessageExResponse, error) // A client calls rpc_ACReceiveMessageEx to peek or receive a message from a message // queue. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<73><74> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface // specified by the fIP parameter. ReceiveMessageEx(context.Context, *ReceiveMessageExRequest) (*ReceiveMessageExResponse, error) // A client calls rpc_ACCreateCursorEx to create a cursor for use when peeking and receiving // from a message queue. // // Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise, // the server MUST return a failure HRESULT,<75> and the client MUST treat all failure // HRESULTs identically. Additionally, if a failure HRESULT is returned, the client // MUST disregard all out-parameter values. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. // // This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort // (section 3.1.4.24) method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) // is the interface specified by the fIP parameter. CreateCursorEx(context.Context, *CreateCursorExRequest) (*CreateCursorExResponse, error) }
qmcomm2 server interface.
type ReceiveMessageExRequest ¶
type ReceiveMessageExRequest struct { // hQMContext: A queue context value obtained from the pdwQMContext parameter of rpc_QMOpenQueueInternal. // The queue MUST have been opened with MQ_PEEK_ACCESS or MQ_RECEIVE_ACCESS as the dwDesiredAccess // parameter when rpc_QMOpenQueueInternal was called. Prior to this method being invoked, // the queue MUST NOT have been deleted, and the queue handle for the open queue MUST // NOT have been closed. HQMContext uint32 `idl:"name:hQMContext" json:"h_qm_context"` // ptb: MUST NOT be NULL. The ptb parameter points to a CACTransferBufferV2 (section // 2.2.3.3) structure. Constraints for the member fields are defined following. In the // sections following, "ptb.old" is used as shorthand to refer to the CACTransferBufferOld // member of the CACTransferBufferV2 structure. // // ptb.old.uTransferType MUST be CACTB_RECEIVE (0x00000001). // // ptb.old.Receive.Action MUST contain one of the following values: 0x00000000 (MQ_ACTION_RECEIVE), // 0x80000000 (MQ_ACTION_PEEK_CURRENT) or 0x80000001 (MQ_ACTION_PEEK_NEXT). // // On input, ptb.old.Receive.Cursor can be 0x00000000, in which case no cursor is associated // with the receive operation. Otherwise, ptb.old.Receive.Cursor MUST contain a Cursor // Handle obtained from the pcc.hCursor parameter of rpc_ACCreateCursorEx. The cursor // MUST have been created using the queue handle associated with the queue context value // provided for the hQMContext parameter, and the cursor MUST NOT have been closed prior // to this call. On output, the value of ptb.old.Receive.Cursor MUST be the same as // it was on input. // // ptb.old.Receive.ulResponseFormatNameLen is used for RPC marshaling of the ppResponseFormatName // buffer. On input, the client MUST set this value to the minimum of pulResponseFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppResponseFormatName is NULL, this value MUST // be 0x00000000. On output, the server MUST set this value to the minimum of ulResponseFormatNameLen // and pulResponseFormatNameLenProp. // // On input, ptb.old.Receive.pulResponseFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppResponseFormatName. On output, the server MUST // set this value to indicate the full length of the response queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppResponseFormatName can be NULL, in which case it MUST // be NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulResponseFormatNameLenProp field indicates // that the buffer is large enough to contain the response queue format name for the // retrieved message. // // ptb.old.Receive.ulAdminFormatNameLen is used for RPC marshaling of the ppAdminFormatName // buffer. On input, the client MUST set this value to the minimum of pulAdminFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppAdminFormatName is NULL, this value MUST be // 0x00000000. On output, the server MUST set this value to the minimum of ulAdminFormatNameLen // and pulAdminFormatNameLenProp. // // On input, ptb.old.Receive.pulAdminFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppAdminFormatName. On output, the server MUST set // this value to indicate the full length of the administration queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppAdminFormatName can be NULL, in which case it MUST be // NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulAdminFormatNameLenProp field indicates // that the buffer is large enough to contain the administration queue format name for // the retrieved message. // // ptb.old.Receive.ulDestFormatNameLen is used for RPC marshaling of the ppDestFormatName // buffer. On input, the client MUST set this value to the minimum of pulDestFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppDestFormatName is NULL, this value MUST be 0x00000000. // On output, the server MUST set this value to the minimum of ulDestFormatNameLen and // pulDestFormatNameLenProp. // // On input, ptb.old.Receive.pulDestFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppDestFormatName. On output, the server MUST set // this value to indicate the full length of the destination queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppDestFormatName can be NULL, in which case it MUST be // NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulDestFormatNameLenProp field indicates // that the buffer is large enough to contain the destination queue format name for // the retrieved message. // // ptb.old.Receive.ulOrderingFormatNameLen is used for RPC marshaling of the ppOrderingFormatName // buffer. On input, the client MUST set this value to the minimum of pulOrderingFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppOrderingFormatName is NULL, this value MUST // be 0x00000000. On output, the server MUST set this value to the minimum of ulOrderingFormatNameLen // and pulOrderingFormatNameLenProp. // // On input, ptb.old.Receive.pulOrderingFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppOrderingFormatName. On output, the server MUST // set this value to indicate the full length of the order queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppOrderingFormatName can be NULL, in which case it MUST // be NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulOrderingFormatNameLenProp field indicates // that the buffer is large enough to contain the order queue format name for the retrieved // message. // // On input, ptb.old.ppBody can be NULL, in which case it MUST be NULL on output. Otherwise, // on successful retrieval of a message, prior to filling the buffer, the server MUST // verify that the ulBodyBufferSizeInBytes field indicates that the buffer is large // enough to contain the message body for the retrieved message. On output, the byte // length of the complete body for the retrieved message MUST be returned in the pBodySize // field, if it is not NULL. // // On input, ptb.old.ulBodyBufferSizeInBytes MUST be 0x00000000 if ptb.old.ppBody is // NULL. On output, the value of ptb.old.ulBodyBufferSizeInBytes MUST be the same as // it was on input. // // ptb.old.ulAllocBodyBufferInBytes is used for RPC marshaling of the ppBody buffer. // If ppBody is NULL, this value MUST be 0x00000000. // // On input, ptb.old.pBodySize can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message, the server MUST set this value to // the byte length of the message body. // // ptb.old.ulTitleBufferSizeInWCHARs is used for RPC marshaling of the ptb.old.ppTitle // buffer. On input, the client MUST set this value to the minimum of pulTitleBufferSizeInWCHARs // and 250. If ptb.old.ppTitle is NULL, this value MUST be 0x00000000. On output, the // server MUST set this value to the minimum of ulTitleBufferSizeInWCHARs and pulTitleBufferSizeInWCHARs. // // On input, ptb.old.pulTitleBufferSizeInWCHARs indicates the Unicode character length // of the buffer contained in ppTitle. On output, the server MUST set this value to // indicate the full length of the message label associated with the message being retrieved. // // On input, ptb.old.ppTitle can be NULL, in which case it MUST be NULL on output. Otherwise, // on successful retrieval of a message, prior to filling the buffer, the server MUST // verify that the pulTitleBufferSizeInWCHARs field indicates that the buffer is large // enough to contain the message label for the retrieved message. // // On input, ptb.old.ppMsgExtension can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message, prior to filling the buffer, the // server MUST verify that the ptb.old.ulMsgExtensionBufferInBytes field indicates that // the buffer is large enough to contain the message extension array for the retrieved // message. // // On input, ptb.old.ulMsgExtensionBufferInBytes MUST be 0x00000000 if ptb.old.ppMsgExtension // is NULL. On output, the value of ptb.old.ulMsgExtensionBufferInBytes MUST be the // same as it was on input. // // On input, ptb.old.pMsgExtensionSize can be NULL, in which case it MUST be NULL on // output. Otherwise, the server MUST return the full length of the retrieved message // extension array in ptb.old.pMsgExtensionSize. // // On input, ptb.old.pUow can be NULL, in which case the Receive operation is not associated // with a transaction. Otherwise, ptb.old.pUow MUST contain a 16-byte transaction identifier // which has been enlisted by a prior call to R_QMEnlistTransaction or R_QMEnlistInternalTransaction. // On output, the value of ptb.old.pUow MUST be the same as it was on input. // // On input, ptb.old.ppSenderID can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message and prior to filling the buffer, // the server MUST verify that the ptb.old.uSenderIDLen field indicates that the buffer // is large enough to contain the sender ID buffer for the retrieved message. // // On input, ptb.old.pulSenderIDLenProp can be NULL; otherwise, on output, the server // MUST return the full length of the sender ID buffer for the retrieved message in // ptb.old.pulSenderIDLenProp, or 0x00000000 if the value was not included in the retrieved // message. // // On input, ptb.old.ppwcsProvName can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulProvNameLen // field indicates that the buffer is large enough to contain the null-terminated CSP // name string. If the retrieved message does not include a CSP name buffer, the server // MUST return 0x00000000 for ptb.old.pulAuthProvNameLenProp if the pulAuthProvNameLenProp // pointer is not NULL. // // On input, ptb.old.pulAuthProvNameLenProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the CSP name buffer for // the retrieved message in ptb.old.pulAuthProvNameLenProp, or 0x00000000 if the value // was not included in the retrieved message. // // On input, ptb.old.ppSenderCert can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSenderCertLen // field indicates that the buffer is large enough to contain the sender certificate // buffer. If the retrieved message does not include a sender certificate, the server // MUST return 0x00000000 for ptb.old.pulSenderCertLenProp if the pulSenderCertLenProp // pointer is not NULL. // // On input, ptb.old.pulSenderCertLenProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the sender certificate // buffer for the retrieved message in ptb.old.pulSenderCertLenProp, or 0x00000000 if // the value is not included in the retrieved message. // // On input, ptb.old.ppSymmKeys can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSymmKeysSize // field indicates that the buffer is large enough to contain the symmetric key buffer. // If the retrieved message does not include a symmetric key, the server MUST return // 0x00000000 for ptb.old.pulSymmKeysSizeProp if the pulSymmKeysSizeProp pointer is // not NULL. // // On input, ptb.old.pulSymmKeysSizeProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the symmetric key buffer // for the retrieved message in ptb.old.pulSymmKeysSizeProp or 0x00000000 if the value // is not included in the retrieved message. // // On input, ptb.old.ppSignature can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSignatureSize // field indicates that the buffer is large enough to contain the signed hash buffer. // If the retrieved message does not include a signed hash, the server MUST return 0x00000000 // for ptb.old.pulSignatureSizeProp if the pulSignatureSizeProp pointer is not NULL. // // On input, ptb.old.pulSignatureSizeProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the signed hash buffer // for the retrieved message in ptb.old.pulSignatureSizeProp, or 0x00000000 if the value // is not included in the retrieved message. // // * ptb.old.pClass // // * ptb.old.ppMessageID // // * ptb.old.ppCorrelationID // // * ptb.old.pSentTime // // * ptb.old.pArrivedTime // // * ptb.old.pPriority // // * ptb.old.pDelivery // // * ptb.old.pAcknowledge // // * ptb.old.pAuditing // // * ptb.old.pApplicationTag // // * ptb.old.pulRelativeTimeToQueue // // * ptb.old.pulRelativeTimeToLive // // * ptb.old.pTrace // // * ptb.old.pulPrivLevel // // * ptb.old.pAuthenticated // // * ptb.old.pulHashAlg // // * ptb.old.pulEncryptAlg // // * ptb.old.pulProvType // // * ptb.old.pulSenderIDType // // * ptb.old.ppSrcQMID // // * ptb.old.ppConnectorType // // * ptb.old.pulBodyType // // * ptb.old.pulVersion // // * ptb.pbFirstInXact // // * ptb.pbLastInXact // // * ptb.ppXactID // // * ptb.old.Send // // * ptb.old.CreateCursor // // * ptb.old.Receive.Asynchronous // // * ptb.old.ulAbsoluteTimeToQueue // // * ptb.old.ulRelativeTimeToLive // // * ptb.old.ulAuthLevel // // * ptb.old.bEncrypted // // * ptb.old.bAuthenticated // // * ptb.old.fDefaultProvider Ptb *qmcomm.TransferBufferV2 `idl:"name:ptb" json:"ptb"` }
ReceiveMessageExRequest structure represents the rpc_ACReceiveMessageEx operation request
func (*ReceiveMessageExRequest) MarshalNDR ¶
func (*ReceiveMessageExRequest) UnmarshalNDR ¶
type ReceiveMessageExResponse ¶
type ReceiveMessageExResponse struct { // ptb: MUST NOT be NULL. The ptb parameter points to a CACTransferBufferV2 (section // 2.2.3.3) structure. Constraints for the member fields are defined following. In the // sections following, "ptb.old" is used as shorthand to refer to the CACTransferBufferOld // member of the CACTransferBufferV2 structure. // // ptb.old.uTransferType MUST be CACTB_RECEIVE (0x00000001). // // ptb.old.Receive.Action MUST contain one of the following values: 0x00000000 (MQ_ACTION_RECEIVE), // 0x80000000 (MQ_ACTION_PEEK_CURRENT) or 0x80000001 (MQ_ACTION_PEEK_NEXT). // // On input, ptb.old.Receive.Cursor can be 0x00000000, in which case no cursor is associated // with the receive operation. Otherwise, ptb.old.Receive.Cursor MUST contain a Cursor // Handle obtained from the pcc.hCursor parameter of rpc_ACCreateCursorEx. The cursor // MUST have been created using the queue handle associated with the queue context value // provided for the hQMContext parameter, and the cursor MUST NOT have been closed prior // to this call. On output, the value of ptb.old.Receive.Cursor MUST be the same as // it was on input. // // ptb.old.Receive.ulResponseFormatNameLen is used for RPC marshaling of the ppResponseFormatName // buffer. On input, the client MUST set this value to the minimum of pulResponseFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppResponseFormatName is NULL, this value MUST // be 0x00000000. On output, the server MUST set this value to the minimum of ulResponseFormatNameLen // and pulResponseFormatNameLenProp. // // On input, ptb.old.Receive.pulResponseFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppResponseFormatName. On output, the server MUST // set this value to indicate the full length of the response queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppResponseFormatName can be NULL, in which case it MUST // be NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulResponseFormatNameLenProp field indicates // that the buffer is large enough to contain the response queue format name for the // retrieved message. // // ptb.old.Receive.ulAdminFormatNameLen is used for RPC marshaling of the ppAdminFormatName // buffer. On input, the client MUST set this value to the minimum of pulAdminFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppAdminFormatName is NULL, this value MUST be // 0x00000000. On output, the server MUST set this value to the minimum of ulAdminFormatNameLen // and pulAdminFormatNameLenProp. // // On input, ptb.old.Receive.pulAdminFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppAdminFormatName. On output, the server MUST set // this value to indicate the full length of the administration queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppAdminFormatName can be NULL, in which case it MUST be // NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulAdminFormatNameLenProp field indicates // that the buffer is large enough to contain the administration queue format name for // the retrieved message. // // ptb.old.Receive.ulDestFormatNameLen is used for RPC marshaling of the ppDestFormatName // buffer. On input, the client MUST set this value to the minimum of pulDestFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppDestFormatName is NULL, this value MUST be 0x00000000. // On output, the server MUST set this value to the minimum of ulDestFormatNameLen and // pulDestFormatNameLenProp. // // On input, ptb.old.Receive.pulDestFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppDestFormatName. On output, the server MUST set // this value to indicate the full length of the destination queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppDestFormatName can be NULL, in which case it MUST be // NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulDestFormatNameLenProp field indicates // that the buffer is large enough to contain the destination queue format name for // the retrieved message. // // ptb.old.Receive.ulOrderingFormatNameLen is used for RPC marshaling of the ppOrderingFormatName // buffer. On input, the client MUST set this value to the minimum of pulOrderingFormatNameLenProp // and 1024 bytes. If ptb.old.Receive.ppOrderingFormatName is NULL, this value MUST // be 0x00000000. On output, the server MUST set this value to the minimum of ulOrderingFormatNameLen // and pulOrderingFormatNameLenProp. // // On input, ptb.old.Receive.pulOrderingFormatNameLenProp indicates the Unicode character // length of the buffer contained in ppOrderingFormatName. On output, the server MUST // set this value to indicate the full length of the order queue format name associated // with the message being retrieved. // // On input, ptb.old.Receive.ppOrderingFormatName can be NULL, in which case it MUST // be NULL on output. Otherwise, on successful retrieval of a message and prior to filling // the buffer, the server MUST verify that the pulOrderingFormatNameLenProp field indicates // that the buffer is large enough to contain the order queue format name for the retrieved // message. // // On input, ptb.old.ppBody can be NULL, in which case it MUST be NULL on output. Otherwise, // on successful retrieval of a message, prior to filling the buffer, the server MUST // verify that the ulBodyBufferSizeInBytes field indicates that the buffer is large // enough to contain the message body for the retrieved message. On output, the byte // length of the complete body for the retrieved message MUST be returned in the pBodySize // field, if it is not NULL. // // On input, ptb.old.ulBodyBufferSizeInBytes MUST be 0x00000000 if ptb.old.ppBody is // NULL. On output, the value of ptb.old.ulBodyBufferSizeInBytes MUST be the same as // it was on input. // // ptb.old.ulAllocBodyBufferInBytes is used for RPC marshaling of the ppBody buffer. // If ppBody is NULL, this value MUST be 0x00000000. // // On input, ptb.old.pBodySize can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message, the server MUST set this value to // the byte length of the message body. // // ptb.old.ulTitleBufferSizeInWCHARs is used for RPC marshaling of the ptb.old.ppTitle // buffer. On input, the client MUST set this value to the minimum of pulTitleBufferSizeInWCHARs // and 250. If ptb.old.ppTitle is NULL, this value MUST be 0x00000000. On output, the // server MUST set this value to the minimum of ulTitleBufferSizeInWCHARs and pulTitleBufferSizeInWCHARs. // // On input, ptb.old.pulTitleBufferSizeInWCHARs indicates the Unicode character length // of the buffer contained in ppTitle. On output, the server MUST set this value to // indicate the full length of the message label associated with the message being retrieved. // // On input, ptb.old.ppTitle can be NULL, in which case it MUST be NULL on output. Otherwise, // on successful retrieval of a message, prior to filling the buffer, the server MUST // verify that the pulTitleBufferSizeInWCHARs field indicates that the buffer is large // enough to contain the message label for the retrieved message. // // On input, ptb.old.ppMsgExtension can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message, prior to filling the buffer, the // server MUST verify that the ptb.old.ulMsgExtensionBufferInBytes field indicates that // the buffer is large enough to contain the message extension array for the retrieved // message. // // On input, ptb.old.ulMsgExtensionBufferInBytes MUST be 0x00000000 if ptb.old.ppMsgExtension // is NULL. On output, the value of ptb.old.ulMsgExtensionBufferInBytes MUST be the // same as it was on input. // // On input, ptb.old.pMsgExtensionSize can be NULL, in which case it MUST be NULL on // output. Otherwise, the server MUST return the full length of the retrieved message // extension array in ptb.old.pMsgExtensionSize. // // On input, ptb.old.pUow can be NULL, in which case the Receive operation is not associated // with a transaction. Otherwise, ptb.old.pUow MUST contain a 16-byte transaction identifier // which has been enlisted by a prior call to R_QMEnlistTransaction or R_QMEnlistInternalTransaction. // On output, the value of ptb.old.pUow MUST be the same as it was on input. // // On input, ptb.old.ppSenderID can be NULL, in which case it MUST be NULL on output. // Otherwise, on successful retrieval of a message and prior to filling the buffer, // the server MUST verify that the ptb.old.uSenderIDLen field indicates that the buffer // is large enough to contain the sender ID buffer for the retrieved message. // // On input, ptb.old.pulSenderIDLenProp can be NULL; otherwise, on output, the server // MUST return the full length of the sender ID buffer for the retrieved message in // ptb.old.pulSenderIDLenProp, or 0x00000000 if the value was not included in the retrieved // message. // // On input, ptb.old.ppwcsProvName can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulProvNameLen // field indicates that the buffer is large enough to contain the null-terminated CSP // name string. If the retrieved message does not include a CSP name buffer, the server // MUST return 0x00000000 for ptb.old.pulAuthProvNameLenProp if the pulAuthProvNameLenProp // pointer is not NULL. // // On input, ptb.old.pulAuthProvNameLenProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the CSP name buffer for // the retrieved message in ptb.old.pulAuthProvNameLenProp, or 0x00000000 if the value // was not included in the retrieved message. // // On input, ptb.old.ppSenderCert can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSenderCertLen // field indicates that the buffer is large enough to contain the sender certificate // buffer. If the retrieved message does not include a sender certificate, the server // MUST return 0x00000000 for ptb.old.pulSenderCertLenProp if the pulSenderCertLenProp // pointer is not NULL. // // On input, ptb.old.pulSenderCertLenProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the sender certificate // buffer for the retrieved message in ptb.old.pulSenderCertLenProp, or 0x00000000 if // the value is not included in the retrieved message. // // On input, ptb.old.ppSymmKeys can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSymmKeysSize // field indicates that the buffer is large enough to contain the symmetric key buffer. // If the retrieved message does not include a symmetric key, the server MUST return // 0x00000000 for ptb.old.pulSymmKeysSizeProp if the pulSymmKeysSizeProp pointer is // not NULL. // // On input, ptb.old.pulSymmKeysSizeProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the symmetric key buffer // for the retrieved message in ptb.old.pulSymmKeysSizeProp or 0x00000000 if the value // is not included in the retrieved message. // // On input, ptb.old.ppSignature can be NULL, in which case it MUST be NULL on output. // Otherwise, prior to filling the buffer, the server MUST verify that the ptb.old.ulSignatureSize // field indicates that the buffer is large enough to contain the signed hash buffer. // If the retrieved message does not include a signed hash, the server MUST return 0x00000000 // for ptb.old.pulSignatureSizeProp if the pulSignatureSizeProp pointer is not NULL. // // On input, ptb.old.pulSignatureSizeProp can be NULL, in which case it MUST be NULL // on output. Otherwise, the server MUST return the length of the signed hash buffer // for the retrieved message in ptb.old.pulSignatureSizeProp, or 0x00000000 if the value // is not included in the retrieved message. // // * ptb.old.pClass // // * ptb.old.ppMessageID // // * ptb.old.ppCorrelationID // // * ptb.old.pSentTime // // * ptb.old.pArrivedTime // // * ptb.old.pPriority // // * ptb.old.pDelivery // // * ptb.old.pAcknowledge // // * ptb.old.pAuditing // // * ptb.old.pApplicationTag // // * ptb.old.pulRelativeTimeToQueue // // * ptb.old.pulRelativeTimeToLive // // * ptb.old.pTrace // // * ptb.old.pulPrivLevel // // * ptb.old.pAuthenticated // // * ptb.old.pulHashAlg // // * ptb.old.pulEncryptAlg // // * ptb.old.pulProvType // // * ptb.old.pulSenderIDType // // * ptb.old.ppSrcQMID // // * ptb.old.ppConnectorType // // * ptb.old.pulBodyType // // * ptb.old.pulVersion // // * ptb.pbFirstInXact // // * ptb.pbLastInXact // // * ptb.ppXactID // // * ptb.old.Send // // * ptb.old.CreateCursor // // * ptb.old.Receive.Asynchronous // // * ptb.old.ulAbsoluteTimeToQueue // // * ptb.old.ulRelativeTimeToLive // // * ptb.old.ulAuthLevel // // * ptb.old.bEncrypted // // * ptb.old.bAuthenticated // // * ptb.old.fDefaultProvider Ptb *qmcomm.TransferBufferV2 `idl:"name:ptb" json:"ptb"` // Return: The rpc_ACReceiveMessageEx return value. Return int32 `idl:"name:Return" json:"return"` }
ReceiveMessageExResponse structure represents the rpc_ACReceiveMessageEx operation response
func (*ReceiveMessageExResponse) MarshalNDR ¶
func (*ReceiveMessageExResponse) UnmarshalNDR ¶
type SendMessageExRequest ¶
type SendMessageExRequest struct { // hQueue: MUST be an RPC_QUEUE_HANDLE (section 2.2.1.1.2) obtained from the phQueue // parameter of the rpc_QMOpenQueueInternal (section 3.1.4.17) method called with the // dwDesiredAccess parameter set to MQ_SEND_ACCESS. Prior to this method being invoked, // the queue MUST NOT have been deleted, and the queue handle MUST NOT have been closed. Queue *qmcomm.Queue `idl:"name:hQueue" json:"queue"` // ptb: MUST NOT be NULL. ptb points to a CACTransferBufferV2 (section 2.2.3.3) structure. // Refer to section 2.2.3.3 for definitions of the CACTransferBufferV2 members. Constraints // for the members are defined following. In the section following, "ptb.old" is used // as shorthand to refer to the CACTransferBufferOld member of the CACTransferBufferV2 // structure. // // ptb.old.uTransferType MUST be CACTB_SEND (0x00000000). // // ptb.old.Send.pAdminQueueFormat can be NULL, in which case no administration queue // format name is associated with the message. If not NULL, ptb.old.Send.pAdminQueueFormat // MUST point to a QUEUE_FORMAT ([MS-MQMQ] section 2.2.7) structure. // // ptb.old.Send.pResponseQueueFormat can be NULL, in which case no response queue format // name is associated with the message. If not NULL, ptb.old.Send.pResponseQueueFormat // MUST point to a QUEUE_FORMAT structure. // // If the queue identified hQueue was opened using a direct format name, as specified // in [MS-MQMQ] section 2.1.2, ptb.old.pulPrivLevel MUST be NULL or, if not NULL, MUST // point to the value MQMSG_PRIV_LEVEL_NONE (0x00000000). Encryption MUST NOT be requested // for queues opened with direct format name. // // If the queue identified by hQueue is not an outgoing queue (rather, it is a queue // which is local to the supporting server), and ptb.bEncrypted is not 0x00, the server // MAY return STATUS_RETRY (0xc000022d) and take no action.<68> // // ptb.old.pPriority can be NULL; otherwise, the value MUST be from 0x00 to 0x07 inclusive. // If the value is NULL, the server MUST substitute the default value of 0x03. // // ptb.old.pTrace can be NULL, in which case the server MUST substitute the default // value of 0x00. // // If ptb.old.ulAbsoluteTimeToQueue is 0x00000000, the server MUST substitute the default // value of 0xffffffff. // // ptb.old.ppMessageID can be NULL. If not NULL, the server MUST ignore the in-value. // // ptb.old.ppConnectorType can be NULL. If NULL, then no connector type value is associated // with the message. // // ptb.old.pDelivery can be NULL, in which case the server MUST substitute the default // value of 0x00. However, if ptb.old.pUow contains a nonzero value, the server MUST // substitute the value 0x01 for ptb.old.pDelivery, since transactional messages are // by definition stored as recoverable. // // ptb.old.pAuditing can be NULL, in which case the server MUST substitute the default // value of 0x00. // // ptb.old.pClass can be NULL, in which case the server MUST substitute the default // value of 0x0000. This field can be used by connector applications to produce acknowledgment // messages. Typical applications will always specify MQMSG_CLASS_NORMAL (0x0000). // // ptb.old.ppCorrelationID can be NULL, in which case the server MUST substitute the // default value by filling the array of bytes with hexadecimal zeros (0x00). // // ptb.old.pAcknowledge can be NULL, in which case the server MUST substitute the default // value of 0x00. // // ptb.old.pApplicationTag can be NULL, in which case the server MUST substitute the // default value of 0x00000000. // // ptb.old.ppTitle can be NULL, in which case the server MUST treat the value as an // empty string and MUST ignore the value of ptb.old.ulTitleBufferSizeInWCHARs. If ptb.old.ppTitle // is NOT NULL, the server MUST take the number of Unicode characters indicated by ptb.old.ulTitleBufferSizeInWCHARs. // If ptb.old.ulTitleBufferSizeInWCHARs is greater than 250, the value MUST be truncated // to 250. The server MUST null-terminate the resulting character array. // // ptb.old.ppMsgExtension can be NULL, in which case no extension array is associated // with the message and the server MUST ignore the value of ptb.old.ulMsgExtensionBufferInBytes. // If ptb.old.ppMsgExtension is NOT NULL, the server MUST take the number of bytes indicated // by ptb.old.ulMsgExtensionBufferInBytes. The buffer is an opaque array of bytes and // a terminating null character is not required. // // ptb.old.ppBody can be NULL, in which case no body array is associated with the message // and the server MUST ignore the values of ptb.old.ulBodyBufferSizeInBytes and ptb.old.ulAllocBodyBufferInBytes. // If ptb.old.ppBody is NOT NULL, the server MUST take the number of bytes indicated // by ptb.old.ulBodyBufferSizeInBytes, and allocate body storage for the number of bytes // indicated by ptb.old.ulAllocBodyBufferInBytes. The message body is an opaque array // of bytes and a terminating null character is not required. // // ptb.old.pulPrivLevel can be NULL, in which case the server MUST substitute the default // value of 0x00000000. // // ptb.old.pulHashAlg can be NULL if ptb.old.ulSignatureSize is 0x00000000; otherwise, // it MUST be set to the hash algorithm used to produce the signature of the message, // as specified in section 2.2.3.2.<69> If it is set to NULL, the server MUST substitute // the value of 0x00000000. // // ptb.old.pulEncryptAlg can be NULL if ptb.old.pulPrivLevel is set to NULL; otherwise, // it MUST be set to the encryption algorithm associated with ptb.old.pulPrivLevel, // as specified in section 2.2.3.2.<70> If it is set to NULL, the server MUST substitute // the value of 0x00000000. // // ptb.old.pulBodyType can be NULL, in which case the server MUST substitute the default // value of 0x00000000. // // ptb.old.ppSenderCert can be NULL if ptb.old.ulSenderCertLen is 0x00000000, in which // case an X509 certificate for the sender is not associated with the message. // // ptb.old.pulSenderIDType MUST NOT be NULL if ptb.old.uSenderIDLen is nonzero. // // ptb.old.pSenderID can be NULL if ptb.old.uSenderIDLen is zero and ptb.old.pulSenderIDType // is MQMSG_SENDERID_TYPE_NONE (0x00000000), in which case a SID is not associated with // the message. // // ptb.old.ppSymmKeys can be NULL if ptb.old.ulSymmKeysSize is zero (0x00000000), in // which case an encrypted symmetric key is not associated with the message. Otherwise, // ptb.old.ppSymKeys MUST contain the symmetric key used to encrypt the message body. // The symmetric key MUST be encrypted with the public key of the recipient QM. The // manner by which the public key for the recipient QM is obtained is beyond the scope // of this network protocol. // // If ptb.old.ulSignatureSize is 0x00000000: no digital signature is associated with // the message. // // * If ptb.old.fDefaultProvider is 0x00000000, ptb.old.ppwcsProvName MUST NOT be NULL. // If ptb.old.pulProvType is NOT NULL, it MUST specify the provider type of the CSP // named by ptb.old.ppwcsProvName; otherwise, the server MUST substitute the value of // 0x00000000. Note that ptb.old.ulProvNameLen is used only to affect RPC ( 102555d1-0dbf-4b2e-b78c-e388823d252c#gt_8a7f6700-8311-45bc-af10-82e10accd331 // ) marshaling of the ptb.old.ppwcsProvName buffer. The server MUST otherwise ignore // ptb.old.ulProvNameLen and treat ptb.old.ppwcsProvName as a null-terminated string. // // * If ptb.old.fDefaultProvider is not 0x00000000, ptb.old.pulProvType MUST NOT be // NULL, and MUST contain PROV_RSA_FULL (0x00000001). // // * If ptb.old.pulAuthProvNameLenProp is NULL: // // * If not NULL, the ptb.old.ppSignature buffer contains a simple array of bytes containing // the MSMQ 1.0 digital signature ( 102555d1-0dbf-4b2e-b78c-e388823d252c#gt_cf9a8e0f-8060-464b-a673-fe4f815d3d8a // ). The byte length of the buffer is indicated by ptb.old.ulSignatureSize. // // * Else, if ptb.old.pulAuthProvNameLenProp is NOT NULL: // // * If not NULL, the ptb.old.ppSignature buffer contains two distinct byte array parts. // The first part MUST be ignored by the server. The second part contains an MSMQ 2.0 // digital signature ( 102555d1-0dbf-4b2e-b78c-e388823d252c#gt_46782277-690b-4a09-ad6d-8c36b11e51cd // ). // // * The byte length of the first part is indicated by subtracting the length of the // second part from ptb.old.ulSignatureSize. (Thus, length( [first part] ) + length( // [second part] ) = ptb.old.ulSignatureSize.) // // * The byte length of the second part is indicated by subtracting ptb.old.ulProvNameLen // from ptb.old.pulAuthProvNameLenProp. // // * The second part begins immediately after the first. // // * ptb.old.Receive // // * ptb.old.CreateCursor // // * ptb.old.pSentTime // // * ptb.old.pArrivedTime // // * ptb.old.pBodySize // // * ptb.old.pulTitleBufferSizeInWCHARs // // * ptb.old.pulRelativeTimeToQueue // // * ptb.old.pulRelativeTimeToLive // // * ptb.old.pulSenderIDLenProp // // * ptb.old.ulAuthLevel // // * ptb.old.pAuthenticated // // * ptb.old.bAuthenticated // // * ptb.old.pulSenderCertLenProp // // * ptb.old.pulSymmKeysSizeProp // // * ptb.old.pulSignatureSizeProp // // * ptb.old.ppSrcQMID // // * ptb.old.pMsgExtensionSize // // * ptb.old.pulVersion // // * ptb.pbFirstInXact // // * ptb.pbLastInXact // // * ptb.ppXactID Ptb *qmcomm.TransferBufferV2 `idl:"name:ptb" json:"ptb"` // pMessageID: An OBJECTID as defined in [MS-MQMQ] section 2.2.8. This value can be // NULL. If not NULL, the server MUST return a message identifier for the new message // if this method succeeds. MessageID *mqmq.ObjectID `idl:"name:pMessageID;pointer:unique" json:"message_id"` }
SendMessageExRequest structure represents the rpc_ACSendMessageEx operation request
func (*SendMessageExRequest) MarshalNDR ¶
func (*SendMessageExRequest) UnmarshalNDR ¶
type SendMessageExResponse ¶
type SendMessageExResponse struct { // pMessageID: An OBJECTID as defined in [MS-MQMQ] section 2.2.8. This value can be // NULL. If not NULL, the server MUST return a message identifier for the new message // if this method succeeds. MessageID *mqmq.ObjectID `idl:"name:pMessageID;pointer:unique" json:"message_id"` // Return: The rpc_ACSendMessageEx return value. Return int32 `idl:"name:Return" json:"return"` }
SendMessageExResponse structure represents the rpc_ACSendMessageEx operation response