Mappatura per un'applicazione legacy e un driver Windows Vista

Importante

Questo articolo contiene informazioni applicabili ai sistemi operativi Windows obsoleti.

Questa sezione illustra come i messaggi e il flusso di dati di Windows Vista vengano mappati sui messaggi e flusso di dati di trasferimento legacy quando un'applicazione legacy deve lavorare con un driver Windows Vista.

Trasferimenti di callback

Questa tabella mostra il collegamento tra i messaggi di trasferimento callback di un driver Windows Vista e il messaggio inviato alle applicazioni legacy.

Messaggio del driver windows Vista Messaggio dell'applicazione legacy (dopo la conversione del livello di compatibilità)
Stato Messaggio di Trasferimento WIA 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).
MESSAGGIO_DI_TRASFERIMENTO_WIA_STATO_DEL_DISPOSITIVO 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 dovrebbe mai essere inviato da un driver Windows Vista in questo caso, poiché effettuiamo una chiamata al 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 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_TRASFERIMENTO_MSG_STATO_DISPOSITIVO 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 concedere a un'applicazione Windows Vista la possibilità di annullare il trasferimento.
messaggio_di_trasferimento_nuova_pagina 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 alcun dato 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 l'interfaccia IWiaMiniDrvCallBack.

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