qmcomm

package
v1.0.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	QmcommSyntaxUUID = &uuid.UUID{TimeLow: 0xfdb3a030, TimeMid: 0x65f, TimeHiAndVersion: 0x11d1, ClockSeqHiAndReserved: 0xbb, ClockSeqLow: 0x9b, Node: [6]uint8{0x0, 0xa0, 0x24, 0xea, 0x55, 0x25}}
	// Syntax ID
	QmcommSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: QmcommSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "mqmp"
)

Functions

func NewQmcommServerHandle

func NewQmcommServerHandle(o QmcommServer) dcerpc.ServerHandle

func QmcommServerHandle

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

func RegisterQmcommServer

func RegisterQmcommServer(conn dcerpc.Conn, o QmcommServer, opts ...dcerpc.Option)

Types

type AbortTransactionRequest

type AbortTransactionRequest struct {
	// phIntXact:  MUST be an RPC_INT_XACT_HANDLE identifying the internal transaction
	// to abort. MUST NOT be NULL. The value of this handle MUST have been acquired from
	// R_QMEnlistInternalTransaction. On return, the server MUST set this parameter to NULL.
	InternalTransaction *InternalTransaction `idl:"name:phIntXact" json:"internal_transaction"`
}

AbortTransactionRequest structure represents the R_QMAbortTransaction operation request

func (*AbortTransactionRequest) MarshalNDR

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

func (*AbortTransactionRequest) UnmarshalNDR

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

type AbortTransactionResponse

type AbortTransactionResponse struct {
	// phIntXact:  MUST be an RPC_INT_XACT_HANDLE identifying the internal transaction
	// to abort. MUST NOT be NULL. The value of this handle MUST have been acquired from
	// R_QMEnlistInternalTransaction. On return, the server MUST set this parameter to NULL.
	InternalTransaction *InternalTransaction `idl:"name:phIntXact" json:"internal_transaction"`
	// Return: The R_QMAbortTransaction return value.
	Return int32 `idl:"name:Return" json:"return"`
}

AbortTransactionResponse structure represents the R_QMAbortTransaction operation response

func (*AbortTransactionResponse) MarshalNDR

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

func (*AbortTransactionResponse) UnmarshalNDR

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

type CloseCursorRequest

type CloseCursorRequest struct {
	// hQueue:  MUST contain the RPC_QUEUE_HANDLE (section 2.2.1.1.2) context handle passed
	// to rpc_ACCreateCursorEx when the cursor specified by hCursor was created.
	Queue *Queue `idl:"name:hQueue" json:"queue"`
	// hCursor:  MUST contain a DWORD value obtained from the pcc.hCursor out-parameter
	// of rpc_ACCreateCursorEx, or the reserved value 0x0000000b.
	Cursor uint32 `idl:"name:hCursor" json:"cursor"`
}

CloseCursorRequest structure represents the rpc_ACCloseCursor operation request

func (*CloseCursorRequest) MarshalNDR

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

func (*CloseCursorRequest) UnmarshalNDR

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

type CloseCursorResponse

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

CloseCursorResponse structure represents the rpc_ACCloseCursor operation response

func (*CloseCursorResponse) MarshalNDR

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

func (*CloseCursorResponse) UnmarshalNDR

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

type CloseHandleRequest

type CloseHandleRequest struct {
	// phQueue:  MUST be a context handle acquired from the phQueue out-parameter of the
	// rpc_QMOpenQueueInternal method. On success, the server MUST set this parameter to
	// NULL.
	Queue *Queue `idl:"name:phQueue" json:"queue"`
}

CloseHandleRequest structure represents the rpc_ACCloseHandle operation request

func (*CloseHandleRequest) MarshalNDR

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

func (*CloseHandleRequest) UnmarshalNDR

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

type CloseHandleResponse

