Condividi tramite


Mapping per un'applicazione legacy e un driver Windows Vista

Importante

Questo articolo contiene informazioni applicabili ai sistemi operativi Windows obsoleti.

Questa sezione illustra come viene eseguito il mapping dei messaggi e del flusso di dati di trasferimento di Windows Vista a messaggi di trasferimento legacy e flusso di dati quando un'applicazione legacy deve usare un driver di Windows Vista.

Trasferimenti di callback

Questa tabella mostra il mapping dei messaggi di trasferimento di callback di un driver di Windows Vista al messaggio inviato a un'applicazione legacy.

Messaggio del driver di Windows Vista Messaggio dell'applicazione legacy (dopo la conversione del livello di compatibilità)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignorato.
WIA_TRANSFER_MSG_END_OF_STREAM Ignorato. Questo messaggio va sempre insieme a una chiamata a IWiaTransferCallback::GetNextStream. Per evitare messaggi duplicati, questo messaggio viene implementato nell'implementazione GetNextStream .
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER non viene inviato dal driver).
WIA_TRANSFER_MSG_DEVICE_STATUS Se hrErrorStatus == WIA_STATUS_WARMING_UP, il livello di compatibilità invia IT_MSG_STATUS con IT_STATUS_TRANSFER_FROM_DEVICE per fornire uno stato a un'applicazione, nonché concedere a un'applicazione Windows Vista la possibilità di annullare il trasferimento.
WIA_TRANSFER_MSG_NEW_PAGE Ignorato. Non deve mai essere inviato da un driver Windows Vista in questo caso, poiché viene chiamato nel driver di Windows Vista con TYMED_FILE.
IWiaTransferCallback::GetNextStream Prima pagina: IT_MSG_DATA_HEADER

Pagine successive: IT_MSG_NEW_PAGE
IStream::Write IT_MSG_DATA

Trasferimenti di file

Questa tabella mostra il mapping dei messaggi di trasferimento di file di un driver Windows Vista al messaggio inviato a un'applicazione legacy.

Messaggio del driver di Windows Vista Messaggio dell'applicazione legacy (dopo la conversione del livello di compatibilità)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignorato.
WIA_TRANSFER_MSG_END_OF_STREAM Ignorato. Questo messaggio va sempre insieme a una chiamata a IWiaTransferCallback::GetNextStream. Per evitare messaggi duplicati, questo messaggio viene implementato nell'implementazione GetNextStream .
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER non viene inviato dal driver).
WIA_TRANSFER_MSG_DEVICE_STATUS Se hrErrorStatus == WIA_STATUS_WARMING_UP, IT_MSG_STATUS viene inviato con IT_STATUS_TRANSFER_FROM_DEVICE per fornire uno stato a un'applicazione e fornire a un'applicazione Windows Vista la possibilità di annullare il trasferimento.
WIA_TRANSFER_MSG_NEW_PAGE Questo comportamento è leggermente diverso da un trasferimento di file a più pagine, perché wiasWritePageBufToFile non invia mai IT_MSG_NEW_PAGE.
IWiaTransferCallback::GetNextStream Prima pagina: IT_MSG_FILE_PREVIEW_DATA_HEADER

Pagine successive: errore (il WIA_ERROR_GENERAL_ERROR viene passato di nuovo al driver). IWiaTransferCallback::GetNextStream deve essere chiamato una sola volta perché è possibile trasferire una sola pagina con TYMED_FILE e durante un trasferimento TYMED_MULTIPAGE_FILE, il driver di Windows Vista deve chiamare GetNextStream una sola volta perché tutte le pagine devono entrare nello stesso flusso.
IStream::Write Nessun messaggio inviato. In caso di trasferimenti di file, il livello di compatibilità non converte i dati che il driver (filtro di elaborazione immagini) scrive nei messaggi di trasferimento legacy. Invece, i dati vengono semplicemente scritti in un file restituito all'utente alla fine del trasferimento.

Per altre informazioni sui messaggi di trasferimento legacy, vedere interfaccia IWiaMiniDrvCallBack.

Per altre informazioni sulle costanti TYMED, vedere Informazioni su TYMED.