Partilhar via


estrutura D3DKMT_CREATEALLOCATION (d3dkmthk.h)

A estrutura D3DKMT_CREATEALLOCATION descreve parâmetros para criar alocações.

Sintaxe

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

Membros

[in] hDevice

Um identificador para o dispositivo ao qual o recurso ou a alocação está associado.

[in/out] hResource

Um tipo de dados D3DKMT_HANDLE que representa um identificador de modo kernel para o recurso associado às alocações. O valor em hResource deve ser sempre zero, a menos que uma alocação seja adicionada a um recurso existente, nesse caso hResource contém o identificador de recurso.

Quando o CreateResource sinalizador de campo de bit é definido no membro do Flags, o runtime do OpenGL gera um identificador exclusivo e o passa de volta para o driver. Na saída da função D3DKMTCreateAllocation, hResource especifica o identificador que o driver deve usar nas chamadas de runtime do OpenGL subsequentes para identificar o recurso. O identificador de recurso retornado é específico do dispositivo e é válido somente quando usado com o dispositivo no qual foi criado.

[out] hGlobalShare

Um driver cliente no modo de usuário não deve compartilhar recursos usando identificadores globais. O driver deve definir do NtSecuritySharing no Flags e chamar D3DKMTShareObjects para obter um identificador NT. O uso de identificadores globais não é seguro. Qualquer processo pode adivinhar um identificador global e abrir um objeto compartilhado. Identificadores globais têm suporte apenas por motivos de compatibilidade com runtimes D3D antigos. (Quando do NtSecuritySharing não é definido, o identificador global é retornado em hGlobalShare. Nada impede que um UMD compartilhe um recurso usando um identificador global, mas os drivers não devem fazer isso.)

[in] pPrivateRuntimeData

Um ponteiro para dados privados opcionais que podem ser anexados a um recurso para fins de depuração. Esses dados são por recurso e não por alocação.

[in] PrivateRuntimeDataSize

O tamanho, em bytes, dos dados privados que pPrivateRuntimeData aponta para.

[in] pStandardAllocation

Ponteiro para uma estrutura de D3DKMT_CREATESTANDARDALLOCATION que descreve a alocação padrão a ser criada.

[in] pPrivateDriverData

Um ponteiro para um buffer que contém dados privados opcionais que o driver de miniport de exibição pode exigir para criar o recurso ou a alocação. O conteúdo do buffer normalmente vem do ICD e deve estar em um formato que o driver de miniporto de exibição pode processar.

[in/out] PrivateDriverDataSize

O tamanho, em bytes, dos dados privados que pPrivateDriverData aponta para.

[in] NumAllocations

O número de elementos na matriz que pAllocationInfo especifica, o que representa o número de alocações a serem criadas. Observe que a criação de um recurso sem alocações inicialmente associadas a ele é válida; portanto, NumAllocations pode ser definido como 0.

[in] pAllocationInfo

Uma matriz de estruturas D3DDDI_ALLOCATIONINFO que descrevem propriedades específicas para cada alocação a ser criada.

[in] pAllocationInfo2

Esse membro é reservado e deve ser definido como zero.

Este membro está disponível a partir do Windows 7.

[in] Flags

Uma estrutura D3DKMT_CREATEALLOCATIONFLAGS que identifica atributos para criar a alocação, em sinalizadores de campo de bit.

Se você definir o sinalizador CreateShared campo de bits em Flags, também deverá definir o sinalizador CreateResource campo de bits.

[in] hPrivateRuntimeResourceHandle

Uma alça opaca que você pode usar no rastreamento de eventos. Esse identificador pode ser usado para associar alocações no modo kernel a ponteiros de superfície do modo de usuário quando você analisa os logs de eventos etw (Rastreamento de Eventos para Windows).

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
cabeçalho d3dkmthk.h (inclua D3dkmthk.h)

Consulte também

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS