3.1.4.10 Receiving NetrMessageNameGetInfo

On receipt of this message, the message server SHOULD check an internal ACL to determine whether the message client is authorized to access the name list. If the ACL authorization check is performed, and the message client is not authorized to perform the operation, the message server MUST return ERROR_ACCESS_DENIED.<17>

Before using MsgName, the message server MUST convert MsgName to a valid NetBIOS name, as specified in [RFC1001] section 5.2 and [RFC1002] section 4.1. If MsgName is not valid, the message server MUST return ERROR_INVALID_NAME. The process for conversion is as follows:

  • Server MUST convert MsgName to an ASCII string.

  • Server MUST truncate MsgName to 15 characters if MsgName is longer than 15 characters.

  • Server MUST pad MsgName to 15 characters with the ASCII space character if MsgName is shorter than 15 characters.

  • Server MUST remove the null terminator for MsgName, if present.

  • Server MUST append the NetBIOS suffix value 0x03 to the converted MsgName.

Then the message server MUST check to see if MsgName is in the name table on any LANA. If MsgName is not in the name table on any LANA, the message server MUST return NERR_NotLocalName.

Next, the message server MUST validate that the level passed in InfoStruct is either 0 or 1. If Level is any other value, the message server MUST return ERROR_INVALID_LEVEL.

The message server MUST allocate memory for a structure to return information on the name. If the message server fails to allocate a buffer, the message server MUST return ERROR_NOT_ENOUGH_MEMORY.

The type of structure returned MUST be based on the value of Level; fields other than names in the structure MUST be populated as specified in section 2.2.2. The message server MUST return all names as Unicode UTF-16 strings.

If the structure is successfully allocated and populated, the message server MUST return NERR_Success and return a pointer to the structure as InfoStruct.