Compartir a través de


Función VideoPortMapBankedMemory (video.h)

La función VideoPortMapBankedMemory está obsoleta y solo se admite para windows NT 4.0 y controladores 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 virtual del controlador de pantalla correspondiente en respuesta a un VRP con el miembro IoControlCode 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 Length.

InIoSpace

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

Valor Significado
VIDEO_MEMORY_SPACE_DENSE Obsoletos
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 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. A continuación, 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 mediante el controlador de pantalla correspondiente del controlador de miniporte. Cuando se devuelve una llamada correcta, VideoPortMapBankedMemory restablece la variable a la dirección virtual base a la que ha asignado physicalAddress dado.

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 de lectura y escritura independientes.

BankRoutine

Puntero a una función HwVidBankedMemoryCallback proporcionada por el controlador para que lo llame el Administrador de memoria cuando el controlador de pantalla accede a un nuevo banco.

Context

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

Valor devuelto

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

Comentarios

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

Los controladores de minipuerto llaman a VideoPortMapBankedMemory para administrar eficazmente los dispositivos de tipo x86 que están limitados a asignar un búfer de fotogramas en los 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 fotogramas lineal en el espacio de direcciones del proceso de solicitud (consulte el 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 índice bancario para que apunte a un nuevo banco que contiene la dirección a la que se hace referencia actualmente. Bank Index Register se mantiene mediante el controlador de minipuerto en BankRoutine. El Índice bancario correcto se calcula mediante el Administrador de memoria de forma transparente en un controlador de pantalla y se pasa al controlador de miniporte en la devolución de llamada a BankRoutine.

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 (incluir Video.h)
Library Videoprt.lib
Archivo DLL 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