Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para minimizar as alterações nos drivers que foram desenvolvidas antes do Windows Vista, os drivers não precisam implementar nenhuma nova interface para dar suporte à transferência de dados IStream . Em vez disso, uma nova interface foi exposta por meio da interface IWiaMiniDrvCallBack. Os drivers podem chamar IWiaMiniDrvCallBack::QueryInterface para a nova função de retorno de chamada IWiaTransfer , que lhes dará acesso aos fluxos de dados e notificações de status. A interface IWiaTransfer é descrita na documentação do SDK do Microsoft Windows.
O código de transferência de dados dentro do driver agora está mais simples porque todas as transferências são tratadas uniformemente, sem a lógica de ramificação para transferência de arquivos ou memória.
Os drivers que não dão suporte ao modelo de transferência IStream normalmente executam as seguintes etapas:
Verifique os sinalizadores para determinar se a solicitação é para um upload ou um download.
Adquira a interface IWiaMiniDrvCallBack.
Receba um fluxo de destino da função de retorno de chamada.
Execute um loop de transferência de dados:
- Receba dados do dispositivo.
- Gravar dados no fluxo.
No entanto, para drivers que implementam o novo modelo de transferência IStream, o serviço WIA não chamará IWiaMiniDrv::drvWriteItemProperties porque a aquisição de pastas é suportada.
Na aquisição de pasta, uma única solicitação de transferência aplica-se ao item pai, mas as propriedades reais do item estão em cada um dos itens filho que estão sendo transferidos. O método IWiaMiniDrv::d rvWriteItemProperties não é chamado para cada item filho, portanto, esse método não pode ser usado para programar as configurações do dispositivo. Para drivers que dão suporte a transferências de dados IStream, o serviço WIA chama IWiaMiniDrv::drvAcquireItemData.
Nota Essa alteração afeta apenas os drivers que dão suporte às novas transferências de dados. Os drivers herdados, que não dão suporte a transferências de dados IStream , não são afetados; o serviço WIA continuará a chamar o método IWiaMiniDrv::d rvWriteItemProperties para eles.
Em aquisições de pastas em que o driver faz várias chamadas para IWiaTransferCallback::GetNextStream (que é descrito na documentação do SDK do Microsoft Windows), o driver pode ter apenas um fluxo ativo por vez.
O driver deve chamar apenas os métodos IStream::Write, IStream::Seek e IStream::SetSize do fluxo (que são descritos na documentação do SDK do Windows) durante uma operação de download. Essa restrição facilita a redação do filtro. O driver não deve esperar que o fluxo de destino implemente outros métodos.
Quando a propriedade WIA_DPS_PAGE_SIZE é definida como WIA_PAGE_AUTO (ou seja, a detecção automática de tamanho de página está habilitada), o driver deve fornecer informações de dimensão precisas sobre a imagem somente depois de concluir a transferência dos dados da imagem. Para transferências baseadas em fluxo, o driver deve atualizar as dimensões de imagem no cabeçalho da imagem no final da transferência. No início de uma nova sessão, o valor da propriedade WIA_DPS_PAGE_SIZE sempre deve ser definido como um valor diferente de WIA_PAGE_AUTO.