Partager via


Méthode IBackgroundCopyCallback ::JobTransferred (bits.h)

BITS appelle votre implémentation de la méthode JobTransferred lorsque tous les fichiers du travail ont été transférés avec succès. Pour BG_JOB_TYPE_UPLOAD_REPLY travaux, BITS appelle la méthode JobTransferred une fois que le fichier de chargement a été transféré vers le serveur et que la réponse a été transférée vers le client.

Syntaxe

HRESULT JobTransferred(
  [in] IBackgroundCopyJob *pJob
);

Paramètres

[in] pJob

Contient des informations relatives au travail, telles que l’heure à laquelle le travail s’est terminé, le nombre d’octets transférés et le nombre de fichiers transférés. Ne relâchez pas pJob ; BITS libère l’interface lorsque la méthode retourne.

Valeur retournée

Cette méthode doit retourner S_OK ; sinon, BITS continue d’appeler cette méthode jusqu’à ce que S_OK soit retourné. Pour des raisons de performances, vous devez limiter le nombre de fois où vous retournez une valeur autre que S_OK à quelques reprises. En guise d’alternative au retour d’un code d’erreur, envisagez de toujours retourner S_OK et de gérer l’erreur en interne. L’intervalle auquel cette méthode est appelée est arbitraire.

Notez que si cette méthode échoue et que vous avez appelé la méthode IBackgroundCopyJob2 ::SetNotifyCmdLine , la ligne de commande est exécutée et cette méthode n’est plus appelée.

Remarques

En règle générale, votre implémentation doit appeler la méthode IBackgroundCopyJob ::Complete pour reconnaître que BITS a correctement transféré les fichiers. Les fichiers de téléchargement et le fichier de réponse ne sont pas disponibles sur le client tant que vous n’appelez pas la méthode Complete .

Si vous n’appelez pas la méthode Complete ou la méthode IBackgroundCopyJob ::Cancel dans les 90 jours (par défaut JobInactivityTimeout stratégie de groupe), BITS annule le travail et supprime les fichiers téléchargés et le fichier de réponse ; l’annulation du travail n’affecte pas les fichiers qui ont été correctement chargés.

Si vous souhaitez récupérer les données de réponse dans votre rappel, interrogez pJob pour l’interface IBackgroundCopyJob2 et appelez sa méthode GetReplyData . Pour récupérer le nom du fichier qui contient les données de réponse, appelez la méthode GetReplyFileName .

BITS ne garantit pas l’intégrité des fichiers transférés contre les intrusions tierces. Les clients peuvent implémenter des vérifications d’intégrité pour valider les fichiers transférés avant d’appeler la méthode Complete . Pour obtenir une notification lors du transfert d’un fichier, implémentez la méthode IBackgroundCopyCallback2 ::FileTransferred . Dans le rappel, appelez la méthode IBackgroundCopyFile3 ::GetTemporaryName pour obtenir le nom du fichier temporaire qui contient le contenu téléchargé. Validez le contenu, puis appelez la méthode IBackgroundCopyFile3 ::SetValidationState pour indiquer si le contenu est valide. Si le contenu n’est pas valide et que BITS a téléchargé le fichier à partir du serveur d’origine, le travail passe à l’état d’erreur. Si le travail a été téléchargé à partir d’un homologue, BITS télécharge le fichier à partir du serveur d’origine.

Note BITS prend en charge jusqu’à quatre notifications simultanées par utilisateur. Si une ou plusieurs applications bloquent le retour des quatre notifications d’un utilisateur, une application s’exécutant en tant qu’utilisateur ne recevra pas de notifications tant qu’une ou plusieurs notifications de blocage ne seront pas retournées. Pour réduire le risque que votre rappel bloque d’autres notifications, gardez votre implémentation courte.
 

Exemples

Consultez l’exemple de code de l’interface IBackgroundCopyCallback .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
Serveur minimal pris en charge Windows Server 2003
Plateforme cible Windows
En-tête bits.h

Voir aussi

IBackgroundCopyCallback

IBackgroundCopyJob

IBackgroundCopyJob ::Cancel

IBackgroundCopyJob ::Complete