3.1.4.12 Receiving NetrMessageNameDel

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.<19>

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. 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.

If conversion of MsgName to a NetBIOS name fails, the message server MUST return ERROR_INVALID_NAME.

If MsgName is the name of the computer, the message server MUST return NERR_DelComputerName.<20>

The message server MUST check the name table on each LANA to verify whether MsgName is in the name table on that LANA. If MsgName is not in the name table on any LANA, the message server MUST return NERR_NotLocalName.

The message server MUST iterate through each LANA and attempt to delete MsgName from the name table for that LANA. If MsgName is locked (for example, currently being added) in the name table on any LANA and cannot be deleted, the message server MUST return NERR_NameInUse.

If MsgName is not locked in the name table for any LANA, and the message server attempted to delete MsgName from that name table, the message server MUST check the name table after the deletion to see if MsgName still exists. If the name still exists, the message server MUST return NERR_IncompleteDel.

If the deletion is successful, the message server MUST return NERR_Success.