2.2.1 HostAnnouncement Browser Frame

A server (including nonbrowser servers) sends a HostAnnouncement browser frame to advertise its presence and to specify the types of resources and services it supports. It MUST be a response to an AnnouncementRequest browser frame, as specified in section 2.2.2, or to the expiration of the HostAnnouncement timer, as specified in section 3.2.2.

A server MUST issue a HostAnnouncement in response to a received AnnouncementRequest browser frame (as defined in section 2.2.2) or as a response to the expiration of the announcement timer, as specified in section 3.2.6. Failure to do so results in this server's resources being absent in the resource enumeration to browser clients.

A server SHOULD send a HostAnnouncement to the local master browser using the NetBIOS unique name <machine group>[0x1D] and mailslot \MAILSLOT\LANMAN.<9>

The format of the HostAnnouncement frame MUST be as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

0x01

UpdateCount

Periodicity

...

ServerName (16 bytes)

...

...

...

OSVersionMajor

OSVersionMinor

ServerType

BrowserVersionMajor

BrowserVersionMinor

Signature

Comment (variable)

...

0x01 (1 byte): The 8-bit operation code (opcode) that identifies this structure as a HostAnnouncement frame. This opcode MUST have a value of 0x01.

UpdateCount (1 byte): An unsigned 8-bit integer that MUST be sent as 0x00 and MUST be ignored on receipt.

Periodicity (4 bytes): An unsigned 32-bit integer that MUST be the announcement frequency of the server in milliseconds. It MUST be set to the NewHostAnnouncement timer value of the server in milliseconds, as specified in section 3.2.6.<10>

ServerName (16 bytes): MUST be a null-terminated ASCII server name with a length of 16 bytes, including the null terminator. If the name is fewer than 16 bytes in length including the terminator, then the remainder of the 16 bytes must be ignored.

OSVersionMajor (1 byte): An unsigned 8-bit integer that MUST indicate the major version number of the operating system that the server is running. This is entirely informational and does not have any significance for the browsing protocol.<11>

OSVersionMinor (1 byte): An unsigned 8-bit integer that MUST indicate the minor version number of the operating system that the server is running. This is entirely informational and does not have any significance for the browsing protocol.<12>

ServerType (4 bytes): An unsigned 32-bit integer that MUST be the type of the server, as specified in [MS-RAP] section 2.5.5.2.1.

BrowserVersionMajor (1 byte): A signed 8-bit integer that MUST indicate the major version number of the CIFS Browser Protocol that the server is running. Announcing servers MUST set this to 0x0F. This is entirely informational and does not have any significance for the browsing protocol. This field MUST NOT be validated in any way on receive.

BrowserVersionMinor (1 byte): An unsigned 8-bit integer MUST indicate the minor version number of the CIFS Browser Protocol that the server is running. Announcing servers MUST set this to 0x01. This is entirely informational and does not have any significance for the browsing protocol. This field MUST NOT be validated in any way on receive.

Signature (2 bytes): An unsigned 16-bit integer that MUST be set to 0xAA55.

Comment (variable): A null-terminated ASCII string that MUST be less than or equal to 43 bytes in length including the null terminator. This is a purely informational comment associated with the server and has no effect on the operation of the CIFS Browser Protocol.<13>