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.
Esta página descreve as alterações feitas no IddCx 1.7. Um único binário de IDD (driver de exibição indireto) compilado com o IddCx 1.7 pode ser executado no Windows 10, versão 1803 e superior, usando verificações em tempo de execução para verificar se as modificações na DDI no IddCx 1.7 estão disponíveis nesse sistema. Consulte Como criar um driver WDF para várias versões do Windows para obter mais informações.
As alterações do IddCx 1.7 se enquadram nas seguintes categorias:
- A versão IddCxGetVersion foi atualizada (console e remoto). Consulte as versões do IddCx para obter uma lista completa de informações de versão relacionadas ao IddCx.
- Uma DDI de cursor de mouse aprimorada foi adicionada (disponível para console e acesso remoto, mas útil apenas pelo remoto).
- O sinalizador do adaptador IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS foi preterido (console e remoto).
Versão atualizada do IddCxGetVersion
A versão do IddCx retornada por IddCxGetVersion no Windows Server 2022 foi atualizada para IDDCX_VERSION_IRON (0x1700).
Cursor de mouse atualizado para drivers remotos
IDDs remotas em versões IddCx anteriores à 1.7 recebem apenas atualizações de mouse para movimentos de cursor procedurais. Um movimento de cursor procedimental é uma alteração de posição causada por uma chamada de API de um aplicativo ou do sistema operacional no servidor, e não pela entrada do mouse injetada na sessão remota do cliente. Isso leva a alguns problemas exclusivos de sessões remotas. Por exemplo:
- No IddCx 1.6 e anterior, o driver remoto não pode informar se uma chamada à API definiu uma posição do mouse para a mesma posição duas vezes.
- Uma alteração na forma ou visibilidade do cursor não pode ser disparada sem uma posição válida. Isso não é um problema para IDDs de console. Para drivers remotos, no entanto, quando não houver nenhuma alteração de posição processual válida, a DDI teria que fornecer um valor de posição que faria com que o cursor saltasse no cliente.
Para resolver esses problemas, as seguintes alterações foram feitas a partir do IddCx 1.7.
IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION sinalizador foi adicionado
O sinalizador de adaptador IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION foi adicionado ao IDDCX_ADAPTER_FLAGS para permitir que os drivers remotos recebam todas as atualizações de posição do mouse. Esse flag permite que um driver remoto indique, com base no adaptador, que deseja receber todas as alterações de posição do cursor e não apenas movimentos programados. Esse sinalizador só é válido quando combinado com IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER. IddCxAdapterInitAsync falhará se IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION estiver definido sem IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER.
IddCxMonitorQueryHardwareCursor2 DDI foi adicionado para a posição do cursor
A DDI IddCxMonitorQueryHardwareCursor2 fornece informações de posição do cursor. Essa DDI retorna uma estrutura IDARG_OUT_QUERY_HWCURSOR2 . Os drivers remotos e de console podem chamar essa DDI, mas as informações na estrutura IDARG_OUT_QUERY_HWCURSOR2 não são muito relevantes para drivers de console.
A estrutura IDARG_OUT_QUERY_HWCURSOR2 retorna as seguintes informações adicionais do cursor:
Uma ID de posição (PositionId)
Antes do IddCx 1.7, a DDI do cursor utiliza um ID de formato para que o driver possa saber se o formato foi alterado desde a última atualização. A partir do IddCx 1.7, uma ID de posição foi adicionada. O valor da ID da posição será alterado se uma nova posição do cursor tiver sido relatada, mesmo que as coordenadas X e Y da nova posição sejam iguais às antigas.
Um sinalizador válido de posição (PositionValid)
PositionValid indica ao driver se a posição do cursor na estrutura de informações do cursor é válida. Esse sinalizador válido abrange os campos X, Y e PositionId . Se esse sinalizador não estiver definido, os campos X, Y e PositionId não poderão ser usados.
Campo IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS obsoleto (console e remoto)
Devido a alterações na forma como a área de trabalho é renderizada, a partir do IddCx 1.7, as regiões de movimentação não serão mais fornecidas no momento da aquisição do quadro. Em vez disso, a lista de retões sujas fornecida no momento da aquisição contém todas as regiões alteradas da imagem e IDDCX_METADATA. MoveRegionCount sempre será zero.
Os drivers ainda podem definir o sinalizador IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS para o IddCx 1.7 e superior, mas isso não terá efeito. Se um driver for projetado para ser executado em sistemas anteriores ao IddCx 1.7 e definir o sinalizador, o driver precisa ter a lógica para processar as movimentações; caso contrário, os usuários verão problemas visuais ao executar em sistemas anteriores ao IddCx 1.7.