6 Appendix A: 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 XP 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

  • Windows 10 operating system

  • Windows Server 2016 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.6: Windows supports the Remote Mailslot Protocol.

<2> Section 2.1: The use of NetBIOS over IPX or NetBEUI is deprecated and not used by default. NetBIOS datagrams over TCP/IP (NBT datagrams), as defined in [RFC1001] and [RFC1002], is the default transport used by the Windows implementation of the Remote Mailslot Protocol.

  • When using NBT datagrams the Windows implementation limits the maximum size of a Mailslot write request (including the SMB header, the TRANSACT request, the name of the Mailslot, any padding, and the data to be written) to 512 bytes. The maximum size of the write payload depends on the length of the Mailslot name and any padding added to the request by the client.

    The length of the write payload in bytes is given by:

    432 – ROUND_UP_TO_DWORD (Mailslot name length, excluding the \mailslot\ prefix.)

    The following table shows the relationship:

    Mailslot name length (\mailslot\<N chars>)

    Max Mailslot write size (in bytes)

    1-4 characters

    428

    5-8 characters

    424

    9-12 characters

    420

    13-16 characters

    416

<3> Section 2.2.1: Windows servers set this field to 0.

<4> Section 2.2.1: Windows servers set this field to 0.

<5> Section 2.2.1: Windows servers set this field to 0.

<6> Section 2.2.1: Windows clients set this field to 0x2.

<7> Section 2.2.1: Windows-based servers set the Flags field to 0 when this request is received.

<8> Section 2.2.1: Windows-based servers ignore the Timeout field when the request is received.

<9> Section 2.2.1: Windows-based servers ignore the Priority field when the request is received.

<10> Section 2.2.1: Windows-based servers ignore the Class field when the request is received.

<11> Section 2.2.1: Windows implementations ignore this field.

<12> Section 2.2.1: Windows supports multiple directory levels in the mailslot name and passes such names in the mailslot write operation if the application requests it.

<13> Section 3.1.4.1: The NetBIOS datagram is formatted as described in [RFC1002] sections 4.4.1 and 4.4.2.  For group names, MSG_TYPE is set to 0x11 (DIRECT_GROUP).  For unique names, MSG_TYPE is 0x10 (DIRECT_UNIQUE).  In all cases the Flags will be as follows:

  • M – clear (0x00)

  • F – set (0x01)

  • SNT – local node type. Windows uses a fourth node type referred to as h-node.  This is the default type and has a SNT value of 0x11, which the RFC specifies for use by the NetBIOS Datagram Distribution (NBDD) node.

  • RESERVED – clear (0x00)

For group names, if the name data lists only a single entry for the broadcast address (and the node is not a p-node), a single datagram will be sent to the configured broadcast address.  Otherwise a separate datagram is sent to each address listed. For unique names, a single datagram is sent to the address listed.

As specified in [RFC1001] section 17.3,  if the NBDD cannot distribute a datagram, the end-node has the option of getting the name's owner list from the NetBIOS Datagram Name Server (NBNS) and sending the datagram directly to each of the owners.

<14> Section 3.2.1: There is no enforced limit on the number of entries in the queue.

<15> Section 3.2.1.2: No limit is enforced on the number of entries in the queue.

<16> Section 3.2.4.2: When the queue has no messages, Windows waits for a user-specified timeout interval in milliseconds. If the specified timeout interval is zero, the read returns immediately with a specific failure error code that indicates an empty message queue.

Show: