Compartilhar via


Consultando o conector de TV e o hardware de proteção de cópia

Um driver de miniporta de vídeo para um adaptador que tem um conector de TV deve processar a solicitação IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS em sua função HwVidStartIO . Quando a solicitação IOCTL é IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS, o membro InputBuffer da estrutura VIDEO_REQUEST_PACKET aponta para uma estrutura VIDEOPARAMETERS . O membro dwCommand dessa estrutura VIDEOPARAMETERS especifica se o driver de miniporto deve fornecer informações sobre o conector de TV (VP_COMMAND_GET) ou aplicar as configurações especificadas ao conector de TV (VP_COMMAND_SET).

Quando o membro dwCommand da estrutura VIDEOPARAMETERS é VP_COMMAND_GET, o driver de miniporto deve fazer o seguinte:

  • Verifique o membro Guid da estrutura VIDEOPARAMETERS.

  • Para cada funcionalidade compatível com o conector de TV, defina o sinalizador correspondente no membro dwFlags da estrutura VIDEOPARAMETERS.

  • Para cada sinalizador definido no membro dwFlags , atribua valores aos membros correspondentes da estrutura VIDEOPARAMETERS para indicar os recursos e as configurações atuais associados a esse sinalizador. Consulte a página de referência VIDEOPARAMETERS para obter uma lista de membros da estrutura que correspondem a um determinado sinalizador.

O membro dwMode da estrutura VIDEOPARAMETERS especifica se a saída da TV é otimizada para reprodução de vídeo ou para exibir a área de trabalho do Windows. Um valor de VIDEO_MODE_TV_PLAYBACK especifica que a saída de TV é otimizada para reprodução de vídeo (ou seja, o filtro de cintilação está desabilitado e o overscan está habilitado). Um valor de VIDEO_MODE_WIN_GRAPHICS especifica que a saída de TV é otimizada para elementos gráficos do Windows (ou seja, o filtro máximo de cintilação está habilitado e o overscan está desabilitado).

Em resposta a VP_COMMAND_GET, o driver de miniporto deve definir o sinalizador VP_FLAGS_TV_MODE em dwFlags e deve definir o bit VP_MODE_WIN_GRAPHICS em dwAvailableModes. Definir o bit VP_MODE_TV_PLAYBACK em dwAvailableModes é opcional. Além disso, o driver de miniporto deve definir o sinalizador VP_FLAGS_MAX_UNSCALED em dwFlags e deve atribuir valores aos membros correspondentes da estrutura VIDEOPARAMETERS.

Em resposta a VP_COMMAND_GET, se a saída de TV estiver desabilitada no momento, o driver de miniporte deverá definir dwMode como 0, definir dwTVStandard como VP_STANDARD_WIN_VGA e definir dwAvailableTVStandard como VP_STANDARD_WIN_VGA.

Exemplo 1: um adaptador dá suporte à saída de TV, que está desabilitada no momento. O driver de miniporta deve fazer o seguinte em resposta a VP_COMMAND_GET:

  • Em dwFlags, defina VP_FLAGS_TV_MODE, VP_FLAGS_TV_STANDARD e todos os outros sinalizadores que representam recursos compatíveis com o conector de TV.

  • Defina dwMode como 0.

  • Em dwAvailableModes, defina VP_MODE_WIN_GRAPHICS. Se o hardware der suporte a VP_MODE_TV_PLAYBACK, defina esse bit também.

  • Defina dwTVStandard como VP_TV_STANDARD_WIN_VGA.

  • No dwAvailableTVStandard, defina todos os bits que representam os padrões de TV compatíveis com o conector de TV.

  • Para todos os sinalizadores definidos em dwFlags (exceto VP_FLAGS_TV_MODE e VP_FLAGS_TV_STANDARD, que já foram discutidos), atribua valores aos membros correspondentes da estrutura VIDEOPARAMETERS.

Exemplo 2: para habilitar a saída de TV, o chamador (não o driver de miniporto) deve fazer o seguinte:

  • Em dwFlags, defina VP_FLAGS_TV_MODE e VP_FLAGS_TV_STANDARD. Limpe todos os outros sinalizadores.

  • Defina dwMode como VP_MODE_WIN_GRAPHICS ou VP_MODE_TV_PLAYBACK. Não defina os dois bits.

  • Defina dwTvStandard como o padrão desejado (por exemplo, VP_TV_STANDARD_NTSC_M). Não defina outros bits em dwTvStandard.

Exemplo 3: para desabilitar a saída de TV, o chamador (não o driver de miniporto) deve fazer o seguinte:

  • Em dwFlags, defina VP_FLAGS_TV_MODE e VP_FLAGS_TV_STANDARD. Limpe todos os outros sinalizadores.

  • Defina dwMode como 0.

  • Em dwTvStandard, defina VP_TV_STANDARD_WIN_VGA. Limpe todos os outros bits em dwTvStandard.