estructura DXGK_ALLOCATIONINFO (d3dkmddi.h)

La estructura DXGK_ALLOCATIONINFO describe los parámetros para crear una asignación.

Sintaxis

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  UINT                       Alignment;
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  UINT                       SupportedReadSegmentSet;
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

Miembros

pPrivateDriverData

[in] Puntero a un bloque de datos privados. Estos datos son para cada asignación y son distintos del miembro pPrivateDriverData de la estructura DXGKARG_CREATEALLOCATION . El controlador de pantalla en modo de usuario puede pasar estos datos al controlador de minipuerto de pantalla. Sin embargo, si el subsistema del kernel de gráficos de Microsoft DirectX pasa estos datos para describir la superficie principal compartida u otra superficie bloqueable, los datos se pasan como primer elemento de la matriz en el miembro pAllocationInfo de DXGKARG_CREATEALLOCATION.

PrivateDriverDataSize

[in] Tamaño, en bytes, del bloque de datos privados en pPrivateDriverData.

Alignment

[out] Alineación necesaria, en bytes, para la asignación.

Size

[out] Tamaño, en bytes, necesario para la asignación. El valor de tamaño se expande a un múltiplo del tamaño de página host nativo (por ejemplo, 4 KB en la arquitectura x86). El controlador de miniporte de pantalla especifica el tamaño de asignación al administrador de memoria de vídeo.

PitchAlignedSize

[out] Tamaño, en bytes, de la asignación cuando se encuentra en un segmento alineado con el tono, especificado por la marca de campo de bits PitchAlignment en el miembro Flags de la estructura DXGK_SEGMENTDESCRIPTOR para el segmento. Si la asignación no se admite en un segmento alineado con tono (normalmente, las unidades de procesamiento de gráficos [GPU] no admiten este tipo de segmento), el controlador debe establecer el valor en PitchAlignedSize en cero. Si el controlador especifica un valor distinto de cero en PitchAlignedSize, el valor debe ser mayor o igual que el valor del miembro Size .

HintedBank

[out] Estructura DXGK_SEGMENTBANKPREFERENCE que indica las preferencias de ordenación bancaria que el controlador de miniporte de pantalla solicita que el administrador de memoria de vídeo use para paginar la asignación. Si se especifica este miembro, el administrador de memoria de vídeo usa información bancaria sobre el segmento más preferido, que especifica el miembro SegmentId0 de la estructura DXGK_SEGMENTPREFERENCE que especifica el miembro PreferredSegment .

PreferredSegment

[out] Estructura DXGK_SEGMENTPREFERENCE que indica los identificadores de segmentos preferidos que el controlador de miniporte de pantalla solicita que el administrador de memoria de vídeo use para paginar la asignación.

SupportedReadSegmentSet

[out] Identificadores de segmento que el controlador de miniporte de pantalla puede establecer en el miembro PreferredSegment para las operaciones de lectura. Los segmentos que indican estos identificadores son segmentos que el controlador de miniporte de pantalla solicita que el administrador de memoria de vídeo use para paginar la asignación para las operaciones de lectura, independientemente del rendimiento. Si se establece el bit 0, se indica que se admite el primer segmento, si se establece el bit 1, se indica que se admite el segundo segmento, etc.

El controlador de minipuerto de pantalla solo puede establecer preferencias para segmentos compatibles con las operaciones de lectura. El administrador de memoria de vídeo afirma si el controlador intenta establecer preferencias para segmentos no admitidos en el miembro PreferredSegment .

SupportedWriteSegmentSet

[out] Identificadores de segmento que el controlador de miniporte de pantalla puede establecer en el miembro PreferredSegment para las operaciones de escritura. Los segmentos que indican estos identificadores son segmentos que el controlador de minipuerto de pantalla solicita que el administrador de memoria de vídeo use para paginar la asignación de operaciones de escritura, independientemente del rendimiento. Si se establece el bit 0, se indica que se admite el primer segmento, si se establece el bit 1, se indica que se admite el segundo segmento, etc.

El controlador de minipuerto de pantalla solo puede establecer preferencias para segmentos compatibles con las operaciones de escritura. El administrador de memoria de vídeo afirma si el controlador intenta establecer preferencias para segmentos no admitidos en el miembro PreferredSegment .

