Função VideoPortVerifyAccessRanges (video.h)

A função VideoPortVerifyAccessRanges verifica se outro driver já reivindicou a propriedade dos intervalos de acesso relativos ao barramento especificados e quaisquer outros recursos de hardware especificados na estrutura VIDEO_PORT_CONFIG_INFO . Caso contrário, essa função declara os recursos determinados para o chamador.

Sintaxe

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
                 PVOID               HwDeviceExtension,
                 ULONG               NumAccessRanges,
  [in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);

Parâmetros

HwDeviceExtension

Ponteiro para a extensão de dispositivo do driver de miniport.

NumAccessRanges

Especifica o número de elementos na matriz AccessRanges ou zero.

[in, optional] AccessRanges

Ponteiro para a matriz de intervalos de acesso do driver de miniporto ou NULL. Cada elemento de tipo VIDEO_ACCESS_RANGE nessa matriz especifica um intervalo relativo de barramento de memória do dispositivo, portas de E/S ou endereços de registro para o adaptador.

Retornar valor

VideoPortVerifyAccessRanges retorna um dos seguintes valores:

Código de retorno Descrição
ERROR_INVALID_PARAMETER Ocorreu um erro ou um conflito foi encontrado; ou seja, outro driver já reivindicou um ou mais dos recursos de hardware determinados para seu dispositivo.
NO_ERROR Os AccessRanges determinados são válidos e foram reivindicados para uso pelo chamador.

Comentários

Cada driver de miniporta de vídeo deve chamar VideoPortVerifyAccessRanges ou usar intervalos de acesso retornados por VideoPortGetAccessRanges antes de tentar acessar um adaptador de vídeo durante o processo de inicialização do driver (e do sistema).

VideoPortVerifyAccessRanges só pode ser chamado pela função HwVidFindAdapter de um driver de miniport.

Cada driver de miniporta de vídeo deve definir os intervalos de acesso relativos ao barramento para seu dispositivo, seja como memória alocada estaticamente no arquivo de cabeçalho ou no código do driver ou na pilha. A maioria dos drivers de miniporta configura seus intervalos de acesso a vídeos na pilha, exceto aqueles que usam intervalos de endereços padrão do computador para memória de vídeo, como drivers de miniporto SVGA compatíveis com VGA.

A função HwVidFindAdapter deve tentar obter informações de intervalo de acesso relativo ao barramento chamando VideoPortGetAccessRanges ou verificando o registro por meio de chamadas para VideoPortGetDeviceData ou VideoPortGetRegistryParameters. Se HwVidFindAdapter não puder obter essas informações, o driver de miniport deve ter um conjunto de valores padrão relativos ao barramento para intervalos de acesso.

Se os intervalos de acesso de um driver de miniporta forem configuráveis externamente, o programa de instalação configurará intervalos de acesso para o adaptador no registro. Essa função HwVidFindAdapter de um driver de miniport pode chamar VideoPortGetRegistryParameters com uma função HwVidQueryNamedValueCallback fornecida pelo driver miniport que processa informações recuperadas do registro.

HwVidFindAdapter não deve passar nenhum endereço de intervalo de acesso para VideoPortGetDeviceBase , a menos que chame VideoPortVerifyAccessRanges ou VideoPortGetAccessRanges primeiro e a respectiva função retorne NO_ERROR.

VideoPortVerifyAccessRanges poderá ser chamado novamente se a especificação ou o valor de AccessRanges inicial no VIDEO_PORT_CONFIG_INFO, como um vetor de interrupção, fizer com que ele retorne um ERROR_XXX indicando que outro driver já reivindicou os recursos.

Se VideoPortVerifyAccessRanges retornar NO_ERROR, uma chamada subsequente para o mesmo adaptador substituirá a declaração do driver de miniporto sobre recursos para esse adaptador no registro.

Observe que um driver de miniporto não pode se comunicar com seu adaptador de vídeo, exceto usando endereços mapeados retornados por VideoPortGetDeviceBase com as funções VideoPortRead/WriteXxx .

Se a função HwVidFindAdapter reivindicar intervalos de acesso relativos ao barramento e, possivelmente, outros recursos de hardware para um adaptador, mas determinar que ele não dá suporte ao adaptador, o driver de miniporto deverá renunciar às suas declarações sobre recursos de hardware no registro chamando VideoPortVerifyAccessRanges ou VideoPortGetAccessRanges com NumAccessRanges definido como zero e AccessRanges definido como NULL.

Para abrir mão de declarações em um subconjunto de intervalos de acesso reivindicados que o driver de miniporto não está mais usando, faça o seguinte:

  1. Modifique a especificação AccessRanges para o adaptador para que cada elemento que descreva um intervalo a ser liberado ainda tenha RangeStart definido como a base relativa do barramento de um intervalo reivindicado, mas RangeLength seja redefinido como zero.
  2. Chame VideoPortVerifyAccessRanges com essa matriz AccessRanges modificada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho video.h (incluir Video.h)
Biblioteca Videoprt.lib
DLL Videoprt.sys
IRQL PASSIVE_LEVEL

Confira também

HwVidFindAdapter

HwVidQueryDeviceCallback

HwVidQueryNamedValueCallback

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetRegistryParameters