Export (0) Print
Expand All

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 released service packs:

  • Windows NT operating system

  • Windows 2000 operating system

  • Windows Server 2003 operating system

  • Windows Vista operating system

  • Windows Server 2008 operating system

  • Windows 7 operating system

  • Windows Server 2008 R2 operating system

  • Windows 8 operating system

  • Windows Server 2012 operating system

  • Windows 8.1 operating system

  • Windows Server 2012 R2 operating system

Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product 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.4: If the originating MSMQ application receives messages from a remote queue through a supporting server, the queue manager on the supporting server uses the MSMQ: Queue Manager to Queue Manager Protocol[MS-MQQP] but does not support the MSMQ: Queue Manager Remote Read Protocol.

<2> Section 1.7: Windows NT, Windows 2000, and Windows XP do not support this protocol.

<3> Section 1.7: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 use Kerberos when the computer is a member of a Windows domain; otherwise, they use NTLM.

<4> Section 2.1: The Windows Server 2003 protocol client uses RPCdynamic endpoints to obtain the initial RPC binding handle. The client calls the R_GetServerPort (Opnum 0) (section 3.1.4.1) method with the initial RPC binding handle and uses the returned value to obtain a new RPC binding handle to be used for all subsequent RPC method calls on the protocol. The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients use RPCdynamic endpoints to obtain the RPC binding handle. This handle is used for all RPC method calls on the protocol. The R_GetServerPort method is not called by the Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients.

<5> Section 2.2.5.2: The ExtensionHeader (section 2.2.5.2) is not supported on Windows Server 2003.

<6> Section 2.2.5.3: The SubqueueHeader (section 2.2.5.3) is not supported on Windows Server 2003.

<7> Section 2.2.5.4: The DeadLetterHeader (section 2.2.5.4) is not supported on Windows Server 2003.

<8> Section 2.2.5.5: The ExtendedAddressHeader (section 2.2.5.5) is not supported on Windows Server 2003.

<9> Section 2.2.8: All Windows clients produce new XACTUOW ([MS-MQMQ] section 2.2.18.1.8) structure values by calling the Windows RPC function UuidCreate.

<10> Section 3.1.2.1: If the registry key HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\RpcCancelTimeout is defined and is set to a nonzero DWORD value, the protocol servers on Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 interpret this value as the RPC Call Timeout value in minutes.

<11> Section 3.1.2.2: The Windows default timeout is 5 * 60 * 1000 milliseconds (5 minutes). This default value can be overridden by setting the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\RpcCancelTimeout to the desired value, in minutes. This value MUST not be set to zero.

<12> Section 3.1.4: Opnums reserved for local use apply to Windows as follows.

Opnum

Description

1

Not used by Windows

<13> Section 3.1.4.1: The Windows Server 2003 protocol client uses RPCdynamic endpoints to obtain the initial RPC binding handle. The client calls the R_GetServerPort (Opnum 0) (section 3.1.4.1) method with the initial RPC binding handle and uses the returned value to obtain a new RPC binding handle to be used for all subsequent RPC method calls on the protocol.

The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients use RPCdynamic endpoints to obtain the RPC binding handle. This handle is used for all RPC method calls on the protocol. The R_GetServerPort method is not called by the Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients.

<14> Section 3.1.4.2: Windows Server 2003 protocol servers limit the number of unique concurrent clients if the following DWORD registry key exists and its value is 0x00000001: HKLM\SYSTEM\CurrentControlSet\Services\LicenseInfo\FilePrint. The maximum number of unique concurrent clients permitted is taken from the DWORD registry key HKLM\System\CurrentControlSet\Services\LicenseInfo\FilePrint\ConcurrentLimit. If the number of existing unique callers is equal to this value, the R_OpenQueue (Opnum 2) (section 3.1.4.2) method throws an RPC exception MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW (0xc00e0067).

Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers do not enforce limits on the number of unique concurrent clients. The pClientId parameter is ignored.

<15> Section 3.1.4.2: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the fNonRoutingServer parameter value based on the registry key HKLM\Software\Windows\MSMQ\Parameters\MachineCache\MQS_Routing.

If this key exists and is set to the DWORD value 0x00000001, the parameter is set to FALSE (0x00000000); otherwise, it is set to TRUE (0x00000001).

<16> Section 3.1.4.2: The Windows Server 2003 protocol client sets the message queuing Major Version to 5. The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuing Major Version to 6.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuing Major Version parameter.

<17> Section 3.1.4.2: The Windows Server 2003 protocol client sets the message queuing Minor Version to 2.

The Windows Vista and Windows Server 2008 protocol clients set the message queuing Minor Version to 0. The Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuing Minor Version to 1.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuing Minor Version parameter.

<18> Section 3.1.4.2: The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuingBuildNumber to a build-specific number.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuingBuildNumber parameter.

<19> Section 3.1.4.2: The Windows Server 2003 protocol server minimum RPCauthentication level is determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if any of the following conditions is true

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

The protocol servers on Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 have their minimum RPCauthentication level determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\AllowNonauthenticatedRpc exists and is set to any DWORD value other than 0x00000000 and any of the following conditions is true:

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

<20> Section 3.1.4.10: R_MoveMessage (Opnum 10) (section 3.1.4.10 ) is not implemented on Windows Server 2003.

<21> Section 3.1.4.11: The R_OpenQueueForMove (Opnum 11) (section 3.1.4.11) method is not implemented on Windows Server 2003.

<22> Section 3.1.4.11: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the fNonRoutingServer parameter value based on the registry key HKLM\Software\Windows\MSMQ\Parameters\MachineCache\MQS_Routing.

If this key exists and is set to the DWORD value 0x00000001, the parameter is set to FALSE (0x00000000); otherwise, it is set to TRUE (0x00000001).

<23> Section 3.1.4.11: The Windows Server 2003 protocol client sets the message queuing Major Version to 5. The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuing Major version to 6.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuing Major Version parameter.

<24> Section 3.1.4.11: The Windows Server 2003 protocol client sets the message queuing Minor Version to 2.

The Windows Vista and Windows Server 2008 protocol clients set the message queuing Minor Version to 0.

The Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuing Minor Version to 1.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuing Minor Version parameter.

<25> Section 3.1.4.11: The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol clients set the message queuingBuildNumber to a build-specific number.

The Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers ignore the message queuingBuildNumber parameter.

<26> Section 3.1.4.11: The Windows Server 2003 protocol server minimum RPCauthentication level is determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if any of the following conditions is true.

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers minimum RPCauthentication level is determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\AllowNonauthenticatedRpc exists and is set to any DWORD value other than 0x00000000 and any of the following conditions is true:

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

<27> Section 3.1.4.12: The R_QMEnlistRemoteTransaction (Opnum 12) (section 3.1.4.12) method is not implemented on Windows Server 2003.

<28> Section 3.1.4.12: A server running Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, or Windows Server 2012 R2 ignores the pQueueFormat parameter.

<29> Section 3.1.4.13: The R_StartTransactionalReceive (Opnum 13) (section 3.1.4.13) method is not implemented on Windows Server 2003.

<30> Section 3.1.4.14: R_SetUserAcknowledgementClass (Opnum 14) (section 3.1.4.14 ) is not implemented on Windows Server 2003.

<31> Section 3.1.4.15: The R_EndTransactionalReceive (Opnum 15) (section 3.1.4.15) method is not implemented on Windows Server 2003.

<32> Section 3.2.4.1: The Windows Server 2003 protocol client uses RPCdynamic endpoints to obtain the initial RPC binding handle. The client calls the R_GetServerPort (Opnum 0) (section 3.1.4.1) method with the initial RPC binding handle and uses the returned value to obtain a new RPC binding handle to be used for all subsequent RPC method calls on the protocol. The Windows Vista and Windows Server 2008 protocol clients use RPCdynamic endpoints to obtain the RPC binding handle. This handle is used for all RPC method calls on the protocol. The R_GetServerPort method is not called by the Windows Vista or Windows Server 2008 client.

<33> Section 3.2.4.1: The Windows Server 2003 protocol client uses RPCdynamic endpoints to obtain the initial RPC binding handle. The client calls the R_GetServerPort (Opnum 0) (section 3.1.4.1) method with the initial RPC binding handle and uses the returned value to obtain a new RPC binding handle to be used for all subsequent RPC method calls on the protocol. The Windows Vista and Windows Server 2008 clients use RPCdynamic endpoints to obtain the RPC binding handle. This handle is used for all RPC method calls on the protocol. The R_GetServerPort method is not called by the Windows Vista or Windows Server 2008 client.

<34> Section 3.2.4.4.1: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients return the message to the message queuing application with an MQ_OK (0x00000000) status even if the call to the R_EndReceive (Opnum 9) (section 3.1.4.9) method fails.

<35> Section 3.2.4.10.1: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients return the message to the message queuing application with an MQ_OK (0x00000000) status even if the call to the R_EndReceive (Opnum 9) (section 3.1.4.9) method fails.

<36> Section 3.2.4.12: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients do not cancel pending requests associated with open cursor handles.

<37> Section 3.2.4.13: Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 clients do not cancel pending requests or close associated cursor handles.

<38> Section 5.1: The minimum RPCauthentication level for Windows Server 2003 protocol server is determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if any of the following conditions is true.

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

The Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 protocol servers minimum RPCauthentication level is determined as follows:

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\AllowNonauthenticatedRpc exists and is set to any DWORD value other than 0x00000000 and any of the following conditions is true.

    • The fWorkgroup parameter is TRUE.

    • The registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerDenyWorkgroupClient is set to the DWORD value 0x00000000 or does not exist.

  • RPC_C_AUTHN_LEVEL_NONE, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\NewRemoteReadServerAllowNoneSecurityClient exists and is set to any DWORD value other than 0x00000000, and the Anonymous Logon account is granted Peek or Receive permissions on the queue being accessed.

  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, if the registry key HKLM\Software\Microsoft\MSMQ\Parameters\security\DebugRpc exists and is set to any DWORD value other than 0x00000000.

  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY otherwise.

 
Show:
© 2014 Microsoft