Compartilhar via


estrutura D3DDDI_ALLOCATIONINFO (d3dukmdt.h)

A estrutura D3DDDI_ALLOCATIONINFO descreve uma alocação para o WDDM v1. Em vez disso, os clientes de elementos gráficos no modo de usuário devem usar D3DDDI_ALLOCATIONINFO2 .

Sintaxe

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  void                           D3DKMT_PTR(
    const VOID *unnamedParam1,
    pSystemMem unnamedParam2
  );
  void                           D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  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;

Membros

hAllocation

[out] Um D3DKMT_HANDLE que representa um identificador do modo kernel para a alocação. Esse identificador está associado ao identificador de recurso do modo kernel (se não NULL) que a função pfnAllocateCb do runtime direct3D retorna no membro hKMResource da estrutura D3DDDICB_ALLOCATE . O driver de exibição do modo de usuário pode usar esse identificador de alocação no modo kernel para fazer referência à alocação no buffer de comando.

void D3DKMT_PTR( const VOID *unnamedParam1, pSystemMem unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

[in] Tamanho em bytes dos dados privados.

VidPnSourceId

[in] O número de identificação VidPN baseado em zero da origem do vídeo presente em um caminho de uma topologia VidPN (rede presente em vídeo) se a alocação for para a superfície primária. O driver deve definir VidPnSourceId apenas para tipos de alocação primária e não para qualquer outro tipo de alocação. Se o driver definir VidPnSourceId para qualquer outro tipo de alocação em uma chamada para a função pfnAllocateCb , pfnAllocateCb retornará D3DDDI_ID_NOTAPPLICABLE.

Quando o subsistema de kernel de elementos gráficos DirectX inicia a criação da alocação para a superfície primária compartilhada, o driver de miniporto de exibição pode determinar o número de identificação do membro VidPnSourceId da estrutura de D3DKMDDI_SHAREDPRIMARYSURFACEDATA para a qual o membro pPrivateDriverData do DXGK_ALLOCATIONINFO estrutura aponta.

Flags

[in] Uma união que contém uma estrutura ou um valor de 32 bits que identifica o tipo de alocação.

Flags.Primary

[in] Um UINT que especifica se a alocação faz parte da área de trabalho. Essa alocação é implicitamente acessível à CPU. Uma alocação primária pode ser fixada na criação ou não fixada na criação.

Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).

Flags.Stereo

[in] Com suporte a partir de Windows 8. Um UINT que especifica se a alocação é uma alocação primária estéreo. O membro Stereo só pode ser definido quando o membro Primário está definido.

Definir esse membro é equivalente a definir o segundo bit do membro Value de 32 bits (0x00000002).

Flags.Reserved

[in] Esse membro é reservado e deve ser definido como zero.

Flags.Value

[in] Um valor de 32 bits que identifica o tipo de alocação.

Comentários

Quando o driver de exibição do modo de usuário define o sinalizador de campo de bit Primário no membro Flags do D3DDDI_ALLOCATIONINFO, determinadas restrições se aplicam à estrutura DXGK_ALLOCATIONINFO no membro pAllocationInfo da estrutura DXGKARG_CREATEALLOCATION para a alocação em uma chamada para a função DxgkDdiCreateAllocation do driver de miniporto de exibição. Essas restrições incluem o seguinte:

  • A alocação é alocada de acordo com as preferências; caso contrário, a alocação usa como padrão o conjunto de segmentos de gravação com suporte e todos os segmentos especificados no conjunto de segmentos de gravação devem ser acessíveis à CPU.

  • O driver de miniporto de exibição não pode definir os seguintes sinalizadores de campo de bit no membro Flags do DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Armazenado em cache

  • Protegido

  • ExistingSysMem

  • ExistingKernelSysMem

A constante D3DDDI_ID_NOTAPPLICABLE é definida em D3dukmdt.h.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Cabeçalho d3dukmdt.h (inclua D3dumddi.h, D3dkmddi.h)

Confira também

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb