Compartilhar via


estrutura DXGKARGCB_MAP_PHYSICAL_MEMORY (d3dkmddi.h)

A estrutura DXGKARGCB_MAP_PHYSICAL_MEMORY contém as informações usadas pela função de retorno de chamada DXGKCB_MAPPHYSICALMEMORY para mapear um endereço virtual visível da CPU para a memória física subjacente.

Sintaxe

typedef struct _DXGKARGCB_MAP_PHYSICAL_MEMORY {
  [in]     HANDLE           hPhysicalMemoryObject;
  [in]     DXGK_ACCESS_MODE AccessMode;
  [in/out] SIZE_T           Offset;
  [in]     SIZE_T           Size;
  [out]    void             *pMappedAddress;
} DXGKARGCB_MAP_PHYSICAL_MEMORY;

Membros

[in] hPhysicalMemoryObject

O objeto de memória física que descreve as páginas físicas subjacentes a serem mapeadas. Esse objeto foi criado em uma chamada anterior para DXGKCB_CREATEPHYSICALMEMORYOBJECT.

[in] AccessMode

Um DXGK_ACCESS_MODE valor de enumeração que descreve o modo de acesso (modo de usuário ou modo kernel) para o qual o mapeamento deve ser feito.

[in/out] Offset

Como entrada, especifica o deslocamento do início do objeto de memória física, em bytes. Como saída, especifica o deslocamento do início do endereço base mapeado em que residem os dados solicitados, em bytes. Confira Comentários para obter mais informações.

[in] Size

Como entrada, especifica o tamanho solicitado da região mapeada, em bytes. Como uma saída, especifica o tamanho real mapeado, em bytes. Confira Comentários para obter mais informações.

[out] pMappedAddress

Em uma chamada bem-sucedida para DXGKCB_MAPPHYSICALMEMORY, esse é um ponteiro para o mapeamento de memória física subjacente. O início do intervalo de memória mapeado pode não ser exatamente igual ao deslocamento solicitado pelo driver se o arredondamento ou alinhamento for necessário. Como resultado, o valor de saída de Offset refere-se ao deslocamento do endereço base para os dados solicitados pelo driver. Ou seja, ActualAddress = BaseAddress + Offset.

Comentários

Deslocamento e Tamanho são parâmetros de entrada e saída. Como entrada, eles descrevem a região da memória física solicitada pelo chamador. Na saída, eles descrevem a exibição mapeada real. Isso ocorre porque o endereço mapeado para a memória física correspondente pode não estar exatamente no deslocamento solicitado. Os dados reais solicitados pelo chamador serão iguais ao deslocamento pMappedAddress + . O tamanho do intervalo de endereços virtuais que foi mapeado será o valor de saída de Size, que pode ser maior que o tamanho solicitado.

Confira Remapeamento de DMA IOMMU para obter mais informações.

Requisitos

Requisito Valor
Servidor mínimo com suporte Windows Server 2022 (WDDM 2.9)
Cabeçalho d3dkmddi.h

Confira também

DXGK_ACCESS_MODE

DXGKCB_MAPPHYSICALMEMORY