Partager via


Mappage pour une application héritée et un pilote Windows Vista

Important

Cet article contient des informations qui s’appliquent aux systèmes d’exploitation Windows obsolètes.

Cette section explique comment les messages de transfert et le flux de données Windows Vista sont mappés aux messages de transfert hérités et au flux de données lorsqu’une application héritée doit fonctionner avec un pilote Windows Vista.

Transferts de rappel

Ce tableau montre le mappage des messages de transfert de rappel d’un pilote Windows Vista au message envoyé à une application héritée.

Message du pilote Windows Vista Message d’application hérité (après la conversion de la couche de compatibilité)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignoré.
WIA_TRANSFER_MSG_END_OF_STREAM Ignoré. Ce message accompagne toujours un appel à IWiaTransferCallback ::GetNextStream. Pour éviter les messages en double, ce message est implémenté dans l’implémentation GetNextStream à la place.
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER n’est pas envoyé par le pilote).
WIA_TRANSFER_MSG_DEVICE_STATUS Si hrErrorStatus == WIA_STATUS_WARMING_UP, la couche de compatibilité envoie IT_MSG_STATUS avec IT_STATUS_TRANSFER_FROM_DEVICE afin de fournir des status à une application et de donner à une application Windows Vista la possibilité d’annuler le transfert.
WIA_TRANSFER_MSG_NEW_PAGE Ignoré. Ne doit jamais être envoyé par un pilote Windows Vista dans ce cas, car nous faisons appel au pilote Windows Vista avec TYMED_FILE.
IWiaTransferCallback ::GetNextStream Première page : IT_MSG_DATA_HEADER

Pages suivantes : IT_MSG_NEW_PAGE
IStream ::Write IT_MSG_DATA

Transferts de fichiers

Ce tableau montre le mappage des messages de transfert de fichiers d’un pilote Windows Vista au message envoyé à une application héritée.

Message du pilote Windows Vista Message d’application hérité (après la conversion de la couche de compatibilité)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignoré.
WIA_TRANSFER_MSG_END_OF_STREAM Ignoré. Ce message accompagne toujours un appel à IWiaTransferCallback ::GetNextStream. Pour éviter les messages en double, ce message est implémenté dans l’implémentation GetNextStream à la place.
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER n’est pas envoyé par le pilote).
WIA_TRANSFER_MSG_DEVICE_STATUS Si hrErrorStatus == WIA_STATUS_WARMING_UP, IT_MSG_STATUS est envoyé avec IT_STATUS_TRANSFER_FROM_DEVICE afin de fournir des status à une application et de donner à une application Windows Vista la possibilité d’annuler le transfert.
WIA_TRANSFER_MSG_NEW_PAGE Ce comportement est quelque peu différent d’un transfert de fichiers multipage aujourd’hui, car wiasWritePageBufToFile n’envoie jamais IT_MSG_NEW_PAGE.
IWiaTransferCallback ::GetNextStream Première page : IT_MSG_FILE_PREVIEW_DATA_HEADER

Pages suivantes : Erreur (le WIA_ERROR_GENERAL_ERROR est repassé au pilote). IWiaTransferCallback ::GetNextStream ne doit être appelé qu’une seule fois, car vous ne pouvez transférer qu’une seule page avec TYMED_FILE et pendant un transfert TYMED_MULTIPAGE_FILE, le pilote Windows Vista ne doit appeler GetNextStream qu’une seule fois, car toutes les pages doivent être envoyées dans le même flux.
IStream ::Write Aucun message envoyé. Dans le cas de transferts de fichiers, la couche de compatibilité ne convertit aucune des données que le pilote (filtre de traitement d’image) écrit en messages de transfert hérités. Au lieu de cela, les données sont simplement écrites dans un fichier qui est retourné à l’utilisateur à la fin du transfert.

Pour plus d’informations sur les messages de transfert hérités, consultez l’interface IWiaMiniDrvCallBack.

Pour plus d’informations sur les constantes TYMED, consultez Présentation de TYMED.