type CloseHandleResponse struct {
	// phQueue:  MUST be a context handle acquired from the phQueue out-parameter of the
	// rpc_QMOpenQueueInternal method. On success, the server MUST set this parameter to
	// NULL.
	Queue *Queue `idl:"name:phQueue" json:"queue"`
	// Return: The rpc_ACCloseHandle return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CloseHandleResponse structure represents the rpc_ACCloseHandle operation response

func (*CloseHandleResponse) MarshalNDR

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

func (*CloseHandleResponse) UnmarshalNDR

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

type CloseRemoteQueueContextRequest

type CloseRemoteQueueContextRequest struct {
	// pphContext:  An RPC context handle as defined in [MS-RPCE] section 2. This handle
	// MUST have been acquired from the pphContext parameter of the R_QMOpenRemoteQueue
	// method.
	Context *Context `idl:"name:pphContext" json:"context"`
}

CloseRemoteQueueContextRequest structure represents the R_QMCloseRemoteQueueContext operation request

func (*CloseRemoteQueueContextRequest) MarshalNDR

func (*CloseRemoteQueueContextRequest) UnmarshalNDR

type CloseRemoteQueueContextResponse

type CloseRemoteQueueContextResponse struct {
	// pphContext:  An RPC context handle as defined in [MS-RPCE] section 2. This handle
	// MUST have been acquired from the pphContext parameter of the R_QMOpenRemoteQueue
	// method.
	Context *Context `idl:"name:pphContext" json:"context"`
}

CloseRemoteQueueContextResponse structure represents the R_QMCloseRemoteQueueContext operation response

func (*CloseRemoteQueueContextResponse) MarshalNDR

func (*CloseRemoteQueueContextResponse) UnmarshalNDR

type CommitTransactionRequest

type CommitTransactionRequest struct {
	// phIntXact:  MUST be an RPC_INT_XACT_HANDLE (section 2.2.1.1.1) identifying the internal
	// transaction to commit. MUST NOT be NULL. The value of this handle MUST have been
	// acquired from R_QMEnlistInternalTransaction (section 3.1.4.14). On return, the server
	// MUST set this parameter to NULL.
	InternalTransaction *InternalTransaction `idl:"name:phIntXact" json:"internal_transaction"`
}

CommitTransactionRequest structure represents the R_QMCommitTransaction operation request

func (*CommitTransactionRequest) MarshalNDR

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

func (*CommitTransactionRequest) UnmarshalNDR

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

type CommitTransactionResponse

type CommitTransactionResponse struct {
	// phIntXact:  MUST be an RPC_INT_XACT_HANDLE (section 2.2.1.1.1) identifying the internal
	// transaction to commit. MUST NOT be NULL. The value of this handle MUST have been
	// acquired from R_QMEnlistInternalTransaction (section 3.1.4.14). On return, the server
	// MUST set this parameter to NULL.
	InternalTransaction *InternalTransaction `idl:"name:phIntXact" json:"internal_transaction"`
	// Return: The R_QMCommitTransaction return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CommitTransactionResponse structure represents the R_QMCommitTransaction operation response

func (*CommitTransactionResponse) MarshalNDR

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

func (*CommitTransactionResponse) UnmarshalNDR

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

type Context

type Context dcetypes.ContextHandle

Context structure represents PCTX_OPENREMOTE_HANDLE_TYPE RPC structure.

func (*Context) ContextHandle

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

func (*Context) MarshalNDR

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

func (*Context) UnmarshalNDR

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

type CreateObjectInternalRequest

type CreateObjectInternalRequest struct {
	// dwObjectType:  MUST be 0x00000001 in order to specify a queue.
	ObjectType uint32 `idl:"name:dwObjectType" json:"object_type"`
	// lpwcsPathName:  MUST be a pointer to a null-terminated string containing a path
	// name for the queue to be created. The path name MUST identify a private queue local
	// to the supporting server by including "." as the computer name or by using the supporting
	// server computer name.
	PathName string `idl:"name:lpwcsPathName;string" json:"path_name"`
	// SDSize:  MUST be set to the byte length of the SECURITY_DESCRIPTOR buffer pointed
	// to by pSecurityDescriptor. If pSecurityDescriptor is NULL, this parameter MUST be
	// 0x00000000.
	SecurityDescriptorSize uint32 `idl:"name:SDSize" json:"security_descriptor_size"`
	// pSecurityDescriptor:  Must be a pointer to an array of bytes containing a SECURITY_DESCRIPTOR
	// structure. The SECURITY_DESCRIPTOR specifies the initial security configuration for
	// the queue to be created. This value can be NULL, in which case the server MUST provide
	// a default security configuration for the new queue. The SECURITY_DESCRIPTOR structure
	// is defined in [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SDSize);pointer:unique" json:"security_descriptor"`
	// cp:  MUST be set to the size (in elements) of the arrays aProp and apVar. The arrays
	// aProp and apVar MUST have an identical number of elements and MUST contain at least
	// one element.
	CreatePartition uint32 `idl:"name:cp" json:"create_partition"`
	// aProp:  MUST be an array of queue property identifiers that, together with the apVar
	// array, specify the initial queue property values for the new queue. Each element
	// MUST specify a value from the queue property identifiers table defined in [MS-MQMQ]
	// section 2.3.1. Each element MUST specify the property identifier for the corresponding
	// property value at the same element index in apVar and MUST contain at least one element.
	// Each element MUST contain a queue property identifier; identifiers for other properties
	// are not permitted.
	Property []uint32 `idl:"name:aProp;size_is:(cp)" json:"property"`
	// apVar:  MUST be an array that specifies the property values to associate with the
	// new queue. Each element MUST specify the property value for the corresponding property
	// identifier at the same element index in aProp and MUST contain at least one element.
	Var []*mqmq.PropertyVariant `idl:"name:apVar;size_is:(cp)" json:"var"`
}

CreateObjectInternalRequest structure represents the R_QMCreateObjectInternal operation request

func (*CreateObjectInternalRequest) MarshalNDR

func (*CreateObjectInternalRequest) UnmarshalNDR

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

type CreateObjectInternalResponse

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

CreateObjectInternalResponse structure represents the R_QMCreateObjectInternal operation response

func (*CreateObjectInternalResponse) MarshalNDR

func (*CreateObjectInternalResponse) UnmarshalNDR

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

type CreateRemoteCursor

type CreateRemoteCursor struct {
	// hCursor:   The value for this field returned from rpc_ACCreateCursorEx (section 3.1.5.4)
	// contains a DWORD value representing an opened cursor.
	Cursor uint32 `idl:"name:hCursor" json:"cursor"`
	// srv_hACQueue:  The value for this field returned from rpc_ACCreateCursorEx is passed
	// to the hQueue parameter of R_QMCreateRemoteCursor (section 3.1.4.4) when invoked
	// as part of a remote cursor creation call sequence.
	ACQueue uint32 `idl:"name:srv_hACQueue" json:"ac_queue"`
	// cli_pQMQueue:  The value for this field returned from rpc_ACCreateCursorEx is passed
	// to the pQueue parameter of R_QMGetRemoteQueueName (section 3.1.4.1) when invoked
	// as part of a remote cursor creation call sequence.
	QMQueue uint32 `idl:"name:cli_pQMQueue" json:"qm_queue"`
}

CreateRemoteCursor structure represents CACCreateRemoteCursor RPC structure.

The CACCreateRemoteCursor structure contains the elements necessary for creating a cursor on a queue.

func (*CreateRemoteCursor) MarshalNDR

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

func (*CreateRemoteCursor) UnmarshalNDR

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

type CreateRemoteCursorRequest

type CreateRemoteCursorRequest struct {
	// ptb1:  MUST be ignored. Clients SHOULD pass NULL.<29>
	Buffer1 *TransferBufferV1 `idl:"name:ptb1" json:"buffer1"`
	// hQueue: A DWORD that contains the value of the Handle attribute of an OpenQueueDescriptor
	// ([MS-MQDMPR] section 3.1.1.16) ADM element instance. The client obtains this value
	// from either the pcc.srv_hACQueue out-parameter of rpc_ACCreateCursorEx or the phQueue
	// out-parameter of R_QMOpenRemoteQueue.
	Queue uint32 `idl:"name:hQueue" json:"queue"`
}

CreateRemoteCursorRequest structure represents the R_QMCreateRemoteCursor operation request

func (*CreateRemoteCursorRequest) MarshalNDR

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

func (*CreateRemoteCursorRequest) UnmarshalNDR

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

type CreateRemoteCursorResponse

type CreateRemoteCursorResponse struct {
	// phCursor: A pointer to a DWORD to receive the value of the Handle attribute of the
	// Cursor ([MS-MQDMPR] section 3.2) ADM element instance that references the created
	// cursor. It MUST NOT be NULL on input.
	Cursor uint32 `idl:"name:phCursor" json:"cursor"`
	// Return: The R_QMCreateRemoteCursor return value.
	Return int32 `idl:"name:Return" json:"return"`
}

CreateRemoteCursorResponse structure represents the R_QMCreateRemoteCursor operation response

func (*CreateRemoteCursorResponse) MarshalNDR

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

func (*CreateRemoteCursorResponse) UnmarshalNDR

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

type DeleteObjectRequest

type DeleteObjectRequest struct {
	// pObjectFormat:  MUST point to an OBJECT_FORMAT structure that identifies an existing
	// local private queue on the supporting server. MUST NOT be NULL. The ObjType member
	// of the structure MUST be 0x00000001. The pQueueFormat member MUST NOT be NULL.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
}

DeleteObjectRequest structure represents the R_QMDeleteObject operation request

func (*DeleteObjectRequest) MarshalNDR

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

func (*DeleteObjectRequest) UnmarshalNDR

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

type DeleteObjectResponse

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

DeleteObjectResponse structure represents the R_QMDeleteObject operation response

func (*DeleteObjectResponse) MarshalNDR

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

func (*DeleteObjectResponse) UnmarshalNDR

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

type EnlistInternalTransactionRequest

type EnlistInternalTransactionRequest struct {
	// pUow:  MUST point to an XACTUOW structure that uniquely identifies the internal
	// transaction in which the server is to enlist.<44>
	UOW *mqmq.TransactionUOW `idl:"name:pUow" json:"uow"`
}

EnlistInternalTransactionRequest structure represents the R_QMEnlistInternalTransaction operation request

func (*EnlistInternalTransactionRequest) MarshalNDR

func (*EnlistInternalTransactionRequest) UnmarshalNDR

type EnlistInternalTransactionResponse

type EnlistInternalTransactionResponse struct {
	// phIntXact:  A pointer to receive the new RPC_INT_XACT_HANDLE which represents the
	// new internal transaction context.
	InternalTransaction *InternalTransaction `idl:"name:phIntXact" json:"internal_transaction"`
	// Return: The R_QMEnlistInternalTransaction return value.
	Return int32 `idl:"name:Return" json:"return"`
}

EnlistInternalTransactionResponse structure represents the R_QMEnlistInternalTransaction operation response

func (*EnlistInternalTransactionResponse) MarshalNDR

func (*EnlistInternalTransactionResponse) UnmarshalNDR

type EnlistTransactionRequest

type EnlistTransactionRequest struct {
	// pUow:  MUST point to an XACTUOW structure ([MS-MQMQ] section 2.2.18.1.8) that identifies
	// the external transaction in which the server is to enlist, as specified in section
	// 2.2.3.1.
	UOW *mqmq.TransactionUOW `idl:"name:pUow" json:"uow"`
	// cbCookie:  MUST be set to the byte length of the buffer pointed to by pbCookie.
	CookieLength uint32 `idl:"name:cbCookie" json:"cookie_length"`
	// pbCookie: MUST be a pointer to an array of bytes containing an exported transaction
	// cookie, which can be obtained as specified in [MS-DTCO] section 3.3.4.14.
	Cookie []byte `idl:"name:pbCookie;size_is:(cbCookie)" json:"cookie"`
}

EnlistTransactionRequest structure represents the R_QMEnlistTransaction operation request

func (*EnlistTransactionRequest) MarshalNDR

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

func (*EnlistTransactionRequest) UnmarshalNDR

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

type EnlistTransactionResponse

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

EnlistTransactionResponse structure represents the R_QMEnlistTransaction operation response

func (*EnlistTransactionResponse) MarshalNDR

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

func (*EnlistTransactionResponse) UnmarshalNDR

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

type GetObjectPropertiesRequest

type GetObjectPropertiesRequest struct {
	// pObjectFormat:  MUST point to an OBJECT_FORMAT structure which identifies an existing
	// local private queue on the supporting server. MUST NOT be NULL. The ObjType member
	// of the structure MUST be 0x00000001. The pQueueFormat member MUST NOT be NULL.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
	// cp:  MUST be set to the size (in elements) of the arrays aProp and apVar. The arrays
	// aProp and apVar MUST have an identical number of elements and MUST contain at least
	// one element.
	CreatePartition uint32 `idl:"name:cp" json:"create_partition"`
	// aProp:  MUST be an array of queue property identifiers of properties to retrieve.
	// Each element MUST specify a value from the queue property identifiers table defined
	// in [MS-MQMQ] section 2.3.1. Each element MUST specify the queue property identifier
	// for the corresponding queue property value at the same element index in apVar. MUST
	// contain at least one element.
	Property []uint32 `idl:"name:aProp;size_is:(cp)" json:"property"`
	// apVar: MUST contain at least one element. On input, each element MUST be initialized
	// to the appropriate VARTYPE for the associated property specified by the same element
	// in aProp, or VT_NULL. Otherwise, the server SHOULD return the failure HRESULT MQ_ERROR_PROPERTY
	// (0xc00e0002).<36> On success, the server MUST populate the elements of this array
	// with property values for the properties identified by the corresponding elements
	// of aProp.
	Var []*mqmq.PropertyVariant `idl:"name:apVar;size_is:(cp)" json:"var"`
}

GetObjectPropertiesRequest structure represents the R_QMGetObjectProperties operation request

func (*GetObjectPropertiesRequest) MarshalNDR

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

func (*GetObjectPropertiesRequest) UnmarshalNDR

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

type GetObjectPropertiesResponse

type GetObjectPropertiesResponse struct {
	// apVar: MUST contain at least one element. On input, each element MUST be initialized
	// to the appropriate VARTYPE for the associated property specified by the same element
	// in aProp, or VT_NULL. Otherwise, the server SHOULD return the failure HRESULT MQ_ERROR_PROPERTY
	// (0xc00e0002).<36> On success, the server MUST populate the elements of this array
	// with property values for the properties identified by the corresponding elements
	// of aProp.
	Var []*mqmq.PropertyVariant `idl:"name:apVar;size_is:(cp)" json:"var"`
	// Return: The R_QMGetObjectProperties return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetObjectPropertiesResponse structure represents the R_QMGetObjectProperties operation response

func (*GetObjectPropertiesResponse) MarshalNDR

func (*GetObjectPropertiesResponse) UnmarshalNDR

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

type GetObjectSecurityInternalRequest

type GetObjectSecurityInternalRequest struct {
	// pObjectFormat:  MUST point to an OBJECT_FORMAT structure which identifies an existing
	// local private queue on the supporting server for which the security configuration
	// is to be retrieved. It MUST NOT be NULL. The ObjType member of the structure MUST
	// be 0x00000001, and the pQueueFormat member MUST NOT be NULL.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
	// RequestedInformation:  MUST contain a value from the SECURITY_INFORMATION enumeration
	// which indicates the portions of the SECURITY_DESCRIPTOR ([MS-DTYP] section 2.4.6)
	// to be retrieved from the queue identified by pObjectFormat. The SECURITY_INFORMATION
	// enumeration is defined in [MS-MQMQ] section 2.2.3.
	RequestedInformation uint32 `idl:"name:RequestedInformation" json:"requested_information"`
	// nLength:  MUST indicate the byte length of the buffer pointed to by pSecurityDescriptor.
	// This value can be 0x00000000.
	Length uint32 `idl:"name:nLength" json:"length"`
}

GetObjectSecurityInternalRequest structure represents the R_QMGetObjectSecurityInternal operation request

func (*GetObjectSecurityInternalRequest) MarshalNDR

func (*GetObjectSecurityInternalRequest) UnmarshalNDR

type GetObjectSecurityInternalResponse

type GetObjectSecurityInternalResponse struct {
	// pSecurityDescriptor:  MUST be a pointer to an array of bytes into which the server
	// MUST write a self-relative SECURITY_DESCRIPTOR structure. The server MUST NOT write
	// more than nLength bytes to the buffer. If the buffer provided by the client is too
	// small (as indicated by the nLength parameter) to contain the SECURITY_DESCRIPTOR
	// for the queue identified by pObjectFormat, the server MUST return MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL
	// (0xc00e0023). This parameter can be NULL if nLength is 0x00000000.
	//
	// The SECURITY_DESCRIPTOR structure is defined in [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(nLength)" json:"security_descriptor"`
	// lpnLengthNeeded: MUST NOT be NULL. The server MUST set this DWORD to the byte length
	// of the SECURITY_DESCRIPTOR structure for the queue identified by pObjectFormat.
	LengthNeeded uint32 `idl:"name:lpnLengthNeeded" json:"length_needed"`
	// Return: The R_QMGetObjectSecurityInternal return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetObjectSecurityInternalResponse structure represents the R_QMGetObjectSecurityInternal operation response

func (*GetObjectSecurityInternalResponse) MarshalNDR

func (*GetObjectSecurityInternalResponse) UnmarshalNDR

type GetRTQMServerPortRequest

type GetRTQMServerPortRequest struct {
	// fIP:  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. The default port number is 2103.                     |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IP_READ 0x00000001       | Requests that the server return the RPC port number for the qm2qm interface, as  |
	//	|                          | specified in [MS-MQQP], bound to TCP/IP. 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.<65> The default port number is 2103.                    |
	//	+--------------------------+----------------------------------------------------------------------------------+
	//	| IPX_READ 0x00000003      | Requests that the server return the RPC port number for the qm2qm interface, as  |
	//	|                          | specified in [MS-MQQP], bound to SPX.<66> The default port number is 2105.       |
	//	+--------------------------+----------------------------------------------------------------------------------+
	IP uint32 `idl:"name:fIP" json:"ip"`
}

GetRTQMServerPortRequest structure represents the R_QMGetRTQMServerPort operation request

func (*GetRTQMServerPortRequest) MarshalNDR

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

func (*GetRTQMServerPortRequest) UnmarshalNDR

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

type GetRTQMServerPortResponse

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

GetRTQMServerPortResponse structure represents the R_QMGetRTQMServerPort operation response

func (*GetRTQMServerPortResponse) MarshalNDR

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

func (*GetRTQMServerPortResponse) UnmarshalNDR

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

type GetRemoteQueueNameRequest

type GetRemoteQueueNameRequest struct {
	// pQueue:  MUST be a DWORD that contains a queue context value obtained from the cli_pQMQueue
	// member of the structure returned by the rpc_ACCreateCursorEx method of the qmcomm2
	// interface. See section 4.4 for an example illustrating this value being obtained.
	QueueID uint32 `idl:"name:pQueue" json:"queue_id"`
	// lplpRemoteQueueName:  A pointer to a buffer to receive the null-terminated name
	// of the remote queue associated with pQueue. On input, this value MUST be NULL.
	RemoteQueueName string `idl:"name:lplpRemoteQueueName;string;pointer:ptr" json:"remote_queue_name"`
}

GetRemoteQueueNameRequest structure represents the R_QMGetRemoteQueueName operation request

func (*GetRemoteQueueNameRequest) MarshalNDR

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

func (*GetRemoteQueueNameRequest) UnmarshalNDR

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

type GetRemoteQueueNameResponse

type GetRemoteQueueNameResponse struct {
	// lplpRemoteQueueName:  A pointer to a buffer to receive the null-terminated name
	// of the remote queue associated with pQueue. On input, this value MUST be NULL.
	RemoteQueueName string `idl:"name:lplpRemoteQueueName;string;pointer:ptr" json:"remote_queue_name"`
	// Return: The R_QMGetRemoteQueueName return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetRemoteQueueNameResponse structure represents the R_QMGetRemoteQueueName operation response

func (*GetRemoteQueueNameResponse) MarshalNDR

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

func (*GetRemoteQueueNameResponse) UnmarshalNDR

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

type GetTMWhereaboutsRequest

type GetTMWhereaboutsRequest struct {
	// cbBufSize:  MUST be set to the byte length of the buffer pointed to by pbWhereabouts.
	// If this value is 0x00000000, the server MUST ignore the pbWhereabouts parameter.
	BufferLength uint32 `idl:"name:cbBufSize" json:"buffer_length"`
}

GetTMWhereaboutsRequest structure represents the R_QMGetTmWhereabouts operation request

func (*GetTMWhereaboutsRequest) MarshalNDR

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

func (*GetTMWhereaboutsRequest) UnmarshalNDR

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

type GetTMWhereaboutsResponse

type GetTMWhereaboutsResponse struct {
	// pbWhereabouts:  On success, points to an array of bytes containing a Distributed
	// Transaction Coordinator (DTC) SWhereabouts structure, as specified in [MS-DTCO] section
	// 2.2.5.11.
	Whereabouts []byte `idl:"name:pbWhereabouts;size_is:(cbBufSize)" json:"whereabouts"`
	// pcbWhereabouts:  On success, or ifMQ_ERROR_USER_BUFFER_TOO_SMALL (0xc00e0028) is
	// returned, pcbWhereabouts points to a DWORD containing the byte length of the SWhereabouts
	// structure retrieved from the DTC; otherwise, this parameter MUST be ignored.
	WhereaboutsLength uint32 `idl:"name:pcbWhereabouts" json:"whereabouts_length"`
	// Return: The R_QMGetTmWhereabouts return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetTMWhereaboutsResponse structure represents the R_QMGetTmWhereabouts operation response

func (*GetTMWhereaboutsResponse) MarshalNDR

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

func (*GetTMWhereaboutsResponse) UnmarshalNDR

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

type HandleToFormatNameRequest

type HandleToFormatNameRequest 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 *Queue `idl:"name:hQueue" json:"queue"`
	// dwFormatNameRPCBufferLen:  Length of the buffer (in Unicode characters) provided
	// for the lpwcsFormatName parameter.
	FormatNameRPCBufferLength uint32 `idl:"name:dwFormatNameRPCBufferLen" json:"format_name_rpc_buffer_length"`
	// lpwcsFormatName:  Pointer to a Unicode character buffer into which the server writes
	// the format name (as specified in [MS-MQMQ]) for the queue identified by the hQueue
	// parameter. The character buffer MUST be null-terminated by the server prior to returning,
	// even if the provided buffer is not large enough to contain the entire format name
	// string. Can be NULL if dwFormatNameRPCBufferLen is 0x00000000. MUST NOT be NULL if
	// dwFormatNameRPCBufferLen is nonzero.
	FormatName string `` /* 132-byte string literal not displayed */
	// pdwLength:  On input, the maximum number of Unicode characters to write to the lpwcsFormatName
	// buffer. This value MUST be equal to the dwFormatNameRPCBufferLen parameter. On return,
	// the server MUST update the value of this parameter to indicate the complete length
	// of the format name string for the queue identified by hQueue, without regard for
	// the size of the provided buffer.
	Length uint32 `idl:"name:pdwLength" json:"length"`
}

HandleToFormatNameRequest structure represents the rpc_ACHandleToFormatName operation request

func (*HandleToFormatNameRequest) MarshalNDR

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

func (*HandleToFormatNameRequest) UnmarshalNDR

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

type HandleToFormatNameResponse

type HandleToFormatNameResponse struct {
	// lpwcsFormatName:  Pointer to a Unicode character buffer into which the server writes
	// the format name (as specified in [MS-MQMQ]) for the queue identified by the hQueue
	// parameter. The character buffer MUST be null-terminated by the server prior to returning,
	// even if the provided buffer is not large enough to contain the entire format name
	// string. Can be NULL if dwFormatNameRPCBufferLen is 0x00000000. MUST NOT be NULL if
	// dwFormatNameRPCBufferLen is nonzero.
	FormatName string `` /* 132-byte string literal not displayed */
	// pdwLength:  On input, the maximum number of Unicode characters to write to the lpwcsFormatName
	// buffer. This value MUST be equal to the dwFormatNameRPCBufferLen parameter. On return,
	// the server MUST update the value of this parameter to indicate the complete length
	// of the format name string for the queue identified by hQueue, without regard for
	// the size of the provided buffer.
	Length uint32 `idl:"name:pdwLength" json:"length"`
	// Return: The rpc_ACHandleToFormatName return value.
	Return int32 `idl:"name:Return" json:"return"`
}

HandleToFormatNameResponse structure represents the rpc_ACHandleToFormatName operation response

func (*HandleToFormatNameResponse) MarshalNDR

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

func (*HandleToFormatNameResponse) UnmarshalNDR

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

type InternalTransaction

type InternalTransaction dcetypes.ContextHandle

InternalTransaction structure represents RPC_INT_XACT_HANDLE RPC structure.

func (*InternalTransaction) ContextHandle

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

func (*InternalTransaction) MarshalNDR

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

func (*InternalTransaction) UnmarshalNDR

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

type ObjectFormat

type ObjectFormat struct {
	ObjectType   uint32                     `idl:"name:ObjType" json:"object_type"`
	ObjectFormat *ObjectFormat_ObjectFormat `idl:"name:ObjectFormat;switch_is:ObjType" json:"object_format"`
}

ObjectFormat structure represents OBJECT_FORMAT RPC structure.

func (*ObjectFormat) MarshalNDR

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

func (*ObjectFormat) UnmarshalNDR

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

type ObjectFormat_ObjectFormat

type ObjectFormat_ObjectFormat struct {
	// Types that are assignable to Value
	//
	// *ObjectFormat_QueueFormat
	Value is_ObjectFormat_ObjectFormat `json:"value"`
}

ObjectFormat_ObjectFormat structure represents OBJECT_FORMAT union anonymous member.

func (*ObjectFormat_ObjectFormat) GetValue

func (o *ObjectFormat_ObjectFormat) GetValue() any

func (*ObjectFormat_ObjectFormat) MarshalUnionNDR

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

func (*ObjectFormat_ObjectFormat) NDRSwitchValue

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

func (*ObjectFormat_ObjectFormat) UnmarshalUnionNDR

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

type ObjectFormat_QueueFormat

type ObjectFormat_QueueFormat struct {
	QueueFormat *mqmq.QueueFormat `idl:"name:pQueueFormat" json:"queue_format"`
}

ObjectFormat_QueueFormat structure represents ObjectFormat_ObjectFormat RPC union arm.

It has following labels: 1

func (*ObjectFormat_QueueFormat) MarshalNDR

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

func (*ObjectFormat_QueueFormat) UnmarshalNDR

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

type ObjectPathToObjectFormatRequest

type ObjectPathToObjectFormatRequest struct {
	// lpwcsPathName:  MUST be a pointer to a null-terminated path name string, as defined
	// by [MS-MQMQ] section 2.1.1. The path name MUST identify an existing private queue
	// located on a supporting server.
	PathName string `idl:"name:lpwcsPathName;string" json:"path_name"`
	// pObjectFormat:  MUST be a pointer to an OBJECT_FORMAT structure, as specified in
	// section 2.2.3.5. On success, this structure MUST be populated with a direct format
	// name or private format name for the queue identified by lpwcsPathName. This specification
	// does not mandate the process through which a server produces a format name for a
	// given path name.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
}

ObjectPathToObjectFormatRequest structure represents the R_QMObjectPathToObjectFormat operation request

func (*ObjectPathToObjectFormatRequest) MarshalNDR

func (*ObjectPathToObjectFormatRequest) UnmarshalNDR

type ObjectPathToObjectFormatResponse

type ObjectPathToObjectFormatResponse struct {
	// pObjectFormat:  MUST be a pointer to an OBJECT_FORMAT structure, as specified in
	// section 2.2.3.5. On success, this structure MUST be populated with a direct format
	// name or private format name for the queue identified by lpwcsPathName. This specification
	// does not mandate the process through which a server produces a format name for a
	// given path name.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
	// Return: The R_QMObjectPathToObjectFormat return value.
	Return int32 `idl:"name:Return" json:"return"`
}

ObjectPathToObjectFormatResponse structure represents the R_QMObjectPathToObjectFormat operation response

func (*ObjectPathToObjectFormatResponse) MarshalNDR

func (*ObjectPathToObjectFormatResponse) UnmarshalNDR

type OpenQueueInternalRequest

type OpenQueueInternalRequest 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].
	QueueFormat *mqmq.QueueFormat `idl:"name:pQueueFormat" json:"queue_format"`
	// dwDesiredAccess: A DWORD that specifies the access mode requested for the queue.
	// The access mode defines the set of operations which can be invoked using the returned
	// queue handle. The value MUST be one of the following:
	//
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                              |                                                                                  |
	//	|                    VALUE                     |                                     MEANING                                      |
	//	|                                              |                                                                                  |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_RECEIVE_ACCESS 0x00000001                 | The server MUST permit only the following operations using the returned queue    |
	//	|                                              | handle: Message peek Message receive (peek and delete) Queue purge               |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_SEND_ACCESS 0x00000002                    | The server MUST permit only message send operations using the returned queue     |
	//	|                                              | handle.                                                                          |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_PEEK_ACCESS 0x00000020                    | The server MUST permit only message peek operations using the returned queue     |
	//	|                                              | handle.                                                                          |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_RECEIVE_ACCESS|MQ_ADMIN_ACCESS 0x00000081 | The returned queue handle MUST perform operations on the outgoing queue          |
	//	|                                              | associated with the queue identified by pQueueFormat. Additionally, the server   |
	//	|                                              | MUST permit only the following operations using the returned queue handle:       |
	//	|                                              | Message peek Message receive (peek and delete) Queue purge                       |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_PEEK_ACCESS|MQ_ADMIN_ACCESS 0x000000a0    | The returned queue handle MUST perform operations on the outgoing queue          |
	//	|                                              | associated with the queue identified by pQueueFormat. Additionally, the server   |
	//	|                                              | MUST permit only message peek operations using the returned queue handle.        |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//
	// If pQueueFormat contains an HTTP or multicast format name, R_QMOpenRemoteQueue (section
	// 3.1.4.2) MUST be MQ_SEND_ACCESS (0x00000002).
	//
	// If pQueueFormat identifies a sub-queue, dwDesiredAccess MUST NOT be MQ_SEND_ACCESS
	// (0x00000002).
	//
	// If pQueueFormat identifies a system, journal, machine, or connector queue, dwDesiredAccess
	// MUST be MQ_RECEIVE_ACCESS (0x00000001) or MQ_PEEK_ACCESS (0x00000020).
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwShareMode:  Specifies the exclusivity level for the opened queue. The value MUST
	// be one of the following:
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|                                  |                                                                                  |
	//	|              VALUE               |                                     MEANING                                      |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_DENY_NONE 0x00000000          | The queue is not opened exclusively.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_DENY_RECEIVE_SHARE 0x00000001 | The queue is opened for exclusive read access. If the queue has already been     |
	//	|                                  | opened for read access, the server MUST return a failure HRESULT. If the queue   |
	//	|                                  | is opened successfully for exclusive read access, subsequent attempts to open    |
	//	|                                  | the same queue for read access MUST return a failure HRESULT until the queue has |
	//	|                                  | been closed.                                                                     |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	ShareMode uint32 `idl:"name:dwShareMode" json:"share_mode"`
	// hRemoteQueue: MUST be 0x00000000, or MUST contain a DWORD value obtained from the
	// phQueue out-parameter of the R_QMOpenRemoteQueue method invoked at a remote queue
	// manager.
	RemoteQueue uint32 `idl:"name:hRemoteQueue" json:"remote_queue"`
	// lplpRemoteQueueName:  On input, the server MUST ignore lplpRemoteQueueName. If hRemoteQueue
	// is 0x00000000 and the queue identified by pQueueFormat is located at a remote queue
	// manager, the server MUST set this string to a null-terminated path name, from which
	// the client can determine the computer name of the remote queue manager, as specified
	// in [MS-MQMQ] section 2.1.1.
	RemoteQueueName string `idl:"name:lplpRemoteQueueName;string;pointer:ptr" json:"remote_queue_name"`
	// dwpQueue: If hRemoteQueue is 0x00000000, dwpQueue MUST be NULL; otherwise, dwpQueue
	// MUST contain a DWORD value obtained from the dwpQueue out-parameter of the R_QMOpenRemoteQueue
	// method invoked at a remote queue manager.
	QueueID uint32 `idl:"name:dwpQueue" json:"queue_id"`
	// pLicGuid:  MUST be a pointer to a valid GUID which uniquely identifies the client.<45><46>
	// The server MAY ignore this parameter.<47>
	ClientGUID *dtyp.GUID `idl:"name:pLicGuid" json:"client_guid"`
	// lpClientName:  MUST be a null-terminated string containing the client's computer
	// name.<48> Servers MAY use this parameter in concert with the pLicGuid parameter to
	// implement limits on the number of unique clients which can open queue handles.<49>
	// Implementing connection limits is optional and not recommended.
	ClientName string `idl:"name:lpClientName;string" json:"client_name"`
	// dwRemoteProtocol: Clients MUST set this parameter to 0x00000000. Servers SHOULD ignore
	// this parameter.<50>
	//
	//	+------------+----------------------------------------------+
	//	|            |                                              |
	//	|   VALUE    |                   MEANING                    |
	//	|            |                                              |
	//	+------------+----------------------------------------------+
	//	+------------+----------------------------------------------+
	//	| 0x00000000 | The TCP/IP protocol sequence is to be used.  |
	//	+------------+----------------------------------------------+
	//	| 0x00000003 | The IPX/SPX protocol sequence is to be used. |
	//	+------------+----------------------------------------------+
	RemoteProtocol uint32 `idl:"name:dwRemoteProtocol" json:"remote_protocol"`
	// dwpRemoteContext: If hRemoteQueue is 0x00000000, dwpRemoteContext MUST contain 0x000000000;
	// otherwise, dwpRemoteContext MUST contain a DWORD value obtained from the pdwContext
	// out-parameter of the R_QMOpenRemoteQueue (section 3.1.4.2) method invoked at a remote
	// queue manager.
	RemoteContext uint32 `idl:"name:dwpRemoteContext" json:"remote_context"`
}

OpenQueueInternalRequest structure represents the rpc_QMOpenQueueInternal operation request

func (*OpenQueueInternalRequest) MarshalNDR

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

func (*OpenQueueInternalRequest) UnmarshalNDR

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

type OpenQueueInternalResponse

type OpenQueueInternalResponse struct {
	// lplpRemoteQueueName:  On input, the server MUST ignore lplpRemoteQueueName. If hRemoteQueue
	// is 0x00000000 and the queue identified by pQueueFormat is located at a remote queue
	// manager, the server MUST set this string to a null-terminated path name, from which
	// the client can determine the computer name of the remote queue manager, as specified
	// in [MS-MQMQ] section 2.1.1.
	RemoteQueueName string `idl:"name:lplpRemoteQueueName;string;pointer:ptr" json:"remote_queue_name"`
	// pdwQMContext: A pointer to a variable to receive a DWORD value that identifies either
	// an OpenQueueDescriptor ([MS-MQDMPR] section 3.1.1.16) ADM element instance at the
	// server or a RemoteQueueProxyHandle (section 3.1.1.5) ADM element instance that contains
	// information pertaining to an OpenQueueDescriptor ADM element instance at a remote
	// server. When the client calls rpc_ACReceiveMessageEx (section 3.1.5.3), it specifies
	// a queue by providing the value that is returned by this parameter. On return, the
	// client MUST ignore pdwQMContext if the value returned via lplpRemoteQueueName is
	// non-NULL.
	QMContext uint32 `idl:"name:pdwQMContext" json:"qm_context"`
	// phQueue:  A pointer to a variable to receive a new RPC_QUEUE_HANDLE (section 2.2.1.1.2)
	// context handle. On return, the client MUST ignore phQueue if the value returned via
	// lplpRemoteQueueName is non-NULL.
	Queue *Queue `idl:"name:phQueue" json:"queue"`
	// Return: The rpc_QMOpenQueueInternal return value.
	Return int32 `idl:"name:Return" json:"return"`
}

OpenQueueInternalResponse structure represents the rpc_QMOpenQueueInternal operation response

func (*OpenQueueInternalResponse) MarshalNDR

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

func (*OpenQueueInternalResponse) UnmarshalNDR

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

type OpenRemoteQueueRequest

type OpenRemoteQueueRequest struct {
	// pQueueFormat: A QUEUE_FORMAT ([MS-MQMQ] section 2.2.7) structure that identifies
	// the queue to be opened. It MUST NOT be NULL and MUST conform to the format name syntax
	// rules defined in [MS-MQMQ]. It MUST NOT be a distribution list or multicast format
	// name. For direct format names, the protocol MUST NOT be HTTP.
	QueueFormat *mqmq.QueueFormat `idl:"name:pQueueFormat;pointer:unique" json:"queue_format"`
	// dwCallingProcessID:  MUST be ignored. Clients MAY pass 0x00000000.<15>
	CallingProcessID uint32 `idl:"name:dwCallingProcessID" json:"calling_process_id"`
	// dwDesiredAccess:  A DWORD that specifies the access mode requested for the queue.
	// The access mode defines the set of operations that can be invoked using the returned
	// queue handle. The value MUST be one of the following:
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|            VALUE             |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_RECEIVE_ACCESS 0x00000001 | The returned queue handle MUST only permit message peek, message receive (peek   |
	//	|                              | and delete), and queue purge operations.                                         |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_PEEK_ACCESS 0x00000020    | The returned queue handle MUST only permit message peek operations.              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	DesiredAccess uint32 `idl:"name:dwDesiredAccess" json:"desired_access"`
	// dwShareMode:  Specifies the exclusivity level for the opened queue. The value MUST
	// be one of the following:
	//
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	|                                  |                                                                                  |
	//	|              VALUE               |                                     MEANING                                      |
	//	|                                  |                                                                                  |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_DENY_NONE 0x00000000          | The queue is not opened exclusively.                                             |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	//	| MQ_DENY_RECEIVE_SHARE 0x00000001 | The queue is to be opened for exclusive read access. If the queue has already    |
	//	|                                  | been opened for read access, the server MUST return STATUS_SHARING_VIOLATION     |
	//	|                                  | (0xc0000043). If the queue is opened successfully for exclusive read access,     |
	//	|                                  | subsequent attempts to open the same queue for read access MUST return           |
	//	|                                  | STATUS_SHARING_VIOLATION (0xc0000043) until the queue has been closed.           |
	//	+----------------------------------+----------------------------------------------------------------------------------+
	ShareMode uint32 `idl:"name:dwShareMode" json:"share_mode"`
	// pLicGuid:  MUST be a pointer to a valid GUID that uniquely identifies the client.<16><17>
	// The server MAY ignore this parameter.<18>
	ClientGUID *dtyp.GUID `idl:"name:pLicGuid" json:"client_guid"`
	// dwMQS:  MUST be set by clients to indicate the client operating system category.
	// Servers MAY ignore this value.<19> The following values are defined:
	//
	//	+----------------+---------------------------------------------------------------+
	//	|                |          ARE SERVER CONNECTION LICENSING LIMITATIONS          |
	//	|     VALUE      |                       ENFORCED?/MEANING                       |
	//	|                |                                                               |
	//	+----------------+---------------------------------------------------------------+
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000000<20> | None. The operating system (OS) version is not declared.      |
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000100     | Yes. For supported operating systems.<21>                     |
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000200     | Yes. For supported operating systems.<22>                     |
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000300     | Yes. For supported operating systems.<23>                     |
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000400     | No. For supported operating systems.<24>                      |
	//	+----------------+---------------------------------------------------------------+
	//	| 0x00000500     | No. For supported operating systems.<25>                      |
	//	+----------------+---------------------------------------------------------------+
	MQS uint32 `idl:"name:dwMQS" json:"mqs"`
}

OpenRemoteQueueRequest structure represents the R_QMOpenRemoteQueue operation request

func (*OpenRemoteQueueRequest) MarshalNDR

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

func (*OpenRemoteQueueRequest) UnmarshalNDR

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

type OpenRemoteQueueResponse

type OpenRemoteQueueResponse struct {
	// pphContext:  A pointer to a variable to receive the PCTX_OPENREMOTE_HANDLE_TYPE
	// (section 2.2.1.1.3) context handle.
	Context *Context `idl:"name:pphContext" json:"context"`
	// pdwContext: A pointer to a variable to receive the value of the Handle attribute
	// for the new OpenQueueDescriptor ([MS-MQDMPR] section 3.1.1.16) ADM element instance
	// created by this method. It MUST NOT be NULL.
	ContextID uint32 `idl:"name:pdwContext" json:"context_id"`
	// dwpQueue: A pointer to a variable to receive a value that identifies the new OpenQueueDescriptor
	// ADM element instance created by this method, as specified in the processing rules
	// section for this method. It MUST NOT be NULL.
	QueueID uint32 `idl:"name:dwpQueue" json:"queue_id"`
	// phQueue: A pointer to a variable to receive the value of the Handle attribute for
	// the new OpenQueueDescriptor ADM element instance created by this method. It MUST
	// NOT be NULL.
	Queue uint32 `idl:"name:phQueue" json:"queue"`
	// Return: The R_QMOpenRemoteQueue return value.
	Return int32 `idl:"name:Return" json:"return"`
}

OpenRemoteQueueResponse structure represents the R_QMOpenRemoteQueue operation response

func (*OpenRemoteQueueResponse) MarshalNDR

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

func (*OpenRemoteQueueResponse) UnmarshalNDR

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

type PurgeQueueRequest

type PurgeQueueRequest 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. Prior to this
	// method being invoked, the queue MUST NOT have been deleted, and the queue handle
	// MUST NOT have been closed.
	Queue *Queue `idl:"name:hQueue" json:"queue"`
}

PurgeQueueRequest structure represents the rpc_ACPurgeQueue operation request

func (*PurgeQueueRequest) MarshalNDR

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

func (*PurgeQueueRequest) UnmarshalNDR

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

type PurgeQueueResponse

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

PurgeQueueResponse structure represents the rpc_ACPurgeQueue operation response

func (*PurgeQueueResponse) MarshalNDR

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

func (*PurgeQueueResponse) UnmarshalNDR

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

type QmcommClient

type QmcommClient interface {

	// During the process of creating a remote cursor, a client calls the R_QMGetRemoteQueueName
	// method to retrieve the name of the remote queue associated with a queue handle. This
	// method is obsolete and the server SHOULD take no action and immediately raise the
	// exception MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064).<11>
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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: This method SHOULD take no action and SHOULD immediately raise
	// the exception MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064).<12>
	//
	// During the remote cursor creation sequence, the supporting server MAY indicate that
	// the client MUST contact a remote queue manager to proceed.<13> In response, this
	// method is called by the client to determine where to find the remote queue manager.
	// Supporting servers SHOULD contact the remote queue manager on behalf of the client,
	// thus eliminating the purpose of this method.<14>
	//
	// 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.
	GetRemoteQueueName(context.Context, *GetRemoteQueueNameRequest, ...dcerpc.CallOption) (*GetRemoteQueueNameResponse, error)

	// A client calls R_QMOpenRemoteQueue to obtain a valid queue handle on a remote queue
	// as part of the sequence of events involved in opening a remote queue as described
	// in section 4.2.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT <26>, 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: In addition to the exceptions thrown by the underlying RPC protocol
	// [MS-RPCE], the method can throw HRESULT failure codes as RPC exceptions. The client
	// MUST treat all thrown HRESULT codes identically. Additionally, the client MUST disregard
	// all out-parameter values when any failure HRESULT is thrown.
	//
	// 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.
	OpenRemoteQueue(context.Context, *OpenRemoteQueueRequest, ...dcerpc.CallOption) (*OpenRemoteQueueResponse, error)

	// The R_QMCloseRemoteQueueContext method closes a remote queue handle originally obtained
	// from R_QMOpenRemoteQueue (section 3.1.4.2).
	//
	// Return Values: None.
	//
	// 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.
	CloseRemoteQueueContext(context.Context, *CloseRemoteQueueContextRequest, ...dcerpc.CallOption) (*CloseRemoteQueueContextResponse, error)

	// The R_QMCreateRemoteCursor method creates a cursor at the server for use during remote
	// read.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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.
	CreateRemoteCursor(context.Context, *CreateRemoteCursorRequest, ...dcerpc.CallOption) (*CreateRemoteCursorResponse, error)

	// A client calls the R_QMCreateObjectInternal method to create a new private queue
	// located on the supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT.<30><31> If the returned HRESULT value is
	// MQ_ERROR_QUEUE_EXISTS (0xc00e0005), the client can treat it as a success and continue
	// with other operations. The client MUST treat all other failure HRESULTs identically.
	//
	// 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.
	CreateObjectInternal(context.Context, *CreateObjectInternalRequest, ...dcerpc.CallOption) (*CreateObjectInternalResponse, error)

	// A client calls the R_QMSetObjectSecurityInternal method to update the security configuration
	// of a private queue located on the supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<32> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	SetObjectSecurityInternal(context.Context, *SetObjectSecurityInternalRequest, ...dcerpc.CallOption) (*SetObjectSecurityInternalResponse, error)

	// A client calls the R_QMGetObjectSecurityInternal method to retrieve the security
	// configuration of a private queue located on the supporting server.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<33> and the client MUST treat all failure
	// HRESULTs identically. Additionally, if a failure HRESULT is returned, the client
	// MUST disregard all out-parameter values with the following exception:
	//
	// If nLength is less than the byte length of the buffer required to contain the SECURITY_DESCRIPTOR
	// for the queue identified by pObjectFormat, the server MUST return the byte length
	// of the buffer required to contain the SECURITY_DESCRIPTOR in the lpnLengthNeeded
	// parameter and MUST return MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL (0xc00e0023).
	//
	// 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.
	GetObjectSecurityInternal(context.Context, *GetObjectSecurityInternalRequest, ...dcerpc.CallOption) (*GetObjectSecurityInternalResponse, error)

	// A client calls R_QMDeleteObject to delete a private queue located on the supporting
	// server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<34><35> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	DeleteObject(context.Context, *DeleteObjectRequest, ...dcerpc.CallOption) (*DeleteObjectResponse, error)

	// A client calls R_QMGetObjectProperties to retrieve properties from a private queue
	// located on a supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<37><38> 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.
	GetObjectProperties(context.Context, *GetObjectPropertiesRequest, ...dcerpc.CallOption) (*GetObjectPropertiesResponse, error)

	// The R_QMSetObjectProperties method is called by a client to update properties of
	// a local private queue.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<40> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	SetObjectProperties(context.Context, *SetObjectPropertiesRequest, ...dcerpc.CallOption) (*SetObjectPropertiesResponse, error)

	// A client calls R_QMObjectPathToObjectFormat to determine a format name for a queue
	// identified by a given path name.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<41><42> 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.
	ObjectPathToObjectFormat(context.Context, *ObjectPathToObjectFormatRequest, ...dcerpc.CallOption) (*ObjectPathToObjectFormatResponse, error)

	// A client calls R_QMGetTmWhereabouts to obtain transaction manager whereabouts, as
	// specified in [MS-DTCO], from the supporting server. The whereabouts enable callers
	// to generate exported transaction cookies, which are required to enlist the supporting
	// server's resource manager (RM) in an external transaction.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT. The client MUST treat all failure HRESULTs
	// identically and disregard all out-parameter values, with the following exception:
	//
	// If cbBufSize is less than the size of the SWhereabouts structure returned by the
	// DTC, the server MUST return MQ_ERROR_USER_BUFFER_TOO_SMALL (0xc00e0028).
	//
	// 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.
	GetTMWhereabouts(context.Context, *GetTMWhereaboutsRequest, ...dcerpc.CallOption) (*GetTMWhereaboutsResponse, error)

	// A client calls the R_QMEnlistTransaction method to enlist the supporting server's
	// resource manager (RM) in an external transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<43> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	EnlistTransaction(context.Context, *EnlistTransactionRequest, ...dcerpc.CallOption) (*EnlistTransactionResponse, error)

	// A client calls the R_QMEnlistInternalTransaction method to enlist the supporting
	// server's resource manager (RM) in an internal transaction. The server returns a transaction
	// handle associated with the given unit of work identifier (XACTUOW). The returned
	// transaction handle is used when calling R_QMCommitTransaction or R_QMAbortTransaction.
	// The XACTUOW structure ([MS-MQMQ] section 2.2.18.1.8) is provided for calls to rpc_ACSendMessageEx
	// and rpc_ACReceiveMessageEx of the qmcomm2 RPC interface.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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.
	EnlistInternalTransaction(context.Context, *EnlistInternalTransactionRequest, ...dcerpc.CallOption) (*EnlistInternalTransactionResponse, error)

	// A client calls the R_QMCommitTransaction method to commit an internal transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000) and set phIntXact
	// to NULL; otherwise, the server MUST return a failure HRESULT, and the client MUST
	// treat all failure HRESULTs identically.
	//
	// 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.
	CommitTransaction(context.Context, *CommitTransactionRequest, ...dcerpc.CallOption) (*CommitTransactionResponse, error)

	// A client calls the R_QMAbortTransaction method to abort an internal transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000) and MUST
	// set phIntXact to NULL; otherwise, the server MUST return a failure HRESULT, and the
	// client MUST treat all failure HRESULTs identically.
	//
	// 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.
	AbortTransaction(context.Context, *AbortTransactionRequest, ...dcerpc.CallOption) (*AbortTransactionResponse, error)

	// A client calls rpc_QMOpenQueueInternal to obtain a local queue context handle, to
	// determine if a queue is located at a remote queue manager (section 4.2), or to obtain
	// a local context handle for an opened remote queue. If the call to RemoteQMOpenQueue
	// ([MS-MQQP] section 3.1.4.3) fails, the result MUST be returned to the client, and
	// the remote open queue sequence is discontinued. In the case of failure, any state
	// changes need to be rolled back.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// if an error occurs, the server MUST return a failure HRESULT,<51> 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: In addition to the exceptions thrown by the underlying RPC protocol,
	// as specified in [MS-RPCE], the method can throw HRESULT failure codes as RPC exceptions.
	// The client MUST treat all thrown HRESULT codes identically. Additionally, the client
	// MUST disregard all out-parameter values when any failure HRESULT is thrown.
	//
	// 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.
	OpenQueueInternal(context.Context, *OpenQueueInternalRequest, ...dcerpc.CallOption) (*OpenQueueInternalResponse, error)

	// A client calls the rpc_ACCloseHandle method to close context handles acquired from
	// rpc_QMOpenQueueInternal (section 3.1.4.17).
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<52> 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.
	CloseHandle(context.Context, *CloseHandleRequest, ...dcerpc.CallOption) (*CloseHandleResponse, error)

	// A client calls the rpc_ACCloseCursor method to close a cursor acquired from the rpc_ACCreateCursorEx
	// (section 3.1.5.4) method of the qmcomm2 RPC interface.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<54> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	CloseCursor(context.Context, *CloseCursorRequest, ...dcerpc.CallOption) (*CloseCursorResponse, error)

	// A client calls the rpc_ACSetCursorProperties method to associate a remote cursor
	// created via R_QMCreateRemoteCursor (section 3.1.4.4) with a local CursorProxy (section
	// 3.1.1.6) created using rpc_ACCreateCursorEx (section 3.1.5.4).
	//
	// Note  This method is obsolete. The server SHOULD take no action and return MQ_ERROR_ILLEGAL_OPERATION
	// (0xc00e0064).<55>
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// This method is obsolete. Servers SHOULD take no action and return MQ_ERROR_ILLEGAL_OPERATION
	// (0xc00e0064). Servers SHOULD contact the remote queue manager on behalf of the client
	// when rpc_ACCreateCursorEx is called to create a remote cursor.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	//
	// During the client cursor creation sequence, the supporting server MAY indicate that
	// the client MUST contact a remote queue manager to proceed.<56> In response, the client
	// MUST call R_QMGetRemoteQueueName (section 3.1.4.1) to determine the remote queue
	// manager name and MUST then invoke R_QMCreateRemoteCursor at the remote queue manager.
	// Next, the client MUST call this method to associate the Cursor.Handle obtained from
	// R_QMCreateRemoteCursor with the original CursorProxy.Handle obtained from rpc_ACCreateCursorEx.
	//
	// 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.
	SetCursorProperties(context.Context, *SetCursorPropertiesRequest, ...dcerpc.CallOption) (*SetCursorPropertiesResponse, error)

	// A client calls the rpc_ACHandleToFormatName method to retrieve a format name for
	// a queue handle.
	//
	// Return Values:  If the provided buffer is long enough to contain the null-terminated
	// format name for the queue identified by hQueue, the server MUST take the following
	// actions:
	//
	// * Copy the null-terminated format name into the lpwcsFormatName buffer.
	//
	// * Set pdwLength to the length (in Unicode characters) of the format name, including
	// the terminating null character.
	//
	// * Return MQ_OK (0x00000000).
	//
	// If the provided buffer is too small to contain the complete format name for the queue
	// identified by hQueue (including the terminating null character), the server MUST
	// take the following actions:
	//
	// * If the buffer length (indicated by pdwLength ) is greater than 0x00000000, and
	// if lpwcsFormatName is non-NULL, copy the format name to the lpwcsFormatName buffer,
	// truncated to fit the length indicated by the input value for pdwLength. The string
	// MUST be null-terminated post-truncation.
	//
	// * Set pdwLength to the length of the untruncated format name, including the terminating
	// null character.
	//
	// * Take no further action and return MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL (0xc00e001f).
	//
	// If input parameter values violate constraints specified above, the server MUST take
	// no further action and return a failure HRESULT.
	//
	// If any other error occurs, the server MUST return a failure HRESULT,<57> and the
	// client MUST treat all other failure HRESULTs identically. Additionally, if any other
	// 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.
	//
	// The format name to be returned to the client (using the rules defined above) is determined
	// as follows:
	//
	// * Locate a LocalQueueContextHandle (section 3.1.1.3) ( 910315e4-d43e-4c99-b086-555cc271563f
	// ) ADM element instance in the server's iLocalQueueContextHandleTable (section 3.1.1.2
	// ( 6d5edb49-62b1-46de-a235-f2cc97df6a31 ) ) where the value of the *Handle* attribute
	// of the *LocalQueueContextHandle* ADM element instance equals hQueue.
	//
	// * If such a *LocalQueueContextHandle* ADM element instance exists:
	//
	// * Declare iLocatedLocalQueueContextHandle and set it to a reference to the located
	// *LocalQueueContextHandle* ADM element instance.
	//
	// * The format name to be returned to the client is iLocatedLocalQueueContextHandle.
	// *OpenQueueDescriptorReference.FormatName*.
	//
	// * Else:
	//
	// * Locate a RemoteQueueProxyHandle (section 3.1.1.5) ( 01412cba-2803-4644-be30-76cdb8560cec
	// ) ADM element instance in the server's iRemoteQueueProxyHandleTable (section 3.1.1.4
	// ( 50eab75b-1cc0-4023-bb19-a20975e50883 ) ) where the value of the Handle attribute
	// of the *RemoteQueueProxyHandle* ADM element instance equals hQueue.
	//
	// * If no such *RemoteQueueProxyHandle* ADM element instance exists, take no further
	// action and return a failure *HRESULT*.
	//
	// * Declare iLocatedRemoteQueueProxyHandle and set it to a reference to the located
	// *RemoteQueueProxyHandle* ADM element instance.
	//
	// * The format name to be returned to the client is iLocatedRemoteQueueProxyHandle.
	// *FormatName*.
	HandleToFormatName(context.Context, *HandleToFormatNameRequest, ...dcerpc.CallOption) (*HandleToFormatNameResponse, error)

	// The rpc_ACPurgeQueue method is called by a client to purge an opened queue.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<58> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	PurgeQueue(context.Context, *PurgeQueueRequest, ...dcerpc.CallOption) (*PurgeQueueResponse, error)

	// A client calls the R_QMQueryQMRegistryInternal method to retrieve various string
	// values from the supporting server.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000).
	//
	// If input parameter values violate constraints specified above, the server MUST take
	// no further action and return a failure HRESULT.
	//
	// If any other error occurs, the server MUST return a failure HRESULT, and the client
	// MUST treat all other failure HRESULTs identically. Additionally, if any other 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.
	QueryQMRegistryInternal(context.Context, *QueryQMRegistryInternalRequest, ...dcerpc.CallOption) (*QueryQMRegistryInternalResponse, error)

	// The R_QMGetRTQMServerPort method returns an RPC port number, as specified in [MS-RPCE],
	// for the requested combination of interface and protocol. The returned RPC port number
	// can be used for all qmcomm and qmcomm2 methods.
	//
	// Return Values: On success, this method returns a non-zero IP port value for the RPC
	// interface specified by the fIP parameter. If an invalid value is specified for fIP,
	// this method MUST return 0x00000000.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	//
	// As specified in section 3.1.3, this protocol configures a fixed listening endpoint
	// at an RPC port number. For the interface and protocol specified by the fIP 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.
	//
	// Security consideration: Servers MUST NOT enforce security limitations for this method,
	// since clients can call this method before configuring RPC binding security. See section
	// 5.1 for details.
	GetRTQMServerPort(context.Context, *GetRTQMServerPortRequest, ...dcerpc.CallOption) (*GetRTQMServerPortResponse, error)

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

qmcomm interface.

func NewQmcommClient

func NewQmcommClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (QmcommClient, error)

type QmcommServer

type QmcommServer interface {

	// During the process of creating a remote cursor, a client calls the R_QMGetRemoteQueueName
	// method to retrieve the name of the remote queue associated with a queue handle. This
	// method is obsolete and the server SHOULD take no action and immediately raise the
	// exception MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064).<11>
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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: This method SHOULD take no action and SHOULD immediately raise
	// the exception MQ_ERROR_ILLEGAL_OPERATION (0xc00e0064).<12>
	//
	// During the remote cursor creation sequence, the supporting server MAY indicate that
	// the client MUST contact a remote queue manager to proceed.<13> In response, this
	// method is called by the client to determine where to find the remote queue manager.
	// Supporting servers SHOULD contact the remote queue manager on behalf of the client,
	// thus eliminating the purpose of this method.<14>
	//
	// 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.
	GetRemoteQueueName(context.Context, *GetRemoteQueueNameRequest) (*GetRemoteQueueNameResponse, error)

	// A client calls R_QMOpenRemoteQueue to obtain a valid queue handle on a remote queue
	// as part of the sequence of events involved in opening a remote queue as described
	// in section 4.2.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT <26>, 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: In addition to the exceptions thrown by the underlying RPC protocol
	// [MS-RPCE], the method can throw HRESULT failure codes as RPC exceptions. The client
	// MUST treat all thrown HRESULT codes identically. Additionally, the client MUST disregard
	// all out-parameter values when any failure HRESULT is thrown.
	//
	// 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.
	OpenRemoteQueue(context.Context, *OpenRemoteQueueRequest) (*OpenRemoteQueueResponse, error)

	// The R_QMCloseRemoteQueueContext method closes a remote queue handle originally obtained
	// from R_QMOpenRemoteQueue (section 3.1.4.2).
	//
	// Return Values: None.
	//
	// 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.
	CloseRemoteQueueContext(context.Context, *CloseRemoteQueueContextRequest) (*CloseRemoteQueueContextResponse, error)

	// The R_QMCreateRemoteCursor method creates a cursor at the server for use during remote
	// read.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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.
	CreateRemoteCursor(context.Context, *CreateRemoteCursorRequest) (*CreateRemoteCursorResponse, error)

	// A client calls the R_QMCreateObjectInternal method to create a new private queue
	// located on the supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT.<30><31> If the returned HRESULT value is
	// MQ_ERROR_QUEUE_EXISTS (0xc00e0005), the client can treat it as a success and continue
	// with other operations. The client MUST treat all other failure HRESULTs identically.
	//
	// 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.
	CreateObjectInternal(context.Context, *CreateObjectInternalRequest) (*CreateObjectInternalResponse, error)

	// A client calls the R_QMSetObjectSecurityInternal method to update the security configuration
	// of a private queue located on the supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<32> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	SetObjectSecurityInternal(context.Context, *SetObjectSecurityInternalRequest) (*SetObjectSecurityInternalResponse, error)

	// A client calls the R_QMGetObjectSecurityInternal method to retrieve the security
	// configuration of a private queue located on the supporting server.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<33> and the client MUST treat all failure
	// HRESULTs identically. Additionally, if a failure HRESULT is returned, the client
	// MUST disregard all out-parameter values with the following exception:
	//
	// If nLength is less than the byte length of the buffer required to contain the SECURITY_DESCRIPTOR
	// for the queue identified by pObjectFormat, the server MUST return the byte length
	// of the buffer required to contain the SECURITY_DESCRIPTOR in the lpnLengthNeeded
	// parameter and MUST return MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL (0xc00e0023).
	//
	// 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.
	GetObjectSecurityInternal(context.Context, *GetObjectSecurityInternalRequest) (*GetObjectSecurityInternalResponse, error)

	// A client calls R_QMDeleteObject to delete a private queue located on the supporting
	// server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<34><35> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	DeleteObject(context.Context, *DeleteObjectRequest) (*DeleteObjectResponse, error)

	// A client calls R_QMGetObjectProperties to retrieve properties from a private queue
	// located on a supporting server.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<37><38> 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.
	GetObjectProperties(context.Context, *GetObjectPropertiesRequest) (*GetObjectPropertiesResponse, error)

	// The R_QMSetObjectProperties method is called by a client to update properties of
	// a local private queue.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<40> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	SetObjectProperties(context.Context, *SetObjectPropertiesRequest) (*SetObjectPropertiesResponse, error)

	// A client calls R_QMObjectPathToObjectFormat to determine a format name for a queue
	// identified by a given path name.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<41><42> 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.
	ObjectPathToObjectFormat(context.Context, *ObjectPathToObjectFormatRequest) (*ObjectPathToObjectFormatResponse, error)

	// A client calls R_QMGetTmWhereabouts to obtain transaction manager whereabouts, as
	// specified in [MS-DTCO], from the supporting server. The whereabouts enable callers
	// to generate exported transaction cookies, which are required to enlist the supporting
	// server's resource manager (RM) in an external transaction.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT. The client MUST treat all failure HRESULTs
	// identically and disregard all out-parameter values, with the following exception:
	//
	// If cbBufSize is less than the size of the SWhereabouts structure returned by the
	// DTC, the server MUST return MQ_ERROR_USER_BUFFER_TOO_SMALL (0xc00e0028).
	//
	// 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.
	GetTMWhereabouts(context.Context, *GetTMWhereaboutsRequest) (*GetTMWhereaboutsResponse, error)

	// A client calls the R_QMEnlistTransaction method to enlist the supporting server's
	// resource manager (RM) in an external transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<43> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	EnlistTransaction(context.Context, *EnlistTransactionRequest) (*EnlistTransactionResponse, error)

	// A client calls the R_QMEnlistInternalTransaction method to enlist the supporting
	// server's resource manager (RM) in an internal transaction. The server returns a transaction
	// handle associated with the given unit of work identifier (XACTUOW). The returned
	// transaction handle is used when calling R_QMCommitTransaction or R_QMAbortTransaction.
	// The XACTUOW structure ([MS-MQMQ] section 2.2.18.1.8) is provided for calls to rpc_ACSendMessageEx
	// and rpc_ACReceiveMessageEx of the qmcomm2 RPC interface.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, 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.
	EnlistInternalTransaction(context.Context, *EnlistInternalTransactionRequest) (*EnlistInternalTransactionResponse, error)

	// A client calls the R_QMCommitTransaction method to commit an internal transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000) and set phIntXact
	// to NULL; otherwise, the server MUST return a failure HRESULT, and the client MUST
	// treat all failure HRESULTs identically.
	//
	// 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.
	CommitTransaction(context.Context, *CommitTransactionRequest) (*CommitTransactionResponse, error)

	// A client calls the R_QMAbortTransaction method to abort an internal transaction.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000) and MUST
	// set phIntXact to NULL; otherwise, the server MUST return a failure HRESULT, and the
	// client MUST treat all failure HRESULTs identically.
	//
	// 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.
	AbortTransaction(context.Context, *AbortTransactionRequest) (*AbortTransactionResponse, error)

	// A client calls rpc_QMOpenQueueInternal to obtain a local queue context handle, to
	// determine if a queue is located at a remote queue manager (section 4.2), or to obtain
	// a local context handle for an opened remote queue. If the call to RemoteQMOpenQueue
	// ([MS-MQQP] section 3.1.4.3) fails, the result MUST be returned to the client, and
	// the remote open queue sequence is discontinued. In the case of failure, any state
	// changes need to be rolled back.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// if an error occurs, the server MUST return a failure HRESULT,<51> 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: In addition to the exceptions thrown by the underlying RPC protocol,
	// as specified in [MS-RPCE], the method can throw HRESULT failure codes as RPC exceptions.
	// The client MUST treat all thrown HRESULT codes identically. Additionally, the client
	// MUST disregard all out-parameter values when any failure HRESULT is thrown.
	//
	// 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.
	OpenQueueInternal(context.Context, *OpenQueueInternalRequest) (*OpenQueueInternalResponse, error)

	// A client calls the rpc_ACCloseHandle method to close context handles acquired from
	// rpc_QMOpenQueueInternal (section 3.1.4.17).
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<52> 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.
	CloseHandle(context.Context, *CloseHandleRequest) (*CloseHandleResponse, error)

	// A client calls the rpc_ACCloseCursor method to close a cursor acquired from the rpc_ACCreateCursorEx
	// (section 3.1.5.4) method of the qmcomm2 RPC interface.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<54> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	CloseCursor(context.Context, *CloseCursorRequest) (*CloseCursorResponse, error)

	// A client calls the rpc_ACSetCursorProperties method to associate a remote cursor
	// created via R_QMCreateRemoteCursor (section 3.1.4.4) with a local CursorProxy (section
	// 3.1.1.6) created using rpc_ACCreateCursorEx (section 3.1.5.4).
	//
	// Note  This method is obsolete. The server SHOULD take no action and return MQ_ERROR_ILLEGAL_OPERATION
	// (0xc00e0064).<55>
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs
	// identically.
	//
	// This method is obsolete. Servers SHOULD take no action and return MQ_ERROR_ILLEGAL_OPERATION
	// (0xc00e0064). Servers SHOULD contact the remote queue manager on behalf of the client
	// when rpc_ACCreateCursorEx is called to create a remote cursor.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	//
	// During the client cursor creation sequence, the supporting server MAY indicate that
	// the client MUST contact a remote queue manager to proceed.<56> In response, the client
	// MUST call R_QMGetRemoteQueueName (section 3.1.4.1) to determine the remote queue
	// manager name and MUST then invoke R_QMCreateRemoteCursor at the remote queue manager.
	// Next, the client MUST call this method to associate the Cursor.Handle obtained from
	// R_QMCreateRemoteCursor with the original CursorProxy.Handle obtained from rpc_ACCreateCursorEx.
	//
	// 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.
	SetCursorProperties(context.Context, *SetCursorPropertiesRequest) (*SetCursorPropertiesResponse, error)

	// A client calls the rpc_ACHandleToFormatName method to retrieve a format name for
	// a queue handle.
	//
	// Return Values:  If the provided buffer is long enough to contain the null-terminated
	// format name for the queue identified by hQueue, the server MUST take the following
	// actions:
	//
	// * Copy the null-terminated format name into the lpwcsFormatName buffer.
	//
	// * Set pdwLength to the length (in Unicode characters) of the format name, including
	// the terminating null character.
	//
	// * Return MQ_OK (0x00000000).
	//
	// If the provided buffer is too small to contain the complete format name for the queue
	// identified by hQueue (including the terminating null character), the server MUST
	// take the following actions:
	//
	// * If the buffer length (indicated by pdwLength ) is greater than 0x00000000, and
	// if lpwcsFormatName is non-NULL, copy the format name to the lpwcsFormatName buffer,
	// truncated to fit the length indicated by the input value for pdwLength. The string
	// MUST be null-terminated post-truncation.
	//
	// * Set pdwLength to the length of the untruncated format name, including the terminating
	// null character.
	//
	// * Take no further action and return MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL (0xc00e001f).
	//
	// If input parameter values violate constraints specified above, the server MUST take
	// no further action and return a failure HRESULT.
	//
	// If any other error occurs, the server MUST return a failure HRESULT,<57> and the
	// client MUST treat all other failure HRESULTs identically. Additionally, if any other
	// 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.
	//
	// The format name to be returned to the client (using the rules defined above) is determined
	// as follows:
	//
	// * Locate a LocalQueueContextHandle (section 3.1.1.3) ( 910315e4-d43e-4c99-b086-555cc271563f
	// ) ADM element instance in the server's iLocalQueueContextHandleTable (section 3.1.1.2
	// ( 6d5edb49-62b1-46de-a235-f2cc97df6a31 ) ) where the value of the *Handle* attribute
	// of the *LocalQueueContextHandle* ADM element instance equals hQueue.
	//
	// * If such a *LocalQueueContextHandle* ADM element instance exists:
	//
	// * Declare iLocatedLocalQueueContextHandle and set it to a reference to the located
	// *LocalQueueContextHandle* ADM element instance.
	//
	// * The format name to be returned to the client is iLocatedLocalQueueContextHandle.
	// *OpenQueueDescriptorReference.FormatName*.
	//
	// * Else:
	//
	// * Locate a RemoteQueueProxyHandle (section 3.1.1.5) ( 01412cba-2803-4644-be30-76cdb8560cec
	// ) ADM element instance in the server's iRemoteQueueProxyHandleTable (section 3.1.1.4
	// ( 50eab75b-1cc0-4023-bb19-a20975e50883 ) ) where the value of the Handle attribute
	// of the *RemoteQueueProxyHandle* ADM element instance equals hQueue.
	//
	// * If no such *RemoteQueueProxyHandle* ADM element instance exists, take no further
	// action and return a failure *HRESULT*.
	//
	// * Declare iLocatedRemoteQueueProxyHandle and set it to a reference to the located
	// *RemoteQueueProxyHandle* ADM element instance.
	//
	// * The format name to be returned to the client is iLocatedRemoteQueueProxyHandle.
	// *FormatName*.
	HandleToFormatName(context.Context, *HandleToFormatNameRequest) (*HandleToFormatNameResponse, error)

	// The rpc_ACPurgeQueue method is called by a client to purge an opened queue.
	//
	// Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise,
	// the server MUST return a failure HRESULT,<58> and the client MUST treat all failure
	// HRESULTs identically.
	//
	// 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.
	PurgeQueue(context.Context, *PurgeQueueRequest) (*PurgeQueueResponse, error)

	// A client calls the R_QMQueryQMRegistryInternal method to retrieve various string
	// values from the supporting server.
	//
	// Return Values: On success, this method MUST return MQ_OK (0x00000000).
	//
	// If input parameter values violate constraints specified above, the server MUST take
	// no further action and return a failure HRESULT.
	//
	// If any other error occurs, the server MUST return a failure HRESULT, and the client
	// MUST treat all other failure HRESULTs identically. Additionally, if any other 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.
	QueryQMRegistryInternal(context.Context, *QueryQMRegistryInternalRequest) (*QueryQMRegistryInternalResponse, error)

	// The R_QMGetRTQMServerPort method returns an RPC port number, as specified in [MS-RPCE],
	// for the requested combination of interface and protocol. The returned RPC port number
	// can be used for all qmcomm and qmcomm2 methods.
	//
	// Return Values: On success, this method returns a non-zero IP port value for the RPC
	// interface specified by the fIP parameter. If an invalid value is specified for fIP,
	// this method MUST return 0x00000000.
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC protocol, as specified in [MS-RPCE].
	//
	// As specified in section 3.1.3, this protocol configures a fixed listening endpoint
	// at an RPC port number. For the interface and protocol specified by the fIP 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.
	//
	// Security consideration: Servers MUST NOT enforce security limitations for this method,
	// since clients can call this method before configuring RPC binding security. See section
	// 5.1 for details.
	GetRTQMServerPort(context.Context, *GetRTQMServerPortRequest) (*GetRTQMServerPortResponse, error)
}

qmcomm server interface.

type QueryQMRegistryInternalRequest

type QueryQMRegistryInternalRequest struct {
	// dwQueryType: Specifies the type and format of the data to return to the caller via
	// the lplpMQISServer parameter. MUST be one of the values in the following table:
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 | A comma-delimited list of MQIS server names configured on the supporting server. |
	//	|            | This value is retrieved from the DirectoryServerList attribute of the server's   |
	//	|            | LocalQueueManager ADM element instance.                                          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | The server's default time-to-reach-queue message property value, expressed in    |
	//	|            | seconds, converted to a string.<59><60>                                          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | The GUID that represents the entire MSMQ forest.<61> See following for the       |
	//	|            | curly braced GUID string representation to use. The string uses the "braceless"  |
	//	|            | format.                                                                          |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000003 | A string representation of the supporting server version.<62>                    |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000004 | The content of the Identifier attribute of the server's LocalQueueManager ADM    |
	//	|            | element instance. The curly braced GUID string representation uses a "braceless" |
	//	|            | format given following.<63><64>                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//
	// The format for the comma-delimited list of MQIS server names (0x00000000) is given
	// by the following augmented BNF:
	//
	// The GUID string for the MSMQ forest (0x00000002) uses the "braceless" format depicted
	// in the following augmented BNF:
	//
	// The string format used for the supporting server version (0x00000003), depicted in
	// augmented BNF, is as follows:
	//
	// The GUID for the server queue manager (0x00000004) uses the following "braceless"
	// format, depicted in augmented BNF:
	QueryType uint32 `idl:"name:dwQueryType" json:"query_type"`
}

QueryQMRegistryInternalRequest structure represents the R_QMQueryQMRegistryInternal operation request

func (*QueryQMRegistryInternalRequest) MarshalNDR

func (*QueryQMRegistryInternalRequest) UnmarshalNDR

type QueryQMRegistryInternalResponse

type QueryQMRegistryInternalResponse struct {
	// lplpMQISServer:  On success, the server returns the string indicated by dwQueryType
	// through this parameter. The server can set this parameter to NULL in the event of
	// an error.
	MQISServer string `idl:"name:lplpMQISServer;string" json:"mqis_server"`
	// Return: The R_QMQueryQMRegistryInternal return value.
	Return int32 `idl:"name:Return" json:"return"`
}

QueryQMRegistryInternalResponse structure represents the R_QMQueryQMRegistryInternal operation response

func (*QueryQMRegistryInternalResponse) MarshalNDR

func (*QueryQMRegistryInternalResponse) UnmarshalNDR

type Queue

type Queue dcetypes.ContextHandle

Queue structure represents RPC_QUEUE_HANDLE RPC structure.

func (*Queue) ContextHandle

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

func (*Queue) MarshalNDR

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

func (*Queue) UnmarshalNDR

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

type SetCursorPropertiesRequest

type SetCursorPropertiesRequest struct {
	// hProxy: MUST contain the RPC_QUEUE_HANDLE (section 2.2.1.1.2) context handle passed
	// to rpc_ACCreateCursorEx when the cursor specified by hCursor was created.
	Proxy *Queue `idl:"name:hProxy" json:"proxy"`
	// hCursor: MUST contain a CursorProxy.Handle obtained from the pcc.hCursor out-parameter
	// of rpc_ACCreateCursorEx.
	Cursor uint32 `idl:"name:hCursor" json:"cursor"`
	// hRemoteCursor: MUST contain a Cursor.Handle for a remote cursor acquired from the
	// phCursor out-parameter of R_QMCreateRemoteCursor invoked at a remote queue manager.
	RemoteCursor uint32 `idl:"name:hRemoteCursor" json:"remote_cursor"`
}

SetCursorPropertiesRequest structure represents the rpc_ACSetCursorProperties operation request

func (*SetCursorPropertiesRequest) MarshalNDR

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

func (*SetCursorPropertiesRequest) UnmarshalNDR

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

type SetCursorPropertiesResponse

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

SetCursorPropertiesResponse structure represents the rpc_ACSetCursorProperties operation response

func (*SetCursorPropertiesResponse) MarshalNDR

func (*SetCursorPropertiesResponse) UnmarshalNDR

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

type SetObjectPropertiesRequest

type SetObjectPropertiesRequest struct {
	// pObjectFormat:  MUST point to an OBJECT_FORMAT structure which identifies an existing
	// local private queue on the supporting server. MUST NOT be NULL. The ObjType member
	// of the structure MUST be 0x00000001. The pQueueFormat member MUST NOT be NULL.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
	// cp:  MUST be set to the size (in elements) of the arrays aProp and apVar. The arrays
	// aProp and apVar MUST have an identical number of elements, and MUST contain at least
	// one element.
	CreatePartition uint32 `idl:"name:cp" json:"create_partition"`
	// aProp:  MUST be an array of queue property identifiers for properties to be updated.
	// Each element MUST specify a value from the queue property identifiers table defined
	// in [MS-MQMQ] section 2.3.1. Each element MUST specify the queue property identifier
	// for the corresponding queue property value at the same element index in apVar. MUST
	// contain at least one element.
	Property []uint32 `idl:"name:aProp;size_is:(cp);pointer:unique" json:"property"`
	// apVar:  MUST be an array that specifies the property values to update. Each element
	// MUST specify the property value for the corresponding property identifier at the
	// same element index in aProp. MUST contain at least one element. The vt (VARTYPE)
	// member of each PROPVARIANT element MUST be set to the appropriate type for the property
	// being updated; otherwise, the server SHOULD return the failure HRESULT MQ_ERROR_PROPERTY
	// (0xc00e0002).<39> Queue properties and their appropriate VARTYPEs are specified by
	// [MS-MQMQ] section 2.3.1.
	Var []*mqmq.PropertyVariant `idl:"name:apVar;size_is:(cp);pointer:unique" json:"var"`
}

SetObjectPropertiesRequest structure represents the R_QMSetObjectProperties operation request

func (*SetObjectPropertiesRequest) MarshalNDR

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

func (*SetObjectPropertiesRequest) UnmarshalNDR

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

type SetObjectPropertiesResponse

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

SetObjectPropertiesResponse structure represents the R_QMSetObjectProperties operation response

func (*SetObjectPropertiesResponse) MarshalNDR

func (*SetObjectPropertiesResponse) UnmarshalNDR

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

type SetObjectSecurityInternalRequest

type SetObjectSecurityInternalRequest struct {
	// pObjectFormat:  MUST point to an OBJECT_FORMAT structure that identifies an existing
	// local private queue on the supporting server for which the security configuration
	// will be updated. This MUST NOT be NULL. The ObjType member of the structure MUST
	// be 0x00000001. The pQueueFormat member MUST NOT be NULL.
	ObjectFormat *ObjectFormat `idl:"name:pObjectFormat" json:"object_format"`
	// SecurityInformation:  MUST contain a value from the SECURITY_INFORMATION enumeration
	// which indicates the portions of the provided SECURITY_DESCRIPTOR to be applied to
	// the queue identified by pObjectFormat. The SECURITY_INFORMATION enumeration is defined
	// in [MS-MQMQ] section 2.2.3.
	SecurityInformation uint32 `idl:"name:SecurityInformation" json:"security_information"`
	// SDSize:  MUST be set to the byte length of the buffer pointed to by pSecurityDescriptor.
	SecurityDescriptorSize uint32 `idl:"name:SDSize" json:"security_descriptor_size"`
	// pSecurityDescriptor:  MUST be a pointer to an array of bytes containing a SECURITY_DESCRIPTOR
	// structure (see [MS-DTYP] section 2.4.6).
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SDSize);pointer:unique" json:"security_descriptor"`
}

SetObjectSecurityInternalRequest structure represents the R_QMSetObjectSecurityInternal operation request

func (*SetObjectSecurityInternalRequest) MarshalNDR

func (*SetObjectSecurityInternalRequest) UnmarshalNDR

type SetObjectSecurityInternalResponse

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

SetObjectSecurityInternalResponse structure represents the R_QMSetObjectSecurityInternal operation response

func (*SetObjectSecurityInternalResponse) MarshalNDR

func (*SetObjectSecurityInternalResponse) UnmarshalNDR

type TransferBufferV1

type TransferBufferV1 struct {
	// uTransferType:  The uTransferType member specifies which of the Send, Receive, or
	// CreateCursor union members is present in the CACTransferBufferV1 structure. The uTransferType
	// member MUST be assigned a value from the TRANSFER_TYPE (section 2.2.2.1) enumeration.
	TransferType     uint32                             `idl:"name:uTransferType" json:"transfer_type"`
	TransferBufferV1 *TransferBufferV1_TransferBufferV1 `idl:"name:TransferBufferV1;switch_is:uTransferType" json:"transfer_buffer_v1"`
	// pClass:  This field indicates the message classification, such as a positive acknowledgment,
	// a system-generated report message, or a normal application-generated message. It
	// contains a 16-bit structure as defined below:
	//
	//	+---+---+---+---+---+---+---+---+---+---+-----+---+---+---+---+---+
	//	|   |   |   |   |   |   |   |   |   |   |  1  |   |   |   |   |   |
	//	| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0  | 1 | 2 | 3 | 4 | 5 |
	//	|   |   |   |   |   |   |   |   |   |   |     |   |   |   |   |   |
	//	+---+---+---+---+---+---+---+---+---+---+-----+---+---+---+---+---+
	//	+---+---+---+---+---+---+---+---+---+---+-----+---+---+---+---+---+
	//	| Class Code                        | Reserved      |
	//	+---+---+---+---+---+---+---+---+---+---+-----+---+---+---+---+---+
	//
	//
	//	+------------------------+----------------------------------------------------------------------------------+
	//	|                        |                                                                                  |
	//	|         VALUE          |                                     MEANING                                      |
	//	|                        |                                                                                  |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| Class Code 0x00 — 0xFF | Specifies the type of the acknowledgment. This field uniquely classifies the     |
	//	|                        | message type within the groupings defined by the fields described above. If the  |
	//	|                        | H bit is set, this field contains an HTTP status code.                           |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| Reserved 0x0000        | MUST be set to all zeros. Clients and servers MUST ignore the Reserved member.   |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| H 0 — 1                | Specifies whether or not HTTP is being used. A value of 0 MUST be used to        |
	//	|                        | specify that HTTP is not being used. A value of 1 MUST be used to specify that   |
	//	|                        | HTTP is being used. If 1, the Class Code field contains an HTTP status code.     |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| R 0 — 1                | Specifies the stage at which the acknowledgment is to occur. A value of 0 MUST   |
	//	|                        | be used to specify that the acknowledgment is for the delivery (arrival) stage.  |
	//	|                        | A value of 1 MUST be used to specify that the acknowledgment is for the receive  |
	//	|                        | stage.                                                                           |
	//	+------------------------+----------------------------------------------------------------------------------+
	//	| S 0 — 1                | Specifies the type of acknowledgment. A value of 0 MUST be used to specify       |
	//	|                        | that normal (positive acknowledgment) message processing has occurred. A value   |
	//	|                        | of 1 MUST be used to specify that abnormal (negative acknowledgment) message     |
	//	|                        | processing has occurred.                                                         |
	//	+------------------------+----------------------------------------------------------------------------------+
	//
	// The following table provides correspondence between the message class values defined
	// in [MS-MQMQ] section 2.2.18.1.6 with the abstract message class types defined in
	// [MS-MQDMPR] section 3.1.1.12.
	//
	//	+-----------------------------------------------------+-------------------------------+
	//	|                    MESSAGE CLASS                    |         MESSAGE CLASS         |
	//	|                        VALUE                        |             TYPE              |
	//	+-----------------------------------------------------+-------------------------------+
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NORMAL 0x0000                           | Normal                        |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_REPORT 0x0001                           | Report                        |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_ACK_REACH_QUEUE 0x0002                  | AckReachQueue                 |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_ACK_RECEIVE 0x4000                      | AckReceive                    |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_BAD_DST_Q 0x8000                   | NackBadDestQueue              |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_DELETED 0x8001                     | NackPurged                    |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT 0x8002         | NackReachQueueTimeout         |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_Q_EXCEED_QUOTA 0x8003              | NackQueueExceedQuota          |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_ACCESS_DENIED 0x8004               | NackAccessDenied              |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED 0x8005          | NackHopCountExceeded          |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_BAD_SIGNATURE 0x8006               | NackBadSignature              |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_BAD_ENCRYPTION 0x8007              | NackBadEncryption             |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q 0x8009         | NackNotTransactionalQueue     |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG 0x800a       | NackNotTransactionalMessage   |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER 0x800b | NackUnsupportedCryptoProvider |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_Q_DELETED 0xc000                   | NackQueueDeleted              |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_Q_PURGED 0xc001                    | NackQueuePurged               |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_RECEIVE_TIMEOUT 0xc002             | NackReceiveTimeout            |
	//	+-----------------------------------------------------+-------------------------------+
	//	| MQMSG_CLASS_NACK_RECEIVE_REJECTED 0xc004            | NackReceiveRejected           |
	//	+-----------------------------------------------------+-------------------------------+
	Class uint16 `idl:"name:pClass" json:"class"`
	// ppMessageID:  The ppMessageID member, if present, specifies a value that can be used
	// to correlate response messages to sent messages.
	MessageID *mqmq.ObjectID `idl:"name:ppMessageID" json:"message_id"`
	// ppCorrelationID:  If present, the ppCorrelationID member is an array of bytes containing
	// an OBJECTID structure (as specified in [MS-MQMQ] section 2.2.8). The ppCorrelationID
	// member, if present, contains a value copied from the ppMessageID member of a previous
	// request and can be used to correlate responses with previously sent messages. The
	// size (in count of bytes) of ppCorrelationID MUST NOT exceed 20.
	CorrelationID []byte `idl:"name:ppCorrelationID;size_is:(, 20);length_is:(, 20)" json:"correlation_id"`
	// pSentTime:  The pSentTime member is formatted in UTC. The pSentTime member specifies
	// the time that the message was sent.
	SentTime uint32 `idl:"name:pSentTime" json:"sent_time"`
	// pArrivedTime:  The pArrivedTime member is formatted in UTC. The pArrivedTime member
	// specifies the time the message was received.
	ArrivedTime uint32 `idl:"name:pArrivedTime" json:"arrived_time"`
	// pPriority:  The pPriority member is a single byte. The pPriority member specifies
	// the processing priority for the message with larger values indicating a higher priority.
	// The byte value MUST be in the range of 0x00 to 0x07. If no priority is set, the default
	// priority value of 0x03 is used. The pPriority member is ignored for transactional
	// messages. Messages that are not part of a transaction will be processed in arrival
	// sequence within priority. The pPriority member is ignored if the message is a part
	// of a transaction.
	Priority uint8 `idl:"name:pPriority" json:"priority"`
	// pDelivery:  The pDelivery member is a single byte. The pDelivery member MUST specify
	// a value of 0x00 or 0x01.
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                     MEANING                                      |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| 0x00  | A value of 0x00 specifies that the message is not recoverable. The message       |
	//	|       | can remain in volatile storage and is subject to loss in the event of a system   |
	//	|       | crash. This value corresponds to Message.DeliveryGuarantee.Express as defined in |
	//	|       | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| 0x01  | A value of 0x01 specifies that the message is recoverable and is to be written   |
	//	|       | to non-volatile storage as it moves through the network to its destination and   |
	//	|       | can survive a system crash. Recoverable messages do not have to be part of a     |
	//	|       | transaction. This value corresponds to Message.DeliveryGuarantee.Recoverable as  |
	//	|       | defined in [MS-MQDMPR] section 3.1.1.12.                                         |
	//	+-------+----------------------------------------------------------------------------------+
	Delivery uint8 `idl:"name:pDelivery" json:"delivery"`
	// pAcknowledge:  The pAcknowledge member is a single byte. The pAcknowledge member
	// value specifies the types of acknowledgment messages that are to be generated for
	// this message. Acknowledgment messages are returned in the administration queue. The
	// pAcknowledge member value MUST be assigned from the following list:
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                            |                                                                                  |
	//	|                   VALUE                    |                                     MEANING                                      |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_NONE 0x00             | No acknowledgment needed. This value corresponds to                              |
	//	|                                            | Message.AcknowledgementsRequested.None as defined in [MS-MQDMPR] section         |
	//	|                                            | 3.1.1.12.                                                                        |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL 0x01      | Positive acknowledgment is to be sent when the message is                        |
	//	|                                            | placed in the destination queue. This value corresponds to                       |
	//	|                                            | Message.AcknowledgementsRequested.AckPosArrival as defined in [MS-MQDMPR]        |
	//	|                                            | section 3.1.1.12.                                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_POS_RECEIVE 0x02      | Positive acknowledgment is to be sent when the message is                        |
	//	|                                            | received from the destination queue. This value corresponds to                   |
	//	|                                            | Message.AcknowledgementsRequested.AckPosReceive as defined in [MS-MQDMPR]        |
	//	|                                            | section 3.1.1.12.                                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL 0x04      | Negative acknowledgment is to be sent when the message fails                     |
	//	|                                            | to arrive at the destination queue. This value corresponds to                    |
	//	|                                            | Message.AcknowledgementsRequested.AckNegArrival as defined in [MS-MQDMPR]        |
	//	|                                            | section 3.1.1.12.                                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE 0x04 | Negative acknowledgment is to be sent when the message fails                     |
	//	|                                            | to arrive at the destination queue. This value corresponds to                    |
	//	|                                            | Message.AcknowledgementsRequested.AckNegArrival as defined in [MS-MQDMPR]        |
	//	|                                            | section 3.1.1.12.                                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE 0x05 | Positive acknowledgment is to be sent when the message is placed in the          |
	//	|                                            | destination queue and/or negative acknowledgment is to be sent when the          |
	//	|                                            | message fails to arrive at the destination queue. This value corresponds to a    |
	//	|                                            | combination of Message.AcknowledgementsRequested.AckPosArrival and AckNegArrival |
	//	|                                            | as defined in [MS-MQDMPR] section 3.1.1.12.                                      |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE 0x08      | Negative acknowledgment is to be sent when the message fails to                  |
	//	|                                            | be received from the destination queue. This value corresponds to                |
	//	|                                            | Message.AcknowledgementsRequested.AckNegReceive as defined in [MS-MQDMPR]        |
	//	|                                            | section 3.1.1.12.                                                                |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE 0x0C     | Negative acknowledgment is to be sent when the message fails to arrive           |
	//	|                                            | at the destination queue or when a receive for the message from the              |
	//	|                                            | destination queue fails. This value corresponds to a combination of              |
	//	|                                            | Message.AcknowledgementsRequested.AckNegReceive and AckNegArrival as defined in  |
	//	|                                            | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE 0x0E     | Positive acknowledgment is to be sent when the message is received from the      |
	//	|                                            | destination queue and a negative acknowledgment is to be sent when the message   |
	//	|                                            | fails to arrive at the destination queue or a negative acknowledgment is to be   |
	//	|                                            | sent when a receive for the message from the destination queue fails. This value |
	//	|                                            | corresponds to a combination of Message.AcknowledgementsRequested.AckNegReceive, |
	//	|                                            | AckNegArrival, and AckPosReceive as defined in [MS-MQDMPR] section 3.1.1.12.     |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	Acknowledge uint8 `idl:"name:pAcknowledge" json:"acknowledge"`
	// pAuditing:  The pAuditing member is a single byte. The pAuditing member value specifies
	// the conditions under which copies of the message are to be stored as the message
	// is routed to the destination queue. The pAuditing member value MUST be assigned from
	// the following list:
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_JOURNAL_NONE 0x00             | Do not store copies. This value corresponds to a                                 |
	//	|                                     | Message.PositiveJournalingRequested value of False and a                         |
	//	|                                     | Message.NegativeJournalingRequested value of False, as defined in [MS-MQDMPR]    |
	//	|                                     | section 3.1.1.12.                                                                |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_DEADLETTER 0x01               | Store copy in dead-letter queue on failure. This value corresponds               |
	//	|                                     | to a Message.PositiveJournalingRequested value of False and a                    |
	//	|                                     | Message.NegativeJournalingRequested value of True, as defined in [MS-MQDMPR]     |
	//	|                                     | section 3.1.1.12.                                                                |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_JOURNAL 0x02                  | Store copy in queue journal upon successful delivery to next computer. This      |
	//	|                                     | value corresponds to a Message.PositiveJournalingRequested value of True and a   |
	//	|                                     | Message.NegativeJournalingRequested value of False, as defined in [MS-MQDMPR]    |
	//	|                                     | section 3.1.1.12.                                                                |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_DEADLETTER|MQMSG_JOURNAL 0x03 | Store copy in queue journal upon successful delivery to next computer.           |
	//	|                                     | Store copy in dead-letter queue on failure. This value corresponds               |
	//	|                                     | to a Message.PositiveJournalingRequested value of True and a                     |
	//	|                                     | Message.NegativeJournalingRequested value of True, as defined in [MS-MQDMPR]     |
	//	|                                     | section 3.1.1.12.                                                                |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	Auditing uint8 `idl:"name:pAuditing" json:"auditing"`
	// pApplicationTag:  The pApplicationTag member value is a user-provided item that is
	// passed through unmodified to the message-receiving application. A common use of the
	// pApplicationTag member value is to indicate to the receiving application the type
	// of data contained in the ppMsgExtension member.
	ApplicationTag uint32 `idl:"name:pApplicationTag" json:"application_tag"`
	// ppBody:  The ppBody member is an array of bytes. When the ppBody member is present
	// it contains the user message payload.
	Body []byte `idl:"name:ppBody;size_is:(, ulAllocBodyBufferInBytes);length_is:(, ulBodyBufferSizeInBytes)" json:"body"`
	// ulBodyBufferSizeInBytes:  The ulBodyBufferSizeInBytes member specifies the size (in
	// count of bytes) of the data present in the ppBody member. The value of the ulBodyBufferSizeInBytes
	// member MUST be less than or equal to the value in the ulAllocBodyBufferInBytes member.
	BodyBufferSizeInBytes uint32 `idl:"name:ulBodyBufferSizeInBytes" json:"body_buffer_size_in_bytes"`
	// ulAllocBodyBufferInBytes:  The ulAllocBodyBufferInBytes member specifies the size
	// (in count of bytes) of the buffer that is allocated to contain the ppBody member.
	AllocBodyBufferInBytes uint32 `idl:"name:ulAllocBodyBufferInBytes" json:"alloc_body_buffer_in_bytes"`
	// pBodySize:  The pBodySize member specifies the size (in count of bytes) of the data
	// present in the ppBody member after an encryption or decryption operation has been
	// performed on the ppBody member. The value of the pBodySize member MUST be less than
	// or equal to the value in the ulAllocBodyBufferInBytes member.
	BodySize uint32 `idl:"name:pBodySize" json:"body_size"`
	// ppTitle:  The ppTitle member, when present, is a Unicode string. The ppTitle member
	// specifies a title associated with the message.
	Title string `idl:"name:ppTitle;size_is:(, ulTitleBufferSizeInWCHARs);length_is:(, ulTitleBufferSizeInWCHARs)" json:"title"`
	// ulTitleBufferSizeInWCHARs:  The ulTitleBufferSizeInWCHARs member specifies the size
	// (in count of Unicode characters) of the ppTitle member. The ulTitleBufferSizeInWCHARs
	// member MUST NOT exceed 250.
	TitleBufferSizeInWchars uint32 `idl:"name:ulTitleBufferSizeInWCHARs" json:"title_buffer_size_in_wchars"`
	// pulTitleBufferSizeInWCHARs:  The pulTitleBufferSizeInWCHARs member specifies the
	// actual size (in count of Unicode characters) of the string, if present, in the ppTitle
	// member Unicode string.
	ActualTitleBufferSizeInWchars uint32 `idl:"name:pulTitleBufferSizeInWCHARs" json:"actual_title_buffer_size_in_wchars"`
	// ulAbsoluteTimeToQueue:  The ulAbsoluteTimeToQueue member value provided by the client
	// specifies the number of seconds within which the message MUST reach the destination
	// queue or be discarded. Internally, ulAbsoluteTimeToQueue is converted to a UTC time
	// using the clock of the system on which the queue manager is executing.
	AbsoluteTimeToQueue uint32 `idl:"name:ulAbsoluteTimeToQueue" json:"absolute_time_to_queue"`
	// pulRelativeTimeToQueue:  The pulRelativeTimeToQueue member specifies the number of
	// seconds within which the response message MUST reach the destination queue or be
	// discarded.
	ActualRelativeTimeToQueue uint32 `idl:"name:pulRelativeTimeToQueue" json:"actual_relative_time_to_queue"`
	// ulRelativeTimeToLive:  The ulRelativeTimeToLive member value specifies the number
	// of seconds within which the message MUST be received from the destination queue or
	// be discarded. Internally, ulRelativeTimeToLive is converted to a UTC time using the
	// clock of the system on which the queue manager is executing.
	RelativeTimeToLive uint32 `idl:"name:ulRelativeTimeToLive" json:"relative_time_to_live"`
	// pulRelativeTimeToLive:  The pulRelativeTimeToLive member specifies the number of
	// seconds remaining before the response message will be discarded if it is not received
	// from the destination queue.
	ActualRelativeTimeToLive uint32 `idl:"name:pulRelativeTimeToLive" json:"actual_relative_time_to_live"`
	// pTrace:  The pTrace member MUST be a single byte and indicates whether or not tracing
	// is active.
	//
	//	+-------+----------------------------------------------------------------------------------+
	//	|       |                                                                                  |
	//	| VALUE |                                     MEANING                                      |
	//	|       |                                                                                  |
	//	+-------+----------------------------------------------------------------------------------+
	//	+-------+----------------------------------------------------------------------------------+
	//	| 0x00  | A value of 0x00 MUST be used to specify that tracing is not active. This         |
	//	|       | value corresponds to Message.TracingRequested value of False, as defined in      |
	//	|       | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-------+----------------------------------------------------------------------------------+
	//	| 0x01  | A value of 0x01 MUST be used to specify that tracing is active. This value       |
	//	|       | corresponds to Message.TracingRequested value of True, as defined in [MS-MQDMPR] |
	//	|       | section 3.1.1.12.                                                                |
	//	+-------+----------------------------------------------------------------------------------+
	Trace uint8 `idl:"name:pTrace" json:"trace"`
	// pulSenderIDType:  The pulSenderIDType member specifies the type of the ppSenderID
	// member contents. The pulSenderIDType member value MUST be assigned from the following
	// list:
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_SENDERID_TYPE_NONE 0x00000000 | No sender ID is present. This value corresponds to Message.SenderIdentifierType  |
	//	|                                     | value of None, as defined in [MS-MQDMPR] section 3.1.1.12.                       |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_SENDERID_TYPE_SID 0x00000001  | The sender ID is a SID. This value corresponds to Message.SenderIdentifierType   |
	//	|                                     | value of Sid, as defined in [MS-MQDMPR] section 3.1.1.12.                        |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_SENDERID_TYPE_QM 0x00000002   | The sender ID is the GUID assigned to a queue manager. This value corresponds    |
	//	|                                     | to Message.SenderIdentifierType value of QueueManagerIdentifier, as defined in   |
	//	|                                     | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	SenderIDType uint32 `idl:"name:pulSenderIDType" json:"sender_id_type"`
	// ppSenderID:  The ppSenderID member MUST be an array of bytes. When the value of the
	// pulSenderIDType member is 0x00000000 (MQMSG_SENDERID_TYPE_NONE), the ppSenderID member
	// MUST NOT be present. If the value of the pulSenderIDType member is 0x00000001 (MQMSG_SENDERID_TYPE_SID),
	// the ppSenderID member MUST contain a SID. If the value of the pulSenderIDType member
	// is 0x00000002 (MQMSG_SENDERID_TYPE_QM), the ppSenderID member MUST contain a valid
	// MSMQ Site GUID.
	SenderID []byte `idl:"name:ppSenderID;size_is:(, uSenderIDLen)" json:"sender_id"`
	// pulSenderIDLenProp:  The pulSenderIDLenProp member specifies the size (in count of
	// bytes) of the data present in the ppSenderID member.
	SenderIDLengthProperty uint32 `idl:"name:pulSenderIDLenProp" json:"sender_id_length_property"`
	// pulPrivLevel:  The pulPrivLevel member specifies the privacy level that is used for
	// processing the message. The pulPrivLevel member value MUST be assigned from the following
	// list:
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                   VALUE                   |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_PRIV_LEVEL_NONE 0x00000000          | The message is not private. This value corresponds to Message.PrivacyLevel value |
	//	|                                           | of None, as defined in [MS-MQDMPR] section 3.1.1.12.                             |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_PRIV_LEVEL_BODY_BASE 0x00000001     | The message is private and the Cryptographic Service Provider (CSP) will use     |
	//	|                                           | a 40-bit encryption key to encrypt and decrypt the message body. This value      |
	//	|                                           | corresponds to Message.PrivacyLevel value of Base, as defined in [MS-MQDMPR]     |
	//	|                                           | section 3.1.1.12.                                                                |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_PRIV_LEVEL_BODY_ENHANCED 0x00000002 | The message is private and the CSP will use a 128-bit encryption key to encrypt  |
	//	|                                           | and decrypt the message body. This value corresponds to Message.PrivacyLevel     |
	//	|                                           | value of Enhanced, as defined in [MS-MQDMPR] section 3.1.1.12.                   |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	PrivLevel uint32 `idl:"name:pulPrivLevel" json:"priv_level"`
	// ulAuthLevel:  The ulAuthLevel member is used only in local interprocess communication
	// and therefore has no meaning when this protocol is used over a network. Servers MUST
	// ignore this field, and clients can specify any value.
	AuthLevel uint32 `idl:"name:ulAuthLevel" json:"auth_level"`
	// pAuthenticated:  The pAuthenticated member is a single byte. The pAuthenticated member
	// value is used to determine the level of authentication that has been performed on
	// the message. The pAuthenticated member value MUST be assigned from the following
	// list:
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                         |                                                                                  |
	//	|                  VALUE                  |                                     MEANING                                      |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_AUTHENTICATION_NOT_REQUESTED 0x00 | Authentication has not been performed. This value corresponds to                 |
	//	|                                         | Message.AuthenticationLevel value of None, as defined in [MS-MQDMPR] section     |
	//	|                                         | 3.1.1.12.                                                                        |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_AUTHENTICATED_SIG10 0x01          | Authentication has been performed using an MSMQ 1.0 digital signature. This      |
	//	|                                         | value corresponds to Message.AuthenticationLevel value of Sig10, as defined in   |
	//	|                                         | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_AUTHENTICATED_SIG20 0x03          | Authentication has been performed using an MSMQ 2.0 digital signature. This      |
	//	|                                         | value corresponds to Message.AuthenticationLevel value of Sig20, as defined in   |
	//	|                                         | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_AUTHENTICATED_SIG30 0x05          | Authentication has been performed using an MSMQ 3.0 digital signature. This      |
	//	|                                         | value corresponds to Message.AuthenticationLevel value of Sig30, as defined in   |
	//	|                                         | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_AUTHENTICATED_SIGXML 0x09         | Authentication has been performed using an XML digital signature. This value     |
	//	|                                         | corresponds to Message.AuthenticationLevel value of XMLSig, as defined in        |
	//	|                                         | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	Authenticated uint8 `idl:"name:pAuthenticated" json:"authenticated"`
	// pulHashAlg:  The pulHashAlg member specifies the hashing algorithm that is to be
	// used in the digital signing process and by the authentication process. The pulHashAlg
	// member value MUST be assigned from the following list:
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|                               |                                                                                  |
	//	|             VALUE             |                                     MEANING                                      |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_MD2 0x00008001     | Use the MD2 algorithm as specified in [RFC1319]. This value corresponds to the   |
	//	|                               | Message.HashAlgorithm value of MD2, as defined in [MS-MQDMPR] section 3.1.1.12.  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_MD4 0x00008002     | Use the MD4 algorithm as specified in [RFC1320]. This value corresponds to the   |
	//	|                               | Message.HashAlgorithm value of MD4, as defined in [MS-MQDMPR] section 3.1.1.12.  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_MD5 0x00008003     | Use the MD5 algorithm as specified in [RFC1321]. This value corresponds to the   |
	//	|                               | Message.HashAlgorithm value of MD5, as defined in [MS-MQDMPR] section 3.1.1.12.  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_SHA1 0x00008004    | Use the SHA-1 algorithm as specified in [RFC3174]. This value corresponds to the |
	//	|                               | Message.HashAlgorithm value of SHA1, as defined in [MS-MQDMPR] section 3.1.1.12. |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_SHA_256 0x0000800C | Use the SHA-256 algorithm, as specified in [FIPS180-2]. This value corresponds   |
	//	|                               | to the Message.HashAlgorithm value of SHA_256, as defined in [MS-MQDMPR] section |
	//	|                               | 3.1.1.12.                                                                        |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_SHA_512 0x0000800E | Use the SHA-512 algorithm, as specified in [FIPS180-2]. This value corresponds   |
	//	|                               | to the Message.HashAlgorithm value of SHA_512, as defined in [MS-MQDMPR] section |
	//	|                               | 3.1.1.12.                                                                        |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	HashAlgorithm uint32 `idl:"name:pulHashAlg" json:"hash_algorithm"`
	// pulEncryptAlg:  The pulEncryptAlg member specifies that the encryption algorithm
	// is to be used to encrypt and decrypt the message body. The pulEncryptAlg member value
	// MUST be assigned from the following list:
	//
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	|                           |                                                                                  |
	//	|           VALUE           |                                     MEANING                                      |
	//	|                           |                                                                                  |
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_RC2 0x00006602 | Use the RC2 encryption algorithm as specified in [RFC2268]. This value           |
	//	|                           | corresponds to Message.EncryptionAlgorithm value of RC2, as defined in           |
	//	|                           | [MS-MQDMPR] section 3.1.1.12.                                                    |
	//	+---------------------------+----------------------------------------------------------------------------------+
	//	| MQMSG_CALG_RC4 0x00006801 | Use the RC4 encryption algorithm as specified in [RC4]. This value corresponds   |
	//	|                           | to Message.EncryptionAlgorithm value of RC4, as defined in [MS-MQDMPR] section   |
	//	|                           | 3.1.1.12.                                                                        |
	//	+---------------------------+----------------------------------------------------------------------------------+
	EncryptAlgorithm uint32 `idl:"name:pulEncryptAlg" json:"encrypt_algorithm"`
	// ppSenderCert:  The ppSenderCert member is an array of bytes. If not NULL, the ppSenderCert
	// member MUST contain the message sender's X509 certificate. The byte length of the
	// buffer MUST be indicated by ulSenderCertLen.
	SenderCert []byte `idl:"name:ppSenderCert;size_is:(, ulSenderCertLen)" json:"sender_cert"`
	// ulSenderCertLen:  The ulSenderCertLen member specifies the byte length of the certificate
	// contained in ppSenderCert.
	SenderCertLength uint32 `idl:"name:ulSenderCertLen" json:"sender_cert_length"`
	// pulSenderCertLenProp:  The pulSenderCertLenProp member specifies the length (in count
	// of bytes) of the certificate contained in ppSenderCert.
	SenderCertLengthProperty uint32 `idl:"name:pulSenderCertLenProp" json:"sender_cert_length_property"`
	// ppwcsProvName:  The ppwcsProvName member is a Unicode string. If present, the ppwcsProvName
	// member specifies the name of the Cryptographic Service Provider (CSP) that is used
	// to generate digital signatures for the message.
	ProvName string `idl:"name:ppwcsProvName;size_is:(, ulProvNameLen)" json:"prov_name"`
	// ulProvNameLen:  The ulProvNameLen member specifies the size (in count of Unicode
	// characters) of the buffer that was allocated to contain the ppwcsProvName string.
	ProvNameLength uint32 `idl:"name:ulProvNameLen" json:"prov_name_length"`
	// pulAuthProvNameLenProp:  The pulAuthProvNameLenProp member specifies the size (in
	// count of Unicode characters) of the CSP name contained in ppwcsProvName, plus the
	// size of an enhanced signature appended to the ppSignature buffer. Rules for computing
	// and understanding values for this field are defined in sections 3.1.5.3 and 3.1.5.4.
	AuthProvNameLengthProperty uint32 `idl:"name:pulAuthProvNameLenProp" json:"auth_prov_name_length_property"`
	// pulProvType:  The pulProvType member specifies the type of CSP that is named by ppwcsProvName.
	ProvType uint32 `idl:"name:pulProvType" json:"prov_type"`
	// fDefaultProvider:  The fDefaultProvider member specifies if the CSP named by ppwcsProvName
	// is a default CSP. A value of 0x00000000 MUST be used to specify that the ppwcsProvName
	// is not the default name and all other values MUST be interpreted as specifying that
	// the ppwcsProvName is the default name.
	DefaultProvider int32 `idl:"name:fDefaultProvider" json:"default_provider"`
	// ppSymmKeys:  The ppSymmKeys member is an array of bytes. The ppSymmKeys member, if
	// present, contains an encrypted symmetric key.
	SymmetricKeys []byte `idl:"name:ppSymmKeys;size_is:(, ulSymmKeysSize)" json:"symmetric_keys"`
	// ulSymmKeysSize:  The ulSymmKeysSize member specifies the size (in count of bytes)
	// of the buffer that was allocated to contain the ppSymmKeys member.
	SymmetricKeysSize uint32 `idl:"name:ulSymmKeysSize" json:"symmetric_keys_size"`
	// pulSymmKeysSizeProp:  The pulSymmKeysSizeProp member specifies the size (in count
	// of bytes) of the ppSymmKeys member.
	SymmetricKeysSizeProperty uint32 `idl:"name:pulSymmKeysSizeProp" json:"symmetric_keys_size_property"`
	// bEncrypted:  The bEncrypted member is a single byte. The bEncrypted member specifies
	// if the message body is encrypted or is not encrypted. A bEncrypted member value of
	// 0x00 MUST be interpreted as specifying that the message is not encrypted (FALSE)
	// and all other values MUST be interpreted as specifying that the message is encrypted
	// (TRUE).
	Encrypted uint8 `idl:"name:bEncrypted" json:"encrypted"`
	// bAuthenticated:  The bAuthenticated member is a single byte. The bAuthenticated member
	// specifies if the message has been authenticated or has not been authenticated. A
	// bAuthenticated member value of 0x00 MUST be used to specify that the message has
	// not been authenticated (FALSE) and all other values MUST be interpreted as specifying
	// that the message has been authenticated (TRUE).
	IsAuthenticated uint8 `idl:"name:bAuthenticated" json:"is_authenticated"`
	// uSenderIDLen:  The uSenderIDLen member specifies the maximum size (in count of bytes)
	// that is available to contain data in the ppSenderID member.
	SenderIDLength uint16 `idl:"name:uSenderIDLen" json:"sender_id_length"`
	// ppSignature:  The ppSignature member is an array of bytes. The ppSignature member
	// contains the signature(s) used to authenticate the message.<5>
	Signature []byte `idl:"name:ppSignature;size_is:(, ulSignatureSize)" json:"signature"`
	// ulSignatureSize:  The ulSignatureSize member specifies the size (in count of bytes)
	// allocated to hold the ppSignature member.
	SignatureSize uint32 `idl:"name:ulSignatureSize" json:"signature_size"`
	// pulSignatureSizeProp:  The pulSignatureSizeProp member specifies the size (in count
	// of bytes) of the authentication signature(s) in the ppSignature member.
	SignatureSizeProperty uint32 `idl:"name:pulSignatureSizeProp" json:"signature_size_property"`
	// ppSrcQMID:  The ppSrcQMID member is a GUID. The member contains the GUID assigned
	// to the MSMQ installation that is the source of the message.
	SourceQMID *dtyp.GUID `idl:"name:ppSrcQMID" json:"source_qmid"`
	// pUow:  The pUow member is an XACTUOW structure ([MS-MQMQ] section 2.2.18.1.8). If
	// not NULL, this field identifies a transaction for a Send or Receive operation.
	UOW *mqmq.TransactionUOW `idl:"name:pUow" json:"uow"`
	// ppMsgExtension:  The ppMsgExtension member is an array of bytes. The ppMsgExtension
	// member, when present, contains application-specific data. The ppMsgExtension member
	// is primarily used to pass information to foreign queues.
	MessageExtension []byte `` /* 132-byte string literal not displayed */
	// ulMsgExtensionBufferInBytes:  The ulMsgExtensionBufferInBytes member specifies the
	// size (in count of bytes) of the buffer allocated for the ppMsgExtension array.
	MessageExtensionBufferInBytes uint32 `idl:"name:ulMsgExtensionBufferInBytes" json:"message_extension_buffer_in_bytes"`
	// pMsgExtensionSize:  The pMsgExtensionSize member specifies the size (in count of
	// bytes) of the data contained in the ppMsgExtension array.
	MessageExtensionSize uint32 `idl:"name:pMsgExtensionSize" json:"message_extension_size"`
	// ppConnectorType:  The ppConnectorType member, if present, is a GUID. The ppConnectorType
	// member specifies the identifier of a foreign queue that is used to communicate with
	// a foreign messaging system.
	ConnectorType *dtyp.GUID `idl:"name:ppConnectorType" json:"connector_type"`
	// pulBodyType:  The pulBodyType member value MUST be one of the valid values allowed
	// for a VARTYPE as specified in [MS-MQMQ] section 2.2.12.
	BodyType uint32 `idl:"name:pulBodyType" json:"body_type"`
	// pulVersion:  The pulVersion member specifies the MSMQ packet version.<6>
	Version uint32 `idl:"name:pulVersion" json:"version"`
}

TransferBufferV1 structure represents CACTransferBufferV1 RPC structure.

The CACTransferBufferV1 structure is used to send and receive messages via MSMQ.

Following is the layout of the CACTransferBufferV1 structure with IDL annotations followed by descriptions of the structure members.

func (*TransferBufferV1) MarshalNDR

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

func (*TransferBufferV1) UnmarshalNDR

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

type TransferBufferV1_CreateCursor

type TransferBufferV1_CreateCursor struct {
	// CreateCursor:  The CreateCursor member contains information for creating a cursor
	// which is used when receiving messages from a queue. The CreateCursor member is present
	// in the CACTransferBufferV1 structure when the value of the uTransferType member is
	// 0x00000002 (CACTB_CREATECURSOR). The CreateCursor member is not used by any of the
	// methods defined by the qmcomm and qmcomm2 interfaces.
	CreateCursor *CreateRemoteCursor `idl:"name:CreateCursor" json:"create_cursor"`
}

TransferBufferV1_CreateCursor structure represents TransferBufferV1_TransferBufferV1 RPC union arm.

It has following labels: 2

func (*TransferBufferV1_CreateCursor) MarshalNDR

func (*TransferBufferV1_CreateCursor) UnmarshalNDR

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

type TransferBufferV1_Receive

type TransferBufferV1_Receive struct {
	// Receive:  The Receive structure is present in the CACTransferBufferV1 structure when
	// the value of the uTransferType member is 0x00000001 (CACTB_RECEIVE). The Receive
	// structure is defined inline to the CACTransferBufferV1 structure. The Receive structure
	// members are defined as follows:
	Receive *TransferBufferV1_TransferBufferV1_Receive `idl:"name:Receive" json:"receive"`
}

TransferBufferV1_Receive structure represents TransferBufferV1_TransferBufferV1 RPC union arm.

It has following labels: 1

func (*TransferBufferV1_Receive) MarshalNDR

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

func (*TransferBufferV1_Receive) UnmarshalNDR

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

type TransferBufferV1_Send

type TransferBufferV1_Send struct {
	// Send:  The Send structure is present in the CACTransferBufferV1 structure when the
	// value of the uTransferType member is 0x00000000 (CACTB_SEND). The Send structure
	// is defined inline to the CACTransferBufferV1 structure. The Send structure members
	// are defined as follows:
	Send *TransferBufferV1_TransferBufferV1_Send `idl:"name:Send" json:"send"`
}

TransferBufferV1_Send structure represents TransferBufferV1_TransferBufferV1 RPC union arm.

It has following labels: 0

func (*TransferBufferV1_Send) MarshalNDR

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

func (*TransferBufferV1_Send) UnmarshalNDR

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

type TransferBufferV1_TransferBufferV1

type TransferBufferV1_TransferBufferV1 struct {
	// Types that are assignable to Value
	//
	// *TransferBufferV1_Send
	// *TransferBufferV1_Receive
	// *TransferBufferV1_CreateCursor
	Value is_TransferBufferV1_TransferBufferV1 `json:"value"`
}

TransferBufferV1_TransferBufferV1 structure represents CACTransferBufferV1 union anonymous member.

The CACTransferBufferV1 structure is used to send and receive messages via MSMQ.

Following is the layout of the CACTransferBufferV1 structure with IDL annotations followed by descriptions of the structure members.

func (*TransferBufferV1_TransferBufferV1) GetValue

func (o *TransferBufferV1_TransferBufferV1) GetValue() any

func (*TransferBufferV1_TransferBufferV1) MarshalUnionNDR

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

func (*TransferBufferV1_TransferBufferV1) NDRSwitchValue

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

func (*TransferBufferV1_TransferBufferV1) UnmarshalUnionNDR

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

type TransferBufferV1_TransferBufferV1_Receive

type TransferBufferV1_TransferBufferV1_Receive struct {
	// RequestTimeout:  The RequestTimeout member specifies the amount of time (in milliseconds)
	// to wait for a message to be returned before returning a failure.
	RequestTimeout uint32 `idl:"name:RequestTimeout" json:"request_timeout"`
	// Action:  The Action member specifies the type of receive operation that is to be
	// performed. The Action member MUST specify one of the values: 0x00000000 (MQ_ACTION_RECEIVE),
	// 0x80000000 (MQ_ACTION_PEEK_CURRENT), or 0x80000001 (MQ_ACTION_PEEK_NEXT).
	//
	//	+------------------------+------------+
	//	|                        |            |
	//	|          NAME          |   VALUE    |
	//	|                        |            |
	//	+------------------------+------------+
	//	+------------------------+------------+
	//	| MQ_ACTION_RECEIVE      | 0x00000000 |
	//	+------------------------+------------+
	//	| MQ_ACTION_PEEK_CURRENT | 0x80000000 |
	//	+------------------------+------------+
	//	| MQ_ACTION_PEEK_NEXT    | 0x80000001 |
	//	+------------------------+------------+
	Action uint32 `idl:"name:Action" json:"action"`
	// Asynchronous:  The Asynchronous member is used as a Boolean variable to indicate
	// if the receive is to be performed asynchronously. An Asynchronous member value of
	// 0x00000000 SHOULD be interpreted as specifying FALSE (receive operation is not to
	// be performed asynchronously) and all other values SHOULD be interpreted as TRUE (receive
	// operation is to be performed asynchronously).<4>
	Asynchronous uint32 `idl:"name:Asynchronous" json:"asynchronous"`
	// Cursor:  A cursor handle obtained from rpc_ACCreateCursorEx (section 3.1.5.4). A
	// cursor can be used to reference a specific position within the message queue, rather
	// than the first message in the queue, from which the message will be retrieved.
	Cursor uint32 `idl:"name:Cursor" json:"cursor"`
	// ulResponseFormatNameLen:  The ulResponseFormatNameLen member specifies the size (in
	// count of Unicode characters) of the string allocated for the ppResponseFormatName
	// member. The ulResponseFormatNameLen member MUST have a value in the range of 0 to
	// 1024, inclusive.
	ResponseFormatNameLength uint32 `idl:"name:ulResponseFormatNameLen" json:"response_format_name_length"`
	// ppResponseFormatName:  A null-terminated Unicode string containing a format name
	// (as specified in [MS-MQMQ]) which indicates an application-defined queue which can
	// be used for response messages. This value is used only by MSMQ applications, and
	// it MUST be ignored by MSMQ queue managers.
	ResponseFormatName string `idl:"name:ppResponseFormatName;size_is:(, ulResponseFormatNameLen)" json:"response_format_name"`
	// pulResponseFormatNameLenProp:  The pulResponseFormatNameLenProp member specifies
	// the size (in count of Unicode characters) of the string contained in the ppResponseFormatName
	// member.
	ResponseFormatNameLengthProperty uint32 `idl:"name:pulResponseFormatNameLenProp" json:"response_format_name_length_property"`
	// ulAdminFormatNameLen:  The ulAdminFormatNameLen member specifies the size (in count
	// of Unicode characters) of the string allocated for the ppAdminFormatName member.
	// The ulAdminFormatNameLen member MUST have a value in the range of 0 to 1024, inclusive.
	AdminFormatNameLength uint32 `idl:"name:ulAdminFormatNameLen" json:"admin_format_name_length"`
	// ppAdminFormatName:  A null-terminated Unicode string containing a format name (as
	// specified in [MS-MQMQ]) which indicates an application-defined administration queue
	// to which acknowledgment messages will be directed.
	AdminFormatName string `idl:"name:ppAdminFormatName;size_is:(, ulAdminFormatNameLen)" json:"admin_format_name"`
	// pulAdminFormatNameLenProp:  The pulAdminFormatNameLenProp member specifies the size
	// (in count of Unicode characters) of the string contained in the ppAdminFormatName
	// member.
	AdminFormatNameLengthProperty uint32 `idl:"name:pulAdminFormatNameLenProp" json:"admin_format_name_length_property"`
	// ulDestFormatNameLen:  The ulDestFormatNameLen member specifies the size (in count
	// of Unicode characters) of the string allocated for the ppDestFormatName member. The
	// ulDestFormatNameLen member MUST have a value in the range of 0 to 1024, inclusive.
	DestinationFormatNameLength uint32 `idl:"name:ulDestFormatNameLen" json:"destination_format_name_length"`
	// ppDestFormatName:  A null-terminated Unicode string containing a format name (as
	// specified in [MS-MQMQ]) that indicates the name of a message's destination queue.
	DestinationFormatName string `idl:"name:ppDestFormatName;size_is:(, ulDestFormatNameLen)" json:"destination_format_name"`
	// pulDestFormatNameLenProp:  The pulDestFormatNameLenProp member specifies the size
	// (in count of Unicode characters) of the string contained in the ppDestFormatName
	// member.
	DestinationFormatNameLengthProperty uint32 `idl:"name:pulDestFormatNameLenProp" json:"destination_format_name_length_property"`
	// ulOrderingFormatNameLen:  The ulOrderingFormatNameLen member specifies the size (in
	// count of Unicode characters) of the string allocated for the ppOrderingFormatName
	// member. The ulOrderingFormatNameLen member MUST have a value in the range of 0 to
	// 1024, inclusive.
	OrderingFormatNameLength uint32 `idl:"name:ulOrderingFormatNameLen" json:"ordering_format_name_length"`
	// ppOrderingFormatName:  A null-terminated Unicode string containing a format name
	// (as specified in [MS-MQMQ]) that indicates the name of the MSMQ order queue that
	// tracks the ordering of transactional messages.
	OrderingFormatName string `idl:"name:ppOrderingFormatName;size_is:(, ulOrderingFormatNameLen)" json:"ordering_format_name"`
	// pulOrderingFormatNameLenProp:  The pulOrderingFormatNameLenProp member specifies
	// the size (in count of Unicode characters) of the string contained in the ppOrderingFormatName
	// member.
	OrderingFormatNameLengthProperty uint32 `idl:"name:pulOrderingFormatNameLenProp" json:"ordering_format_name_length_property"`
}

TransferBufferV1_TransferBufferV1_Receive structure represents CACTransferBufferV1 structure anonymous member.

The CACTransferBufferV1 structure is used to send and receive messages via MSMQ.

Following is the layout of the CACTransferBufferV1 structure with IDL annotations followed by descriptions of the structure members.

func (*TransferBufferV1_TransferBufferV1_Receive) MarshalNDR

func (*TransferBufferV1_TransferBufferV1_Receive) UnmarshalNDR

type TransferBufferV1_TransferBufferV1_Send

type TransferBufferV1_TransferBufferV1_Send struct {
	// pAdminQueueFormat:  The pAdminQueueFormat member is a QUEUE_FORMAT ([MS-MQMQ] section
	// 2.2.7) structure. If present, the pAdminQueueFormat member describes the administration
	// queue that is to be used for send operation acknowledgments.
	AdminQueueFormat *mqmq.QueueFormat `idl:"name:pAdminQueueFormat" json:"admin_queue_format"`
	// pResponseQueueFormat:  The pResponseQueueFormat member is a QUEUE_FORMAT structure.
	// If present, the pResponseQueueFormat member describes the queue that is to be used
	// for application-specific responses. As an application-specific value, this field
	// SHOULD be ignored by the server.
	ResponseQueueFormat *mqmq.QueueFormat `idl:"name:pResponseQueueFormat" json:"response_queue_format"`
}

TransferBufferV1_TransferBufferV1_Send structure represents CACTransferBufferV1 structure anonymous member.

The CACTransferBufferV1 structure is used to send and receive messages via MSMQ.

Following is the layout of the CACTransferBufferV1 structure with IDL annotations followed by descriptions of the structure members.

func (*TransferBufferV1_TransferBufferV1_Send) MarshalNDR

func (*TransferBufferV1_TransferBufferV1_Send) UnmarshalNDR

type TransferBufferV2

type TransferBufferV2 struct {
	// old:   The CACTransferBufferOld MUST be a CACTransferBufferV1, as defined in section
	// 2.2.3.2.
	Old *TransferBufferV1 `idl:"name:old" json:"old"`
	// pbFirstInXact:   The pbFirstInXact member MUST be a single byte. The pbFirstInXact
	// member MUST be set to a value of 0x00 (FALSE) when the associated message is not
	// the first message in a transaction. A value other than 0x00 MUST be interpreted as
	// indicating (TRUE) that the associated message is the first message in a transaction.
	FirstInTransaction uint8 `idl:"name:pbFirstInXact" json:"first_in_transaction"`
	// pbLastInXact:   The pbLastInXact member MUST be a single byte. The pbLastInXact member
	// MUST be set to a value of 0x00 (FALSE) when the associated message is not the last
	// message in a transaction. A value other than 0x00 MUST be interpreted as indicating
	// (TRUE) that the associated message is the last message in a transaction.
	LastInTransaction uint8 `idl:"name:pbLastInXact" json:"last_in_transaction"`
	// ppXactID:   The ppXactID member, if present, MUST be an OBJECTID structure, as specified
	// in [MS-MQMQ] section 2.2.8.
	TransactionID *mqmq.ObjectID `idl:"name:ppXactID" json:"transaction_id"`
}

TransferBufferV2 structure represents CACTransferBufferV2 RPC structure.

The CACTransferBufferV2 structure is used to send and receive messages via MSMQ.

Following is the layout of the CACTransferBufferV2 structure followed by descriptions of the structure members.

func (*TransferBufferV2) MarshalNDR

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

func (*TransferBufferV2) UnmarshalNDR

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

type TransferType

type TransferType uint16

TransferType type represents TRANSFER_TYPE RPC enumeration.

The TRANSFER_TYPE enumeration specifies the valid cases for the unnamed union defined in the CACTransferBufferV1 structure (section 2.2.3.2).

var (
	// CACTB_SEND:  A send operation (that is, a message placed into a queue for delivery)
	// is to be performed.
	TransferTypeSend TransferType = 0
	// CACTB_RECEIVE:  A receive operation (that is, a message is to be read from a queue)
	// is to be performed.
	TransferTypeReceive TransferType = 1
	// CACTB_CREATECURSOR:  A cursor creation is to be performed.
	TransferTypeCreateCursor TransferType = 2
)

func (TransferType) String

func (o TransferType) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL