procedure UpdateRepsFrom(
   rf: RepsFrom,
   dsaServer: DSName,
   ulResult: DWORD)

Informative summary of behavior: Using the UpdateRepsFrom procedure, the client updates the repsFrom abstract variable after it applies the response message received from the server. Following are the input parameters for this procedure.

  • rf: The RepsFrom for the server.

  • msgReplyNative: The IDL_DRSGetNCChanges response from the server.

  • dsaServer: The DSName of the nTDSDSA object of the server.

  • ulResult: A Windows error code that indicates whether or not the replicated updates in the response message are applied successfully.

     rfOld: RepsFrom
     currentTime: DSTIME
     nc: DSName
     nc := msgReplyNative.pNC^
     rfOld := select one v from nc!repsFrom where
         (v.uuidDsa = dsaServer!objectGUID)
     if rfOld ≠ null then
       nc!repsFrom := nc!repsFrom - {rfOld} /* remove old entry */
     currentTime := current time on the client
     rf.timeLastAttempt := currentTime
     if (ulResult = 0) then
       rf.consecutiveFailures := 0
       rf.timeLastSuccess := currentTime
       rf.resultLastAttempt := 0
       rf.uuidInvocId := msgReplyNative.uuidInvocIdSrc
       rf.usnVec := msgReplyNative.usnvecTo
       rf.resultLastAttempt := 0
       rf.consecutiveFailures := rf.consecutiveFailures + 1
       rf.resultLastAttempt := ulResult
     nc!repsFrom := nc!repsFrom + {rfNew}