Partilhar via


estrutura D3DDDI_ALLOCATIONINFO (d3dukmdt.h)

A estrutura D3DDDI_ALLOCATIONINFO descreve uma alocação para 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;
  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;

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 de pfnAllocateCb do runtime do Direct3D retorna no hKMResource membro 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 comandos.

pSystemMem

[in] Um ponteiro para a memória do sistema que o runtime do Direct3D preallocou. Caso contrário, esse membro será NULL se a alocação for usar memória de vídeo.

Se a alocação estiver na memória do sistema, o driver de exibição no modo de usuário deverá atribuir o buffer no membro pSysMem da estrutura D3DDDI_SURFACEINFO para que o recurso pSystemMem. Esse buffer é especificado quando o runtime do Direct3D chama a função CreateResource do driver de exibição do modo de usuário para criar recursos.

pPrivateDriverData

[entrada/saída,opt] Um ponteiro para o buffer que contém dados privados opcionais que podem ser exigidos pelo driver de miniporto de exibição para criar a alocação. O driver de miniporto de exibição também pode retornar dados no buffer. Quando o conteúdo do buffer é passado para o driver de miniporto de exibição, o conteúdo deve estar em um formato que o driver de miniporto de exibição pode processar.

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 de 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 D3DKMDDI_SHAREDPRIMARYSURFACEDATA à qual o pPrivateDriverData membro da estrutura DXGK_ALLOCATIONINFO 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 do Windows 8. Um UINT que especifica se a alocação é uma alocação primária estéreo. O membro Estéreo pode ser definido somente quando o membro de Primário do é definido.

Definir esse membro é equivalente a definir o segundo bit do membro de valor 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.

Observações

Quando o driver de exibição do modo de usuário define o sinalizador de campo de bits primário do no Flags membro 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 DxgkDdiCreateAllocationdo 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 padrão para 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 Flags membro do DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Cache

  • Protegido

  • ExistingSysMem

  • ExistingKernelSysMem

A constante D3DDDI_ID_NOTAPPLICABLE é definida em D3dukmdt.h.

Requisitos

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

Consulte também

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb