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.

  • Windows 2000 operating system

  • Windows XP operating system

  • Windows Server 2003 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:  The Messenger Service Remote Protocol has been present in Windows operating system products since before the release of Windows NT 4.0 operating system. In Windows 2000, the RPC over UDP delivery option was introduced. The protocol specified in this document was present through Windows Server 2003. Support for the protocol was disabled by default (but could be enabled by administrator action) for new installations of Windows Server 2003 operating system with Service Pack 1 (SP1) and Windows XP operating system Service Pack 2 (SP2). This protocol was supported only in Windows 2000, Windows XP, and Windows Server 2003.

<2> Section 2.2.3: Windows uses whatever transport is bound to a particular local area network adapter (LANA), and supports all of these transports.

<3> Section 2.2.3.1.1: Windows returns a 32-bit error code in the Status field when an SMB error occurs.

<4> Section 2.2.3.1.1: Windows always converts ASCII CR, LF, CRLF, and LFCR into a single 0x14 character.

<5> Section 2.2.3.2.1: Windows returns a 32-bit error code in the Status field when an SMB error occurs.

<6> Section 2.2.3.3.1: Windows returns a 32-bit error code in the Status field when an SMB error occurs.

<7> Section 2.2.3.3.1: Windows always converts ASCII CR, LF, CRLF, and LFCR into a single 0x14 character.

<8> Section 2.2.3.4.1: Windows returns a 32-bit error code in the Status field when an SMB error occurs.

<9> Section 3.1.1: The Windows implementation supports a table of up to 256 names for each LANA. Windows does not permit the deletion of the computer name from any LANA while the message server is running.

<10> Section 3.1.4.4: Windows XP and Windows Server 2003 both limit the MsgName parameter to 16 characters, including the terminating null character, when calling NetrMessageNameDel(). If the MsgName is longer than 16 characters, the server returns ERROR_INVALID_PARAMETER. Windows 2000 does not check the length of the MsgName parameter when calling NetrMessageNameDel() but reads in only the first 255 characters.

<11> Section 3.1.4.5: Windows XP and Windows Server 2003 both limit the MsgName parameter to 16 characters, including the terminating null character, when calling NetrMessageNameAdd(). If the MsgName is longer than 16 characters, the server returns ERROR_INVALID_PARAMETER. Windows 2000 does not check the length of the MsgName parameter when calling NetrMessageNameAdd() but reads in only the first 255 characters.

<12> Section 3.1.4.6: Windows implementations require that the message client be an administrator or a local user of the machine.

<13> Section 3.1.4.6:  The name table for each LANA on Windows can hold up to 256 entries.

<14> Section 3.1.4.8: Windows implementations require that the message client be an administrator or a local user of the machine.

<15> Section 3.1.4.8: If the message client specifies Level 0, and PrefMaxLen is larger than 11,776 bytes, a Windows 2000 Server operating system message server returns ERROR_SUCCESS.

<16> Section 3.1.4.9: Windows XP and Windows Server 2003 both limit the MsgName parameter to 16 characters, including the terminating null character, when calling NetrMessageNameGetInfo(). If the MsgName is longer than 16 characters, the server returns ERROR_INVALID_PARAMETER. Windows 2000 does not check the length of the MsgName parameter when calling NetrMessageNameGetInfo() but reads in only the first 255 characters.

<17> Section 3.1.4.10: Windows implementations require that the message client be an administrator or a local user of the machine.

<18> Section 3.1.4.11: Windows XP and Windows Server 2003 both limit the MsgName parameter to 16 characters, including the terminating null character, when calling NetrMessageNameDel(). If the MsgName is longer than 16 characters, the server returns ERROR_INVALID_PARAMETER. Windows 2000 does not check the length of the MsgName parameter when calling NetrMessageNameDel() but reads in only the first 255 characters.

<19> Section 3.1.4.12: Windows implementations require that the message client be an administrator or a local user of the machine.

<20> Section 3.1.4.12: If MsgName is the name of the computer, a Windows Server 2003 message server returns ERROR_SUCCESS.

<21> Section 3.2.4.1: hRpcBinding is an interface field, not a wire field, and was implicit rather than explicit in the interface prior to Windows XP. In Windows XP, the interface was changed to add the explicit RPC binding handle. The RPC binding handle is never seen in messages on the network.

<22> Section 3.2.4.1: This error is returned by Windows Vista operating system, Windows Server 2008 operating system, Windows 7 operating system, and Windows Server 2008 R2 operating system, to indicate that that the method is not supported by those versions.

<23> Section 3.2.4.2: Windows-based clients format the name specified in the To parameter as the NetBIOS name of the recipient (with NetBIOS suffix value 0x03) and use that to form the binding handle. For information on how the name can be truncated or padded, see section 3.1.4.1.

<24> Section 3.2.4.3:  When the message server receives a message for a registered recipient name, the message server causes the message to be displayed on the console of the interactive user of the machine. The maximum message length that displays is 4,095 characters.

<25> Section 3.2.4.4: Windows sends messages of up to 128 bytes using SMB_COM_SEND_MESSAGE and uses the multiblock SMB sequence for messages larger than 128 bytes. When a message is more than 128 bytes, Windows breaks the messages into 128-byte segments prior to transmission. Where a behavior is defined as SHOULD, Windows implements that behavior.

The Windows implementation of the message client for the protocols defined in this document rejects messages sent to the recipient name *.

 For recipient names that end in an asterisk, Windows attempts to deliver the message through mailslots.

 For recipient names that do not end in an asterisk, Windows attempts to deliver the message by way of SMB.

 If message delivery over SMB is attempted and fails, Windows attempts to deliver the message by way of a call to NetrSendMessage.

<26> Section 3.2.4.5:  When the message server receives a mailslot message for a registered recipient name, the message server causes the message to be displayed on the console of the interactive user of the machine. The maximum message length that displays is 4,095 characters.

<27> Section 3.2.4.5: When the message server receives an SMB message for a registered recipient name, the message server causes the message to be displayed on the console of the interactive user of the machine. The maximum message length that displays is 4,095 characters.

<28> Section 3.2.4.5:  If the message client is unable to validate the SMB, it returns NERR_NetworkError.