3.2.5.6 MoveNotificationTimer Expiration

When the timer expires, this expiration indicates to the client to check its tables to determine whether it is necessary to send file move notifications to the server by using a MOVE_NOTIFICATION message.

However, if the FileTableQuotaExceeded flag is set, the client MUST NOT perform any further processing defined in this section.

If the MoveNotificationVolumeCursor is not set, the client MUST set it to reference the first entry in the ClientVolumeTable.

Starting with the volume indicated by the MoveNotificationVolumeCursor, the client MUST find the first volume from the ClientVolumeTable that has a MoveNotificationList with a MoveNotificationCursor set, and whose VolumeState is set to Owned. If there is no such volume, then the client MUST clear the MoveNotificationVolumeCursor, and MUST NOT perform any further processing defined in this section. If there is such a volume, the MoveNotificationVolumeCursor MUST be updated to reference that entry in the ClientVolumeTable.

The client MUST send a MOVE_NOTIFICATION message to the server, using a LnkSvrMessage request, as defined in section 3.2.4.2. In this request, the MessageType of the TRKSVR_MESSAGE_UNION parameter (see section 2.2.12) MUST be set to MOVE_NOTIFICATION, and the Priority field MUST be set to 0. The client MUST also specify the following fields in the TRKSVR_CALL_MOVE_NOTIFICATION structure used in this request:

  • seq: This field MUST be set to the value of the VolumeSequenceNumber from the VolumeInformation for the volume identified by the MoveNotificationVolumeCursor.

  • fForceSeqNumber: This field MUST be set to zero, unless otherwise specified in section 3.2.4.2.

  • pvolid: The field MUST be set to VolumeID from the VolumeInformation for the volume identified by the MoveNotificationVolumeCursor.

  • rgobjidCurrent: This field MUST be set to a list of up to 32 ObjectIDs taken from the first entries of the MoveNotificationList.

  • rgdroidBirth: This field MUST be set to a list of up to 32 FileIDs, taken from the entries of the MoveNotificationList that correspond to the values in the rgobjidCurrent field.

  • rgdroidNew: This field MUST be set to a list of up to 32 FileLocations taken from the entries of the MoveNotificationList that correspond to the values in the rgobjidCurrent and rgdroidBirth fields.

  • cProcessed: This field MUST be set to zero.

See section 3.1.4.2 for information about the server processing of this message. See section 3.2.4.2 for information about the client's completion of this request.