Compartir a través de


Función VideoPortMapBankedMemory (video.h)

La función de VideoPortMapBankedMemory está obsoleta y solo se admite para controladores de Windows NT 4.0 y anteriores. Los controladores de Windows 2000 y versiones posteriores deben usar VideoPortMapMemory.

VideoPortMapBankedMemory reasigna un intervalo físico relativo al bus de memoria de vídeo en el espacio de direcciones virtuales del controlador de pantalla correspondiente en respuesta a un VRP con el miembro ioControlCode de establecido en IOCTL_VIDEO_SHARE_VIDEO_MEMORY o IOCTL_VIDEO_MAP_VIDEO_MEMORY.

Sintaxis

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortMapBankedMemory(
  PVOID                   HwDeviceExtension,
  PHYSICAL_ADDRESS        PhysicalAddress,
  PULONG                  Length,
  PULONG                  InIoSpace,
  PVOID                   *VirtualAddress,
  ULONG                   BankLength,
  UCHAR                   ReadWriteBank,
  PBANKED_SECTION_ROUTINE BankRoutine,
  PVOID                   Context
);

Parámetros

HwDeviceExtension

Puntero a la extensión del dispositivo del controlador de minipuerto.

PhysicalAddress

Especifica la dirección base relativa al bus del intervalo que se va a asignar.

Length

Puntero a una variable que especifica el número total de bytes de memoria del dispositivo que se asignarán (independientemente del tamaño del banco). VideoPortMapBankedMemory devuelve el tamaño real de la memoria asignada, que se puede redondear a un límite de alineación determinado por el sistema, en este parámetro. Sin embargo, los controladores de minipuerto y visualización no pueden acceder a la memoria fuera del intervalo delimitado por el valor de entrada en Longitud.

InIoSpace

Indica la ubicación del intervalo. Este parámetro puede ser uno de los siguientes valores:

Valor Significado
VIDEO_MEMORY_SPACE_DENSE Obsoleto
VIDEO_MEMORY_SPACE_IO El intervalo está en el espacio de E/S del sistema en lugar de en el espacio de memoria.
VIDEO_MEMORY_SPACE_MEMORY El intervalo está en el espacio de memoria en lugar de en el espacio de E/S del sistema.
VIDEO_MEMORY_SPACE_P6CACHE El procesador agrega una secuencia de operaciones de escritura y las envía a una línea de caché determinada. Después, el procesador vacía la memoria caché. Esta marca solo es significativa cuando no se establece VIDEO_MEMORY_SPACE_IO.
VIDEO_MEMORY_SPACE_USER_MODE Indica que el intervalo de direcciones especificado debe asignarse al modo de usuario en lugar del modo kernel. Esta marca solo es significativa cuando no se establece VIDEO_MEMORY_SPACE_IO.

VirtualAddress

Es un identificador del proceso en el que se debe asignar la memoria o NULL. NULL especifica que el controlador de puerto debe asignar el intervalo de memoria lógico en cualquier ubicación del espacio de direcciones del proceso actual. De lo contrario, este identificador puede ser un valor pasado en un VRP por el controlador de pantalla correspondiente del controlador de miniport. Al volver de una llamada correcta, VideoPortMapBankedMemory restablece la variable a la dirección virtual base a la que ha asignado el PhysicalAddress.

BankLength

Especifica el tamaño de un banco, en bytes.

ReadWriteBank

Si se establece en TRUE el banco es Read\Write; si se establece en FALSE hay dos bancos independientes de lectura y escritura.

BankRoutine

Puntero a un controlador proporcionado función HwVidBankedMemoryCallback que llamará el Administrador de memoria cuando el controlador de pantalla acceda a un nuevo banco.

Context

Puntero a un contexto proporcionado por el controlador de miniport que se devuelve al controlador cuando se llama al BankRoutine.

Valor devuelto

VideoPortMapBankedMemory devuelve NO_ERROR si el intervalo lógico especificado se ha asignado correctamente a un intervalo virtual de espacio de usuario. De lo contrario, puede devolver ERROR_INVALID_PARAMETER.

Observaciones

videoPortMapBankedMemory se ejecuta en modo kernel en el mismo contexto que el subproceso en modo de usuario que inició la llamada.

llama a videoPortMapBankedMemory mediante controladores de miniporte para administrar de forma eficaz dispositivos de tipo x86 que están limitados a asignar un búfer de fotogramas en bancos. Cuando esta rutina vuelve al autor de la llamada, el búfer de fotogramas administrado por el controlador de miniporte se asigna como un búfer de marco lineal en el espacio de direcciones del proceso de solicitud (consulte parámetro VirtualAddress). Cuando se realiza un acceso a una dirección en ese espacio asignado, el Administrador de memoria llama al controlador de miniporte para actualizar el Registro de índices bancarios para que apunte a un nuevo banco que contenga la dirección a la que se hace referencia actualmente. Bank Index Register se mantiene mediante el controlador de miniport en BankRoutine. El Índice bancario correcto se calcula mediante el Administrador de memoria de forma transparente en un controlador de visualización y se pasa al controlador de miniporte en la devolución de llamada a BankRoutine.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
de la plataforma de destino de Escritorio
encabezado de video.h (incluya Video.h)
biblioteca de Videoprt.lib
DLL de Videoprt.sys
irQL PASSIVE_LEVEL

Consulte también

HwVidBankedMemoryCallback

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_REQUEST_PACKET

VideoPortMapMemory

VideoPortUnmapMemory