Compartir a través de


estructura D3DDDI_ALLOCATIONINFO (d3dukmdt.h)

La estructura D3DDDI_ALLOCATIONINFO describe una asignación para WDDM v1. En su lugar, los clientes gráficos en modo de usuario deben usar D3DDDI_ALLOCATIONINFO2.

Sintaxis

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  const VOID                     *pSystemMem;
  VOID                           *pPrivateDriverData;
  UINT                           PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
#if ...
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
} D3DDDI_ALLOCATIONINFO;

Miembros

hAllocation

[out] Un D3DKMT_HANDLE que representa un identificador en modo kernel para la asignación. Este identificador está asociado al identificador de recursos en modo kernel (si no es NULL) que devuelve la función de pfnAllocateCb del entorno de ejecución de Direct3D en el hKMResource miembro de la estructura D3DDDICB_ALLOCATE. El controlador de visualización en modo de usuario puede usar este identificador de asignación en modo kernel para hacer referencia a la asignación en el búfer de comandos.

pSystemMem

[in] Puntero a la memoria del sistema que el tiempo de ejecución de Direct3D ha asignado previamente. De lo contrario, este miembro es NULL si la asignación va a usar la memoria de vídeo.

Si la asignación está en memoria del sistema, el controlador de pantalla en modo de usuario debe asignar el búfer en el pSysMem miembro de la estructura de D3DDDI_SURFACEINFO para que el recurso pSystemMem. Este búfer se especifica cuando el tiempo de ejecución de Direct3D llama al controlador de visualización en modo de usuario función CreateResource para crear recursos.

pPrivateDriverData

[in/out,opt] Puntero al búfer que contiene datos privados opcionales que podría requerir el controlador de miniporte para mostrar para crear la asignación. El controlador de minipuerto de pantalla también puede devolver datos en el búfer. Cuando el contenido del búfer se pasa al controlador de miniporte para mostrar, el contenido debe estar en un formato que el controlador de miniporte de pantalla pueda procesar.

PrivateDriverDataSize

[in] Tamaño en bytes de los datos privados.

VidPnSourceId

[in] Número de identificación de VidPN basado en cero del origen del vídeo presente en una ruta de acceso de una topología de red de vídeo presente (VidPN) si la asignación es para la superficie principal. El controlador debe establecer VidPnSourceId solo para los tipos de asignación principales y no para ningún otro tipo de asignación. Si el controlador establece VidPnSourceId para cualquier otro tipo de asignación de una llamada a la función pfnAllocateCb, pfnAllocateCb devuelve D3DDDI_ID_NOTAPPLICABLE.

Cuando el subsistema de kernel gráficos de DirectX inicia la creación de la asignación para la superficie principal compartida, el controlador de miniporte de pantalla puede determinar el número de identificación del VidPnSourceId miembro de la estructura D3DKMDDI_SHAREDPRIMARYSURFACEDATA a la que apunta el pPrivateDriverData miembro de la estructura DXGK_ALLOCATIONINFO.

Flags

[in] Unión que contiene una estructura o un valor de 32 bits que identifica el tipo de asignación.

Flags.Primary

[in] UINT que especifica si la asignación forma parte del escritorio. Esta asignación es accesible implícitamente para la CPU. Una asignación principal se puede anclar al crear o no anclarse en la creación.

Establecer este miembro equivale a establecer el primer bit del miembro Value de 32 bits (0x00000001).

Flags.Stereo

[in] Se admite a partir de Windows 8. UINT que especifica si la asignación es una asignación principal estéreo. El miembro estéreo solo se puede establecer cuando se establece el miembro principal de .

Establecer este miembro equivale a establecer el segundo bit del miembro value (0x00000002) de 32 bits.

Flags.Reserved

[in] Este miembro está reservado y debe establecerse en cero.

Flags.Value

[in] Valor de 32 bits que identifica el tipo de asignación.

Observaciones

Cuando el controlador de visualización en modo de usuario establece la marca campo de bits principal en la Flags miembro de D3DDDI_ALLOCATIONINFO, se aplican ciertas restricciones a la estructura de DXGK_ALLOCATIONINFO en la pAllocationInfo miembro de la estructura de DXGKARG_CREATEALLOCATION para la asignación en una llamada al del controlador de miniporte para mostrar función dxgkDdiCreateAllocation. Estas restricciones incluyen lo siguiente:

  • La asignación se asigna según las preferencias; De lo contrario, la asignación tiene como valor predeterminado el conjunto de segmentos de escritura admitido y todos los segmentos especificados del conjunto de segmentos de escritura deben ser accesibles para la CPU.

  • El controlador de minipuerto de pantalla no puede establecer las siguientes marcas de campo de bits en el Flags miembro de DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Caché

  • Protegido

  • ExistingSysMem

  • ExistingKernelSysMem

La constante D3DDDI_ID_NOTAPPLICABLE se define en D3dukmdt.h.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista
encabezado d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h)

Consulte también

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

dxgkDdiCreateAllocation

pfnAllocateCb