DXGKCB_MAP_MEMORY función de devolución de llamada (dispmprt.h)

La función DxgkCbMapMemory asigna un intervalo de direcciones físicas traducidas (asociadas a un recurso de memoria asignado a un adaptador de pantalla) en el espacio del sistema o en el espacio de direcciones virtuales de un proceso en modo de usuario.

Sintaxis

DXGKCB_MAP_MEMORY DxgkcbMapMemory;

NTSTATUS DxgkcbMapMemory(
  [in]  HANDLE DeviceHandle,
  [in]  PHYSICAL_ADDRESS TranslatedAddress,
  [in]  ULONG Length,
  [in]  BOOLEAN InIoSpace,
  [in]  BOOLEAN MapToUserMode,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID *VirtualAddress
)
{...}

Parámetros

[in] DeviceHandle

Identificador que representa un adaptador de pantalla. El controlador de minipuerto de pantalla obtuvo previamente este identificador en el miembro DeviceHandle de la estructura DXGKRNL_INTERFACE que se pasó a DxgkDdiStartDevice.

[in] TranslatedAddress

Dirección física traducida base del intervalo de memoria que se va a asignar. El controlador de minipuerto de pantalla obtuvo esta dirección llamando a DxgkCbGetDeviceInformation.

[in] Length

Tamaño, en bytes, del intervalo que se va a asignar.

[in] InIoSpace

Valor booleano que especifica si el intervalo está en espacio de E/S (TRUE) o espacio de memoria (FALSE).

[in] MapToUserMode

Valor booleano que especifica si el intervalo se asigna al espacio en modo de usuario o al espacio del sistema. Si es TRUE, el intervalo se asigna al espacio de direcciones virtuales (modo de usuario) del proceso actual. Si es FALSE, el intervalo se asigna al espacio del sistema. Si InIoSpace es TRUE, este parámetro se omite.

[in] CacheType

Enumerador de MEMORY_CACHING_TYPE que especifica el comportamiento de almacenamiento en caché del intervalo asignado.

[out] VirtualAddress

Puntero a una variable que recibe la dirección del principio del intervalo asignado. La forma en que se accede al intervalo asignado depende de los valores de InIoSpace y MapToUserMode. En la tabla siguiente se resumen las distintas formas en que se accede al intervalo asignado.

Valor de InIoSpace MapToUserMode es FALSE MapToUserMode es TRUE
FALSE READ_REGISTER_X WRITE_REGISTER_X El código en modo de usuario realiza el acceso a memoria normal.
TRUE READ_PORT_X WRITE_PORT_X No es posible.

Valor devuelto

DxgkCbMapMemory devuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.

Comentarios

El tipo de datos PHYSICAL_ADDRESS se define en Ntdef.h.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Consulte también

MEMORY_CACHING_TYPE