Compartilhar via


Mapeamento para um aplicativo herdado e o driver do Windows Vista

Importante

Este artigo contém informações que se aplicam a sistemas operacionais Windows obsoletos.

Esta seção explica como as mensagens de transferência e o fluxo de dados do Windows Vista são mapeados para o fluxo de dados e mensagens de transferência herdadas quando um aplicativo herdado precisa trabalhar com um driver do Windows Vista.

Transferências de retorno de chamada

Esta tabela mostra o mapeamento das mensagens de transferência de retorno de chamada de um driver do Windows Vista para a mensagem enviada a um aplicativo herdado.

Mensagem do driver do Windows Vista Mensagem de aplicativo herdada (após a conversão da camada de compatibilidade)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignorado.
WIA_TRANSFER_MSG_END_OF_STREAM Ignorado. Essa mensagem sempre acompanha uma chamada para IWiaTransferCallback::GetNextStream. Para evitar mensagens duplicadas, essa mensagem é implementada na implementação GetNextStream .
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER não é enviado pelo driver).
WIA_TRANSFER_MSG_DEVICE_STATUS Se hrErrorStatus == WIA_STATUS_WARMING_UP, a camada de compatibilidade enviará IT_MSG_STATUS com IT_STATUS_TRANSFER_FROM_DEVICE para fornecer alguns status a um aplicativo, além de dar a um aplicativo do Windows Vista a possibilidade de cancelar a transferência.
WIA_TRANSFER_MSG_NEW_PAGE Ignorado. Nunca deve ser enviado por um driver do Windows Vista nesse caso, pois chamamos o driver do Windows Vista com TYMED_FILE.
IWiaTransferCallback::GetNextStream Primeira página: IT_MSG_DATA_HEADER

Páginas subsequentes: IT_MSG_NEW_PAGE
IStream::Write IT_MSG_DATA

Transferências de Arquivo

Esta tabela mostra o mapeamento das mensagens de transferência de arquivo de um driver do Windows Vista para a mensagem enviada a um aplicativo herdado.

Mensagem do driver do Windows Vista Mensagem de aplicativo herdada (após a conversão da camada de compatibilidade)
WIA_TRANSFER_MSG_STATUS IT_MSG_STATUS
WIA_TRANSFER_MSG_ERROR Ignorado.
WIA_TRANSFER_MSG_END_OF_STREAM Ignorado. Essa mensagem sempre acompanha uma chamada para IWiaTransferCallback::GetNextStream. Para evitar mensagens duplicadas, essa mensagem é implementada na implementação GetNextStream .
WIA_TRANSFER_MSG_END_OF_TRANSFER IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER não é enviado pelo driver).
WIA_TRANSFER_MSG_DEVICE_STATUS Se hrErrorStatus == WIA_STATUS_WARMING_UP, IT_MSG_STATUS será enviado com IT_STATUS_TRANSFER_FROM_DEVICE para fornecer alguns status a um aplicativo, além de dar a um aplicativo do Windows Vista a possibilidade de cancelar a transferência.
WIA_TRANSFER_MSG_NEW_PAGE Esse comportamento é um pouco diferente de uma transferência de arquivo de várias páginas hoje porque wiasWritePageBufToFile nunca envia IT_MSG_NEW_PAGE.
IWiaTransferCallback::GetNextStream Primeira página: IT_MSG_FILE_PREVIEW_DATA_HEADER

Páginas subsequentes: erro (o WIA_ERROR_GENERAL_ERROR é passado de volta para o driver). IWiaTransferCallback::GetNextStream só deve ser chamado uma vez porque você só pode transferir uma página com TYMED_FILE e durante uma transferência de TYMED_MULTIPAGE_FILE, o driver do Windows Vista só deve chamar GetNextStream uma vez porque todas as páginas devem ir para o mesmo fluxo.
IStream::Write Nenhuma mensagem enviada. No caso de transferências de arquivo, a camada de compatibilidade não converte nenhum dos dados que o driver (filtro de processamento de imagem) grava em mensagens de transferência herdadas. Em vez disso, os dados são simplesmente gravados em um arquivo que é retornado ao usuário no final da transferência.

Para obter mais informações sobre as mensagens de transferência herdadas, consulte a Interface IWiaMiniDrvCallBack.

Para obter mais informações sobre as constantes TYMED, consulte Noções básicas sobre TYMED.