Share via


estructura D3DDDI_ALLOCATIONINFO2 (d3dukmdt.h)

La estructura D3DDDI_ALLOCATIONINFO2 describe una asignación.

Sintaxis

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

Miembros

hAllocation

[out] Identificador 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 la función pfnAllocateCb del entorno de ejecución de Direct3D devuelve en el miembro hKMResource de la estructura D3DDDICB_ALLOCATE . El controlador de pantalla 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.

D3DKMT_ALIGN64

Unión con hSection y pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Identificador para un objeto de sección válido. Use hSection cuando se establece D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection .

D3DKMT_ALIGN64.pSystemMem

[in] Puntero a la memoria del sistema asignada previamente. Use pSystemMem cuando no se establezca D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection .

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

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 principal y no para ningún otro tipo de asignación. Si el controlador establece VidPnSourceId para cualquier otro tipo de asignación en una llamada a la función pfnAllocateCb , pfnAllocateCb devuelve D3DDDI_ID_NOTAPPLICABLE.

Cuando el subsistema del kernel de 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 miembro VidPnSourceId de la estructura D3DKMDDI_SHAREDPRIMARYSURFACEDATA a la que apunta el miembro pPrivateDriverData 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 (WDDM 1.2). 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 .

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

Flags.OverridePriority

[in] Se admite a partir de Windows 10 versión 1703 (WDDM 2.2). Invalide la prioridad, según lo establecido por el controlador de gráficos en modo de usuario.

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.

GpuVirtualAddress

[out] Dirección virtual de GPU de la asignación creada.

Priority

[in] Prioridad de la asignación.

Unused

Sin usar.

Reserved[5]

Reserved[6]

Comentarios

Cuando el controlador de pantalla en modo de usuario establece la marca de campo de bits principal en el miembro Flags de D3DDDI_ALLOCATIONINFO, se aplican ciertas restricciones a la estructura de DXGK_ALLOCATIONINFO en el miembro pAllocationInfo de la estructura DXGKARG_CREATEALLOCATION para la asignación en una llamada a la función DxgkDdiCreateAllocation del controlador de minipuerto de pantalla. Entre estas restricciones se incluyes las siguientes:

  • 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 miembro Flags de DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Almacenado en memoria caché

  • Protegido

  • ExistingSysMem

  • ExistingKernelSysMem

La constante D3DDDI_ID_NOTAPPLICABLE se define en D3dukmdt.h.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7
Encabezado d3dukmdt.h

Consulte también

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb