2.2.7 QUEUE_FORMAT
The QUEUE_FORMAT structure describes the type of queue being managed and an identifier for that queue.
-
typedef struct __QUEUE_FORMAT { unsigned char m_qft; unsigned char m_SuffixAndFlags; unsigned short m_reserved; [switch_is(m_qft)] union { [case(QUEUE_FORMAT_TYPE_UNKNOWN)] ; [case(QUEUE_FORMAT_TYPE_PUBLIC)] GUID m_gPublicID; [case(QUEUE_FORMAT_TYPE_PRIVATE)] OBJECTID m_oPrivateID; [case(QUEUE_FORMAT_TYPE_DIRECT)] [string] wchar_t* m_pDirectID; [case(QUEUE_FORMAT_TYPE_MACHINE)] GUID m_gMachineID; [case(QUEUE_FORMAT_TYPE_CONNECTOR)] GUID m_GConnectorID; [case(QUEUE_FORMAT_TYPE_DL)] DL_ID m_DlID; [case(QUEUE_FORMAT_TYPE_MULTICAST)] MULTICAST_ID m_MulticastID; [case(QUEUE_FORMAT_TYPE_SUBQUEUE)] [string] wchar_t* m_pDirectSubqueueID; }; } QUEUE_FORMAT;
m_qft: The type of queue format name. It MUST be set to one of the values of QUEUE_FORMAT_TYPE. It is used as a union discriminant in the QUEUE_FORMAT structure.
m_SuffixAndFlags: This member is broken into two subfields: Suffix Type is located in the 4 least-significant bits, and Flags is located in the 4 most-significant bits.
-
0
1
2
3
4
5
6
7
Flags
Suffix type
-
Flags
Meaning
QUEUE_FORMAT_FLAG_NOT_SYSTEM
0x00
The specified queue is not a system queue.
QUEUE_FORMAT_FLAG_SYSTEM
0x80
The specified queue is a system queue.
-
Suffix type
Meaning
QUEUE_SUFFIX_TYPE_NONE
0x00
No suffix is specified. The Flags subfield MUST be set to 0x00. The m_qft member MUST NOT be set to 0x04.
QUEUE_SUFFIX_TYPE_JOURNAL
0x01
A journal suffix. The Flags subfield MUST be set to 0x80. The m_qft member MUST NOT be set to 0x05, 0x06, or 0x07.
QUEUE_SUFFIX_TYPE_DEADLETTER
0x02
A dead-letter suffix. The Flags subfield MUST be set to 0x80. The m_qft member MUST NOT be set to 0x01, 0x02, 0x05, 0x06, or 0x07.
QUEUE_SUFFIX_TYPE_DEADXACT
0x03
A transacted dead-letter suffix. The Flags subfield MUST be set to 0x80. The m_qft member MUST be set to 0x03 or 0x04.
QUEUE_SUFFIX_TYPE_XACTONLY
0x04
A transaction-only suffix. The m_qft member MUST be set to 0x05.
QUEUE_SUFFIX_TYPE_SUBQUEUE
0x05
A subqueue suffix. The Flags subfield MUST be 0x00. The m_qft member MUST be set to 0x08.
m_reserved: The integer value used for padding. The client SHOULD set this value to 0. The server MUST not use it.
(unnamed union): Based on the value of m_qft.
m_gPublicID: A GUID (as specified in [MS-DTYP] section 2.3.4) of a public queue. Selected when m_qft is set to 0x01.
m_oPrivateID: An OBJECTID of a private queue; members MUST be used as specified in OBJECTID. Selected when m_qft is set to 0x02.
m_pDirectID: A direct format name (as specified in section 2.1.2) with the "DIRECT=" prefix removed. It is selected when m_qft is set to 0x03.
m_gMachineID: The GUID (as specified in [MS-DTYP] section 2.3.4) of a machine. It is selected when m_qft is set to 0x04.
m_GConnectorID: The GUID (as specified in [MS-DTYP] section 2.3.4) of a connector queue. It is selected when m_qft is set to 0x05.
m_DlID: The identifier of a distribution list. It is selected when m_qft is set to 0x06.
m_MulticastID: A MULTICAST_ID (section 2.2.10) which specifies a multicast address and port. It is selected when m_qft is set to 0x07.
m_pDirectSubqueueID: The identifier of a subqueue. Selected when m_qft is set to 0x08.
-
The value MUST conform to the ABNF for DirectName and contain the optional <Subqueue> element, as specified in section 2.1.
-
The full QUEUE_FORMAT IDL is specified in [MS-MQMR] Appendix A (section 6).