Compartilhar via


DXGKDDI_CREATEMEMORYBASIS função de retorno de chamada (d3dkmddi.h)

A função DxgkDdiCreateMemoryBasis do KMD cria um identificador para uma coleção de intervalos de memória que representam a alocação que está sendo operada durante sujo acompanhamento de bits.

Sintaxe

DXGKDDI_CREATEMEMORYBASIS DxgkddiCreatememorybasis;

HANDLE DxgkddiCreatememorybasis(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_CREATEMEMORYBASIS pArgs
)
{...}

Parâmetros

hAdapter

[in] Um identificador para um bloco de contexto associado a um adaptador de exibição. O KMD forneceu anteriormente esse identificador para Dxgkrnl no parâmetro de saída MiniportDeviceContext da função DxgiDdiAddDevice .

pArgs

[in] Um ponteiro para uma estrutura DXGKARG_CREATEMEMORYBASIS que contém informações para a base que está sendo criada.

Retornar valor

DxgkDdiCreateMemoryBasis retorna um HANDLE para referência do KMD para acompanhar a coleção de intervalos. O KMD deve ser capaz de transformar essas informações nas informações da base em comandos subsequentes, como DxgkDdiDestroyMemoryBasis.

Comentários

O acompanhamento de operações de modificação na VRAM é para alocações que podem não ser apoiadas contíguamente. Portanto, os endereços físicos representados no acompanhamento de sujo bits consistem em uma coleção de intervalos que representam a alocação em que está sendo operada. DxgkDdiCreateMemoryBasis retorna um identificador para a referência do KMD para acompanhar esses intervalos.

O KMD pode contar com as seguintes invariáveis:

  • Para cada intervalo em Intervalos, SegmentOffset e (SegmentOffset + SizeInBytes - 1) representam endereços válidos no segmento referenciado por SegmentId.

  • Todos os Intervalos são contíguos pares; ou seja, a interseção entre os dois intervalos é sempre nula.

Também é comum que SegmentOffset e SizeInBytes respeitem determinados alinhamentos de página quando a base de memória criada for usada em determinados DDIs de acompanhamento de sujo. Esses valores são descritos na página de referência da DDI e são sempre um múltiplo de DXGK_DIRTY_BIT_TRACKING_SEGMENT_CAPS::P ageSize.

Caso contrário, o Dxgkrnl não garante a ordenação dos endereços na coleção de Intervalos ou garantias relacionadas.

Para obter mais informações, consulte Rastreamento de bits sujos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11, versão 24H2 (WDDM 3.2)
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Confira também

DXGKARG_CREATEMEMORYBASIS

DxgkDdiDestroyMemoryBasis