Compartilhar via


estrutura D3DDDI_ALLOCATIONINFO2 (d3dukmdt.h)

A estrutura D3DDDI_ALLOCATIONINFO2 descreve uma alocação.

Sintaxe

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  VOID                                  *pPrivateDriverData;
  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;

Membros

hAllocation

[out] Um identificador D3DKMT_HANDLE que representa um identificador de 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.

D3DKMT_ALIGN64

União com hSection e pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Um identificador para um objeto de seção válido. Use hSection quando D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection estiver definido.

D3DKMT_ALIGN64.pSystemMem

[in] Um ponteiro para a memória do sistema pré-alocada. Use pSystemMem quando D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection não estiver definido.

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 (WDDM 1.2). 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.OverridePriority

[in] Com suporte a partir do Windows 10 versão 1703 (WDDM 2.2). Substitua a prioridade, conforme estabelecido pelo driver de gráficos no modo de usuário.

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.

GpuVirtualAddress

[out] O endereço virtual gpu da alocação criada.

Priority

[in] A prioridade da alocação.

Unused

Utilizadas.

Reserved[5]

Reserved[6]

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 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 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 7
cabeçalho d3dukmdt.h

Consulte também

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb