Compartilhar via


estrutura DXGKARGCB_ALLOCATE_ADL (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL contém as informações usadas pela função de retorno de chamada DXGKCB_ALLOCATEADL para criar uma ADL (lista de descritores de endereço).

Sintaxe

typedef struct _DXGKARGCB_ALLOCATE_ADL {
  [in]  HANDLE   hAdapterMemoryObject;
  [in]  SIZE_T   Offset;
  [in]  SIZE_T   Size;
  union {
    struct {
      UINT32 RequireContiguous : 1;
      UINT32 PreferContiguous : 1;
      UINT32 Reserved : 30;
    };
          UINT32 Value;
  } Flags;
  [out] DXGK_ADL *pAdl;
} DXGKARGCB_ALLOCATE_ADL;

Membros

[in] hAdapterMemoryObject

O objeto de memória do adaptador que descreve a memória lógica subjacente usada para criar o ADL. Esse objeto foi criado por meio de DXGKCB_CREATEPHYSICALMEMORYOBJECT ou posterior aberto por meio de DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

O deslocamento, em bytes, desde o início do objeto de memória física. Esse valor deve ser um múltiplo de PAGE_SIZE.

[in] Size

O número total de bytes a serem alocados para o ADL. Esse valor deve ser um múltiplo de PAGE_SIZE, de modo que o número de páginas no ADL seja Tamanho/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Indica que o driver está solicitando um ADL que descreve um intervalo contíguo de memória, em vez de páginas dispersas. Esse sinalizador só será válido se o objeto de memória física representado por hAdapterMemoryObject tiver sido alocado como DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY ou DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Fornece ao driver uma maneira de solicitar de forma ideal um ADL contíguo quando possível. Quando o remapeamento de DMA estiver habilitado, as ADLs se referirão a intervalos de espaço de endereço lógico; no entanto, os drivers podem não ser capazes de usar ADLs contíguos em todos os caminhos de código. ADLs não contíguas para memória lógica podem se tornar dispendiosas, pois exigem alocação de uma matriz PFN separada, semelhante a um MDL, para representar a memória. Quando possível, o driver deve especificar esse sinalizador para indicar que um ADL pode ser representado apenas com o endereço base.

[in] Flags.Reserved

Reservados; deve ser definido como zero.

[in] Flags.Value

Uma maneira alternativa de acessar os bits.

[out] pAdl

Em uma chamada bem-sucedida para DXGKCB_ALLOCATEADL, aponta para a estrutura DXGK_ADL com uma lista de endereços de página que podem ser usados para programar o hardware.

Comentários

Consulte Remapeamento de DMA do 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

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT