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.