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