EvictionSegmentSet

[out] Identificadores de segmentos que se pueden usar para la expulsión. Si se establece el bit 0, se indica que el primer segmento se puede usar para la expulsión, establecer el bit 1 indica que el segundo segmento se puede usar para la expulsión, etc.

Este miembro solo puede especificar segmentos de apertura. Si el controlador especifica segmentos válidos que se van a usar para la expulsión, el administrador de memoria de vídeo intenta asignar recursos en esos segmentos de apertura para acelerar el proceso de expulsión. Si el controlador especifica 0, el administrador de memoria de vídeo llama al controlador para transferir el contenido de una asignación directamente a la memoria del sistema bloqueada en páginas sin asignar las páginas subyacentes a través de un segmento de apertura.

MaximumRenamingListLength

[out] Longitud máxima de la lista de cambio de nombre de la asignación. Para obtener más información sobre la lista de cambio de nombre, vea Solicitar cambiar el nombre de una asignación.

La compatibilidad con este miembro comenzó con Windows 10 y WDDM v2.

PhysicalAdapterIndex

[out] Índice del adaptador físico.

La compatibilidad con este miembro comenzó con Windows 10 y WDDM v2.

hAllocation

[out] Identificador de la asignación. El controlador de minipuerto de pantalla debe establecer este miembro en un valor que puede usar para hacer referencia a su estructura de seguimiento privado para la asignación.

Flags

[out] Estructura DXGK_ALLOCATIONINFOFLAGS que identifica las propiedades de una asignación en marcas de campo de bits. Estas propiedades indican el tipo de asignación que se va a crear. El controlador de minipuerto de pantalla especifica estas marcas para el administrador de memoria de vídeo. Los controladores que se dirigen a cualquier versión de WDDM anterior a WDDM 2.0 deben usar marcas; Los controladores que se dirigen a cualquier versión >de WDDM = WDDM 2.0 deben usar FlagsWddm2.

FlagsWddm2

[out] Estructura DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 que identifica las propiedades de una asignación en marcas de campo de bits. Estas propiedades indican el tipo de asignación que se va a crear. El controlador de minipuerto de pantalla especifica estas marcas para el administrador de memoria de vídeo. Los controladores que se dirigen a cualquier versión >de WDDM = WDDM 2.0 deben usar FlagsWddm2; los controladores que se dirigen a cualquier versión de WDDM anterior a WDDM 2.0 deben usar marcas.

pAllocationUsageHint

[out] Puntero a una estructura de DXGK_ALLOCATIONUSAGEHINT que usa el administrador de memoria para determinar cómo usar la asignación.

AllocationPriority

[out] Valor UINT que especifica el nivel de prioridad inicial de la asignación.

El controlador determina el nivel de prioridad adecuado para cada asignación. Para obtener más información sobre los niveles de prioridad, vea la sección Comentarios de la función pfnSetPriorityCb . Si el nivel de prioridad para las asignaciones no es un problema para el controlador, el controlador debe establecer todos los niveles de prioridad en D3DDDI_ALLOCATIONPRIORITY_NORMAL. Tenga en cuenta que 0 es una prioridad de asignación inicial no válida.

Flags2

[out] Estructura de DXGK_ALLOCATIONINFOFLAGS2 que contiene propiedades adicionales para una asignación. Se admite a partir de Windows 11 (WDDM 3.0).

Comentarios

Con WDDM v2, se ha cambiado la estructura de DXGK_ALLOCATIONINFO para que el conjunto de segmentos de lectura y escritura ya no se diferencie. Durante la creación de la superficie, el administrador de memoria de vídeo omitirá el valor SupportedReadSegmentSet y usará solo el conjunto de segmentos proporcionado por SupportedWriteSegmentSet. Los controladores deben asegurarse de que este valor representa con precisión el conjunto de segmentos que puede usar la asignación para su propósito previsto.

Omitir el conjunto de segmentos de lectura admitido no significa que ya no se admita, sino simplemente que ya no debería haber una diferencia entre estos conjuntos y el administrador de memoria de vídeo podrá elegir un segmento adecuado para cualquier asignación de un único conjunto de segmentos.

Requisitos

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

Consulte también

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb