7 Appendix B: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.

The terms "earlier" and "later", when used with a product version, refer to either all preceding versions or all subsequent versions, respectively. The term "through" refers to the inclusive range of versions. Applicable Microsoft products are listed chronologically in this section.

Windows Client

  • Windows NT Workstation operating system

  • Windows 2000 Professional operating system

  • Windows XP operating system

  • Windows Vista operating system

  • Windows 7 operating system

  • Windows 8 operating system

  • Windows 8.1 operating system

  • Windows 10 operating system

  • Windows 11 operating system

Windows Server

  • Windows NT Server operating system

  • Windows 2000 Server operating system

  • Windows Server 2003 operating system

  • Windows Server 2008 operating system

  • Windows Server 2008 R2 operating system

  • Windows Server 2012 operating system

  • Windows Server 2012 R2 operating system

  • Windows Server 2016 operating system

  • Windows Server operating system

  • Windows Server 2019 operating system

  • Windows Server 2022 operating system

  • Windows Server 2025 operating system

Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section 1.6: This protocol is used only when an application is receiving messages from a remote queue using the [MS-MQMP] protocol through an MSMQ supporting server. The supporting server uses this protocol regardless of the Windows version on the destination machine of the queue. Only Windows NT operating system, Windows 2000 operating system, or Windows XP 32-bit and Windows Server 2003 32-bit on domain joined machines can be configured to support such applications. Applications can also receive messages from a remote queue using the [MC-MQAC] protocol. In such case, the [MC-MQAC] protocol server uses the RemoteRead [MS-MQRR] protocol for equivalent functionality.

<2> Section 1.7: These methods are not implemented by Windows NT or Windows 2000. All other versions of Windows implement these methods.

<3> Section 2.1: The ncacn_spx protocol sequence is supported only by Windows NT and Windows 2000. Support for IPX and the ncacn_spx protocol sequence is deprecated on Windows XP and later client operating systems and Windows Server 2003 and later server operating systems.

<4> Section 2.1: The ncacn_spx protocol sequence is supported only by Windows NT and Windows 2000. Support for IPX and the ncacn_spx protocol sequence is deprecated on Windows XP and later client operating systems and Windows Server 2003 and later server operating systems.

<5> Section 2.1: Windows NT, Windows 2000, Windows XP, and Windows Server 2003 clients use RPC dynamic endpoints to obtain the initial RPC binding handle. These clients make the RemoteQMGetQMQMServerPort call as specified in section 3.1.4.8 with the initial binding handle and use the returned value to obtain a new RPC binding handle to be used for all subsequent RPC method calls on the protocol. On all other versions of the Windows operating system, the protocol clients do not call the RemoteQMGetQMQMServerPort method; instead, the clients use RPC dynamic endpoints to obtain the RPC binding handle and use this handle for all subsequent RPC method calls on the protocol.

<6> Section 2.2.2.1: The server returns an error if the receive request identifier supplied by the client is currently in use, as described in sections 3.1.4.1 and 3.1.4.10. Windows NT, Windows 2000, and Windows XP do not perform this validation.

<7> Section 2.3: For Windows NT and Windows 2000, this protocol uses the Message Queuing (MSMQ): Directory Service Protocol [MS-MQDS].

<8> Section 2.3: For the Message Queuing (MSMQ): Directory Service Protocol [MS-MQDS], the Directory Service schema elements are described in [MS-MQDS] sections 2.2.10 and 3.1.4.21.1 through 3.1.4.21.4.

<9> Section 3.1.4: Windows 2000, Windows XP, and Windows Server 2003 use target level 5.0. Windows NT disables strict NDR data consistency checks.

<10> Section 3.1.4.1: Windows NT, Windows 2000, and Windows XP do not perform this validation.

<11> Section 3.1.4.2: On Windows Vista and later client operating systems and Windows Server 2003 and later server operating systems, the server does not perform this search.

<12> Section 3.1.4.3: On Windows NT, Windows 2000, Windows XP, and Windows Server 2003, if the value of this parameter is 0x00000000, the server enforces the client access licensing restrictions; if it is nonzero, the server does not enforce the restrictions. This parameter is ignored by Windows Vista and later client operating systems and Windows Server 2008 and later server operating systems.

<13> Section 3.1.4.3: In Windows NT and Windows 2000 the hQueue parameter is required to be set to the same value as the phQueue out parameter of qmcomm:R_QMOpenRemoteQueue, as specified in [MS-MQMP] section 3.1.4.2.  If an OpenQueueDescriptor whose Handle equals hQueue does not exist in the OpenQueueDescriptorCollection of any queue in QueueManager.QueueCollection, the server returns MQ_ERROR_INVALID_PARAMETER (0xC00E0006) when it starts processing the call.

<14> Section 3.1.4.3: Windows NT, Windows 2000, and Windows XP do not perform this validation.

<15> Section 3.1.4.3: Windows NT and Windows 2000 set OpenQueueDescriptorHandle to hQueue.

<16> Section 3.1.4.4: On Windows Vista and later client operating systems and Windows Server 2003 and later server operating systems, the server does not perform this search.

<17> Section 3.1.4.6: In Windows NT and Windows 2000, MQ_ERROR_INVALID_HANDLE (0xc00e0007) is returned if pQueue or hQueue is NULL

<18> Section 3.1.4.7: All Windows implementations of this method other than Windows NT, Windows 2000 and Windows XP throw an exception instead of returning the mentioned error codes in case of failure. The exception code contains the specific error code.

<19> Section 3.1.4.8: RPC over SPX is supported only by Windows NT and Windows 2000. Windows XP and later client operating systems and Windows Server 2003 and later server operating systems do not support this value, and the MQQP server returns 0x00000000 to indicate failure.

<20> Section 3.1.4.8: RPC over SPX is supported only by Windows NT and Windows 2000. Windows XP and later client operating systems and Windows Server 2003 and later server operating systems do not support this value, and the MQQP server returns 0x00000000 to indicate failure.

<21> Section 3.1.4.9: This method is not implemented by Windows NT or Windows 2000. All other versions of Windows implement this method.

<22> Section 3.1.4.9: Microsoft implementations of MQQP server on Windows set this value to the major version number of the underlying Windows operating system. The major version number is 0x05 for Windows XP or Windows Server 2003 and 0x06 for Windows Vista and later client operating systems and Windows Server 2008 and later server operating systems.

<23> Section 3.1.4.9: Microsoft implementations of MQQP server on Windows set this value to the minor version number of the underlying Windows operating system. The minor version number is 0x01 for Windows XP; 0x02 for Windows Server 2003; 0x00 for Windows Vista or Windows Server 2008; and 0x1 for Windows 7 and later client operating systems and Windows Server 2008 R2 and later server operating systems.

<24> Section 3.1.4.9: Microsoft implementations of MQQP server on Windows set this value to the specific build number of the underlying Windows operating system. The initial build numbers for Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008 are 645, 1020, 1716, 6000, and 6001 respectively. The build number is 6531 or greater if the MQQP server is running on Windows 7 and later client operating systems and Windows Server 2008 R2 and later server operating systems. The build number is updated with each service pack or hot fix release of the operating system.

<25> Section 3.1.4.10: This method is not implemented by Windows NT or Windows 2000. All other versions of Windows implement this method.

<26> Section 3.1.4.10: Windows NT, Windows 2000, and Windows XP do not perform this validation.

<27> Section 3.1.4.11: This method is not implemented by Windows NT or Windows 2000. All other versions of Windows implement this method.

<28> Section 3.2.4.2: Windows NT and Windows 2000 clients do not make a call to RemoteQmGetVersion, and always call RemoteQMStartReceive rather than RemoteQMStartReceive2.

<29> Section 3.2.4.3: Windows NT and Windows 2000 clients do not make a call to RemoteQmGetVersion, and always call RemoteQMStartReceive rather than RemoteQMStartReceive2.

<30> Section 3.2.4.5: Windows NT and Windows 2000 clients do not make a call to RemoteQmGetVersion, and always call RemoteQMStartReceive rather than RemoteQMStartReceive2.

<31> Section 3.2.4.6: Windows NT and Windows 2000 clients do not make a call to RemoteQmGetVersion, and always call RemoteQMStartReceive rather than RemoteQMStartReceive2.