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) |