Share via


PMINIPORT_QUERY_DEVICE_ROUTINE função de retorno de chamada (video.h)

HwVidQueryDeviceCallback usa os dados de configuração especificados para configurar seu adaptador e, possivelmente, para preencher as informações de configuração ausentes na estrutura VIDEO_PORT_CONFIG_INFO .

Sintaxe

PMINIPORT_QUERY_DEVICE_ROUTINE PminiportQueryDeviceRoutine;

VP_STATUS PminiportQueryDeviceRoutine(
  PVOID HwDeviceExtension,
  PVOID Context,
  VIDEO_DEVICE_DATA_TYPE DeviceDataType,
  PVOID Identifier,
  ULONG IdentiferLength,
  PVOID ConfigurationData,
  ULONG ConfigurationDataLength,
  PVOID ComponentInformation,
  ULONG ComponentInformationLength
)
{...}

Parâmetros

HwDeviceExtension

Ponteiro para a área de armazenamento por adaptador do driver de miniport. Para obter mais informações, consulte Extensões de dispositivo.

Context

Ponteiro para o valor de contexto configurado por HwVidFindAdapter. Normalmente, ele aponta para o buffer VIDEO_PORT_CONFIG_INFO ou para um deslocamento nesse buffer.

DeviceDataType

Especifica o tipo de informações de configuração solicitadas, que é um dos seguintes:

VpBusData

VpCmosData

VpControllerData

VpMachineData

VpMonitorData

Drivers de miniporte de adaptadores de vídeo do tipo x86 geralmente especificam VpBusData, especialmente para adaptadores em ônibus EISA. Os valores VpControllerData e VpMonitorData têm significado apenas em plataformas compatíveis com ARC. Os valores VpCmosData e VpMachineData raramente são usados.

Identifier

Ponteiro para o nome do dispositivo conforme determinado pelo firmware ARC. Esse parâmetro deve ser usado apenas em plataformas compatíveis com ARC. Caso contrário, esse ponteiro deverá ser NULL.

IdentiferLength

Especifica o tamanho em bytes da cadeia de caracteres identificador em buffer. O valor deverá ser zero se o computador não estiver em conformidade com ARC.

ConfigurationData

Ponteiro para dados de configuração de hardware. O formato desses dados é determinado pelo DeviceDataType especificado e pelo valor AdapterInterfaceType no VIDEO_PORT_CONFIG_INFO.

ConfigurationDataLength

Especifica o tamanho em bytes do buffer ConfigurationData . Na verdade, isso indica quantas informações foram coletadas do registro e armazenadas no buffer ConfigurationData alocado por VideoPortGetDeviceBase.

ComponentInformation

Reservado para uso do sistema.

ComponentInformationLength

Reservado para uso do sistema.

Retornar valor

HwVidQueryDeviceCallback retorna a status da operação.

Comentários

HwVidQueryDeviceCallback é passado em uma chamada para VideoPortGetDeviceData da função HwVidFindAdapter do driver de miniport. VideoPortGetDeviceData chama HwVidQueryDeviceCallback depois de coletar informações de configuração disponíveis no nó \Registry\Machine\Hardware\Description do registro.

HwVidQueryDeviceCallback examina o ConfigurationData, coletado do registro por VideoPortGetDeviceData. Ele usa essas informações para configurar seu adaptador e, possivelmente, para preencher as informações de configuração ausentes na estrutura VIDEO_PORT_CONFIG_INFO .

HwVidQueryDeviceCallback não pode passar valores de intervalo de acesso encontrados no ConfigurationData para qualquer VideoPortReadXxx ou VideoPortWriteXxx diretamente; esses endereços primeiro devem ser mapeados chamando VideoPortGetDeviceBase.

Se o buffer ConfigurationData não tiver informações de intervalo de acesso e a função HwVidFindAdapter do driver de miniport ainda não tiver chamado VideoPortGetBusData (ou VideoPortGetAccessRanges), sua função HwVidQueryDeviceCallback poderá chamar VideoPortGetBusData. As informações de intervalo de acesso retornadas por VideoPortGetBusData também devem ser passadas para VideoPortVerifyAccessRanges.

Se VideoPortVerifyAccessRanges retornar NO_ERROR, o driver de miniporto poderá chamar VideoPortGetDeviceBase para obter endereços lógicos mapeados que ele pode usar para se comunicar com o adaptador chamando as funções VideoPortReadXxx e/ou VideoPortWriteXxx .

Se ele não puder obter valores de intervalos de acesso relativos ao barramento chamando VideoPortGetDeviceData, VideoPortGetBusData ou VideoPortGetAccessRanges, um driver de miniporte poderá usar um conjunto de valores de intervalo de acesso padrão fornecidos pelo driver para encontrar seu adaptador. Nessas circunstâncias, o driver de miniporto deve chamar VideoPortVerifyAccessRanges com os intervalos de acesso fornecidos pelo driver de miniport e, em seguida, chamar VideoPortGetDeviceBase somente se VideoPortVerifyAccessRanges retornar NO_ERROR. Se uma chamada para VideoPortVerifyAccessRanges não for bem-sucedida, um determinado intervalo relativo ao barramento já estará em uso pelo driver de outro dispositivo.

HwVidQueryDeviceCallback deve ser tornado paginável.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho video.h (inclua Video.h)

Confira também

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges