Compartilhar via


DXGKCB_MAP_MEMORY função de retorno de chamada (dispmprt.h)

A função DxgkCbMapMemory mapeia um intervalo de endereços físicos traduzidos (associados a um recurso de memória atribuído a um adaptador de exibição) para o espaço do sistema ou o espaço de endereço virtual de um processo de modo de usuário.

Sintaxe

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

Um identificador que representa um adaptador de exibição. O driver de miniporto de exibição obteve anteriormente esse identificador no membro DeviceHandle da estrutura DXGKRNL_INTERFACE que foi passada para DxgkDdiStartDevice.

[in] TranslatedAddress

O endereço físico traduzido base do intervalo de memória a ser mapeado. O driver de miniporto de exibição obteve esse endereço anteriormente chamando DxgkCbGetDeviceInformation.

[in] Length

O tamanho, em bytes, do intervalo a ser mapeado.

[in] InIoSpace

Um valor booliano que especifica se o intervalo está no espaço de E/S (TRUE) ou no espaço de memória (FALSE).

[in] MapToUserMode

Um valor booliano que especifica se o intervalo é mapeado para espaço no modo de usuário ou espaço do sistema. Se TRUE, o intervalo será mapeado para o espaço de endereço virtual (modo usuário) do processo atual. Se FALSE, o intervalo será mapeado para o espaço do sistema. Se InIoSpace for TRUE, esse parâmetro será ignorado.

[in] CacheType

Um enumerador MEMORY_CACHING_TYPE que especifica o comportamento de cache do intervalo mapeado.

[out] VirtualAddress

Um ponteiro para uma variável que recebe o endereço do início do intervalo mapeado. A maneira como o intervalo mapeado é acessado depende dos valores de InIoSpace e MapToUserMode. A tabela a seguir resume as diferentes maneiras pelas quais o intervalo mapeado é acessado.

Valor de InIoSpace MapToUserMode é FALSE MapToUserMode é TRUE
FALSE READ_REGISTER_X WRITE_REGISTER_X O código do modo de usuário executa o acesso à memória comum.
TRUE READ_PORT_X WRITE_PORT_X Não é possível.

Retornar valor

DxgkCbMapMemory retornará STATUS_SUCCESS se for bem-sucedido. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.

Comentários

O tipo de dados PHYSICAL_ADDRESS é definido em Ntdef.h.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho dispmprt.h (inclua Dispmprt.h)
IRQL PASSIVE_LEVEL

Confira também

MEMORY_CACHING_TYPE