Función VideoPortVerifyAccessRanges (video.h)
La función VideoPortVerifyAccessRanges comprueba si otro controlador ya ha reclamado la propiedad de los intervalos de acceso relativos al bus especificados y cualquier otro recurso de hardware especificado en la estructura VIDEO_PORT_CONFIG_INFO . Si no es así, esta función reclama los recursos especificados para el autor de la llamada.
Sintaxis
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
PVOID HwDeviceExtension,
ULONG NumAccessRanges,
[in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);
Parámetros
HwDeviceExtension
Puntero a la extensión del dispositivo del controlador de minipuerto.
NumAccessRanges
Especifica el número de elementos de la matriz AccessRanges o cero.
[in, optional] AccessRanges
Puntero a la matriz de intervalos de acceso del controlador de miniporte o NULL. Cada elemento de tipo VIDEO_ACCESS_RANGE de esta matriz especifica un intervalo relativo al bus de memoria del dispositivo, puertos de E/S o direcciones de registro para el adaptador.
Valor devuelto
VideoPortVerifyAccessRanges devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
ERROR_INVALID_PARAMETER | Se encontró un error o se encontró un conflicto; es decir, otro controlador ya ha reclamado uno o varios de los recursos de hardware especificados para su dispositivo. |
NO_ERROR | AccessRanges especificados son válidos y el autor de la llamada ha reclamado para su uso. |
Comentarios
Cada controlador de miniporte de vídeo debe llamar a VideoPortVerifyAccessRanges o usar intervalos de acceso devueltos por VideoPortGetAccessRanges antes de intentar acceder a un adaptador de vídeo durante el proceso de inicialización del controlador (y del sistema).
VideoPortVerifyAccessRanges solo se puede llamar mediante una función HwVidFindAdapter del controlador de miniporte.
Cada controlador de miniporte de vídeo debe definir los intervalos de acceso relativos al bus para su dispositivo, ya sea como memoria asignada estáticamente en el archivo de encabezado o el código del controlador o en la pila. La mayoría de los controladores de minipuerto configuran sus intervalos de acceso de vídeo en la pila, excepto los que usan intervalos de direcciones estándar de PC para la memoria de vídeo, como los controladores de miniport SVGA compatibles con VGA.
La función HwVidFindAdapter debe intentar obtener información del intervalo de acceso relativo al bus llamando a VideoPortGetAccessRanges o comprobando el registro a través de llamadas a VideoPortGetDeviceData o VideoPortGetRegistryParameters. Si HwVidFindAdapter no puede obtener esta información, el controlador de minipuerto debe tener un conjunto de valores predeterminados relativos al bus para los intervalos de acceso.
Si los intervalos de acceso de un controlador de miniporte son configurables externamente, el programa de instalación configura intervalos de acceso para el adaptador en el registro. Esta función HwVidFindAdapter del controlador de miniporte puede llamar a VideoPortGetRegistryParameters con una función HwVidQueryNamedValueCallback proporcionada por el controlador de miniporte que procesa la información recuperada del registro.
HwVidFindAdapter no debe pasar ninguna dirección de intervalo de acceso a VideoPortGetDeviceBase a menos que llame primero a VideoPortVerifyAccessRanges o VideoPortGetAccessRanges y la función respectiva devuelva NO_ERROR.
Se puede llamar a VideoPortVerifyAccessRanges de nuevo si la especificación o el valor inicial de AccessRanges en el VIDEO_PORT_CONFIG_INFO, como un vector de interrupción, hace que devuelva un ERROR_XXX que indica que otro controlador ya ha reclamado los recursos.
Si VideoPortVerifyAccessRanges devuelve NO_ERROR, una llamada posterior para el mismo adaptador sobrescribe la notificación del controlador de miniporte en los recursos de ese adaptador en el registro.
Tenga en cuenta que un controlador de minipuerto no puede comunicarse con su adaptador de vídeo, excepto mediante direcciones asignadas devueltas por VideoPortGetDeviceBase con las funciones VideoPortRead/WriteXxx .
Si la función HwVidFindAdapter reclama intervalos de acceso relativos al bus y posiblemente otros recursos de hardware para un adaptador, pero luego determina que no admite el adaptador, el controlador de miniport debe renunciar a sus notificaciones en los recursos de hardware del registro llamando a VideoPortVerifyAccessRanges o VideoPortGetAccessRanges con NumAccessRanges establecido en cero y AccessRanges establecido en NULL.
Para renunciar a las notificaciones en un subconjunto de intervalos de acceso reclamados que el controlador de miniporte ya no usa, haga lo siguiente:
- Modifique la especificación AccessRanges para el adaptador para que cada elemento que describa un intervalo que se va a liberar todavía tenga RangeStart establecido en la base relativa al bus de un intervalo reclamado, pero RangeLength restablece a cero.
- Llame a VideoPortVerifyAccessRanges con esta matriz AccessRanges modificada.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows. |
Plataforma de destino | Escritorio |
Encabezado | video.h (incluya Video.h) |
Library | Videoprt.lib |
Archivo DLL | Videoprt.sys |
IRQL | PASSIVE_LEVEL |