PMINIPORT_QUERY_DEVICE_ROUTINE función de devolución de llamada (video.h)

HwVidQueryDeviceCallback usa los datos de configuración especificados para configurar su adaptador y, posiblemente, para rellenar la información de configuración que falta en la estructura de VIDEO_PORT_CONFIG_INFO .

Sintaxis

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

Puntero al área de almacenamiento por adaptador del controlador de miniporte. Para obtener más información, consulte Extensiones de dispositivo.

Context

Puntero al valor de contexto configurado por HwVidFindAdapter. Normalmente, apunta al búfer de VIDEO_PORT_CONFIG_INFO o a un desplazamiento en ese búfer.

DeviceDataType

Especifica el tipo de información de configuración solicitada, que es una de las siguientes:

VpBusData

VpCmosData

VpControllerData

VpMachineData

VpMonitorData

Los controladores de miniporte de adaptadores de vídeo x86 de tipo generalmente especifican VpBusData, especialmente para adaptadores en autobuses EISA. Los valores VpControllerData y VpMonitorData solo tienen significado en plataformas compatibles con ARC. Los valores VpCmosData y VpMachineData rara vez se usan.

Identifier

Puntero al nombre del dispositivo según lo determinado por el firmware de ARC. Este parámetro solo se debe usar en plataformas compatibles con ARC. De lo contrario, este puntero debe ser NULL.

IdentiferLength

Especifica el tamaño en bytes de la cadena de identificador almacenado en búfer. El valor debe ser cero si la máquina no es compatible con ARC.

ConfigurationData

Puntero a los datos de configuración de hardware. El formato de estos datos viene determinado por el valor DeviceDataType especificado y por el valor AdapterInterfaceType del VIDEO_PORT_CONFIG_INFO.

ConfigurationDataLength

Especifica el tamaño en bytes del búfer ConfigurationData . En efecto, esto indica la cantidad de información recopilada del Registro y almacenada en el búfer ConfigurationData asignado por VideoPortGetDeviceBase.

ComponentInformation

Reservado para uso del sistema.

ComponentInformationLength

Reservado para uso del sistema.

Valor devuelto

HwVidQueryDeviceCallback devuelve el estado de la operación.

Comentarios

HwVidQueryDeviceCallback se pasa en una llamada a VideoPortGetDeviceData desde la función HwVidFindAdapter del controlador de miniport. VideoPortGetDeviceData llama a HwVidQueryDeviceCallback después de recopilar información de configuración disponible en el nodo \Registry\Machine\Hardware\Description del registro.

HwVidQueryDeviceCallback examina configurationData, recopilado del registro por VideoPortGetDeviceData. Usa esta información para configurar su adaptador y, posiblemente, para rellenar la información de configuración que falta en la estructura VIDEO_PORT_CONFIG_INFO .

HwVidQueryDeviceCallback no puede pasar los valores de intervalo de acceso que se encuentran en ConfigurationData a cualquier VideoPortReadXxx o VideoPortWriteXxx directamente; estas direcciones deben asignarse primero llamando a VideoPortGetDeviceBase.

Si el búfer ConfigurationData no tiene información de intervalo de acceso y la función HwVidFindAdapter del controlador de miniportar aún no ha llamado a VideoPortGetBusData (o VideoPortGetAccessRanges), su función HwVidQueryDeviceCallback puede llamar a VideoPortGetBusData. La información del intervalo de acceso devuelta por VideoPortGetBusData también debe pasarse a VideoPortVerifyAccessRanges.

Si VideoPortVerifyAccessRanges devuelve NO_ERROR, el controlador de miniport puede llamar a VideoPortGetDeviceBase para obtener direcciones lógicas asignadas que puede usar para comunicarse con el adaptador llamando a las funciones VideoPortReadXxx o VideoPortWriteXxx .

Si no puede obtener valores de intervalos de acceso relativos al bus llamando a VideoPortGetDeviceData, VideoPortGetBusData o VideoPortGetAccessRanges, un controlador de minipuerto puede usar un conjunto de valores de intervalo de acceso predeterminados proporcionados por el controlador para encontrar su adaptador. En estas circunstancias, el controlador de miniport debe llamar a VideoPortVerifyAccessRanges con los intervalos de acceso proporcionados por el controlador de miniporte y, a continuación, llamar a VideoPortGetDeviceBase solo si VideoPortVerifyAccessRanges devolvió NO_ERROR. Si una llamada a VideoPortVerifyAccessRanges no se realiza correctamente, el controlador de otro dispositivo ya usa un intervalo relativo al bus determinado.

HwVidQueryDeviceCallback debe ser paginable.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado video.h (incluya Video.h)

Consulte también

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges