estructura DXGK_SEGMENTDESCRIPTOR (d3dkmddi.h)

La estructura DXGK_SEGMENTDESCRIPTOR contiene información sobre un segmento que admite el controlador.

Sintaxis

typedef struct _DXGK_SEGMENTDESCRIPTOR {
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
  [out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;

Miembros

[out] BaseAddress

La dirección base del segmento, determinada por la unidad de procesamiento gráfico (GPU). La dirección física de una asignación a la que el administrador de memoria de vídeo paginado en el segmento tiene asignada una dirección gpu que se desplaza desde la dirección base que especifica BaseAddress .

El administrador de memoria de vídeo omite la dirección base de los segmentos de apertura de tipo AGP (donde se especifica la marca de campo de bits Agp en el miembro Flags ) y, en su lugar, usa la dirección física real del segmento dentro de la apertura de AGP, según se determina en el bus donde se encuentra la GPU. En esta situación, el controlador puede usar direcciones que el administrador de memoria de vídeo generó para la asignación directamente sin necesidad de traducción.

[out] CpuTranslatedAddress

La dirección base del segmento, relativa al bus en el que está conectada la GPU. Por ejemplo, cuando la GPU está conectada en el bus PCI, CpuTranslatedAddress es la dirección base del intervalo utilizable especificado por un registro de dirección base (BAR) PCI. El controlador especifica esta dirección solo si especifica un segmento accesible para la CPU estableciendo la marca de campo de bits CpuVisible en el miembro Flags .

Este miembro se omite para los segmentos de apertura, incluido el segmento de apertura de tipo AGP. La única excepción se produce cuando el controlador de pantalla en modo de usuario no ha configurado una dirección virtual alternativa para una asignación principal (es decir, cuando el controlador no ha establecido UseAlternateVA en el miembro Flags de la estructura D3DDDICB_LOCKFLAGS durante una llamada a la función pfnLockCb ).

Antes de que el administrador de memoria de vídeo asigne una dirección virtual al intervalo físico, el administrador de memoria de vídeo traduce esta dirección física en función de la vista de CPU del bus e informa al controlador sobre la operación para que el controlador pueda configurar una apertura para acceder al contenido del segmento en la ubicación especificada.

[out] Size

Tamaño, en bytes, del segmento. Este tamaño debe ser un múltiplo del tamaño de página host nativo (por ejemplo, 4 KB en la arquitectura x86).

Para los segmentos de apertura de tipo AGP (donde se especifica la marca de campo de bits de Agp en el miembro Flags ), el administrador de memoria de vídeo asigna tanto espacio de apertura como sea posible, por lo que este miembro se omite.

[out] NbOfBanks

El número de bancos del segmento, si se usa la banca (es decir, si la marca de campo de bits UseBanking se establece en el miembro Flags ).

[out] pBankRangeTable

Matriz de valores que indica los intervalos que delimitan cada banco del segmento. El controlador especifica esta matriz solo si también establece la marca de campo de bits UseBanking en el miembro Flags .

La matriz especifica las direcciones finales del primer banco a través del banco NbOfBanks(es decir, los desplazamientos finales en el segmento de cada banco). Tenga en cuenta lo siguiente:

  • Los bancos son contiguos.

  • El primer banco comienza en el desplazamiento cero del segmento.

  • El último banco termina al final del segmento, por lo que no es necesario que el controlador especifique la dirección final del último banco.

[out] CommitLimit

Número máximo de bytes que se pueden confirmar en el segmento. Para un segmento de memoria, el límite de confirmación siempre es el mismo que el tamaño del segmento, que se especifica en el miembro Size . Para un segmento de apertura, el controlador puede limitar la cantidad de memoria que se puede confirmar en el segmento en sistemas con pequeñas cantidades de memoria física.

[out] Flags

Estructura DXGK_SEGMENTFLAGS que identifica las propiedades, en marcas de campo de bits, para el segmento.

Tenga en cuenta que para un segmento de apertura de tipo AGP, el controlador debe establecer exclusivamente el miembro Agp de la estructura en la unión que DXGK_SEGMENTFLAGS contiene. Aunque el segmento de apertura de tipo AGP es una abertura y es accesible para la CPU, si se establecen otros miembros, el adaptador no se inicializa.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dkmddi.h (incluya D3dkmddi.h)

Consulte también

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_ALLOCATIONINFO

DXGK_QUERYSEGMENTIN

DXGK_QUERYSEGMENTOUT

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo

pfnLockCb