Condividi tramite


struttura D3DKMT_CREATEALLOCATION (d3dkmthk.h)

La struttura D3DKMT_CREATEALLOCATION descrive i parametri per la creazione di allocazioni.

Sintassi

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;

Membri

[in] hDevice

Handle per il dispositivo a cui è associata la risorsa o l'allocazione.

[in/out] hResource

Tipo di dati D3DKMT_HANDLE che rappresenta un handle in modalità kernel per la risorsa associata alle allocazioni. Il valore in hResource deve essere sempre zero a meno che non venga aggiunta un'allocazione a una risorsa esistente, nel qual caso hResource contiene l'handle di risorsa.

Quando il flag CreateResource campo di bit viene impostato nel membro Flag, il runtime OpenGL genera un handle univoco e lo passa al driver. Nell'output della funzione D3DKMTCreateAllocation hResource specifica l'handle che il driver deve usare nelle successive chiamate di runtime OpenGL per identificare la risorsa. L'handle di risorsa restituito è specifico del dispositivo ed è valido solo quando viene usato con il dispositivo in cui è stato creato.

[out] hGlobalShare

Un driver client in modalità utente non deve condividere le risorse usando handle globali. Il driver deve impostare NtSecuritySharing in Flags e chiamare D3DKMTShareObjects per ottenere un handle NT. L'uso di handle globali non è sicuro. Qualsiasi processo può indovinare un handle globale e aprire un oggetto condiviso. Gli handle globali sono supportati solo per motivi di compatibilità con i runtime D3D precedenti. Quando NtSecuritySharing non è impostato, l'handle globale viene restituito in hGlobalShare. Nulla impedisce a un UMD di condividere una risorsa usando un handle globale, ma i driver non dovrebbero farlo.

[in] pPrivateRuntimeData

Puntatore a dati privati facoltativi che possono essere collegati a una risorsa a scopo di debug. Questi dati sono per risorsa e non per allocazione.

[in] PrivateRuntimeDataSize

Dimensioni, in byte, dei dati privati a cui pPrivateRuntimeData punta.

[in] pStandardAllocation

Puntatore a una struttura D3DKMT_CREATESTANDARDALLOCATION che descrive l'allocazione standard da creare.

[in] pPrivateDriverData

Puntatore a un buffer che contiene dati privati facoltativi che il driver di miniport di visualizzazione potrebbe richiedere di creare la risorsa o l'allocazione. Il contenuto del buffer proviene in genere dalla progettazione immagine e configurazione e deve essere in un formato che il driver miniport di visualizzazione può elaborare.

[in/out] PrivateDriverDataSize

Dimensioni, in byte, dei dati privati a cui pPrivateDriverData punta.

[in] NumAllocations

Numero di elementi nella matrice che pAllocationInfo, che rappresenta il numero di allocazioni da creare. Si noti che la creazione di una risorsa senza allocazioni inizialmente associate è valida; pertanto, NumAllocations può essere impostato su 0.

[in] pAllocationInfo

Matrice di strutture D3DDDI_ALLOCATIONINFO che descrivono proprietà specifiche per ogni allocazione da creare.

[in] pAllocationInfo2

Questo membro è riservato e deve essere impostato su zero.

Questo membro è disponibile a partire da Windows 7.

[in] Flags

Struttura D3DKMT_CREATEALLOCATIONFLAGS che identifica gli attributi per la creazione dell'allocazione, in flag di campo di bit.

Se si imposta il flag createshared in Flag, è necessario impostare anche il flag CreateResource campo di bit.

[in] hPrivateRuntimeResourceHandle

Handle opaco che è possibile usare nella traccia eventi. Questo handle può essere usato per associare le allocazioni in modalità kernel ai puntatori di superficie in modalità utente quando si analizzano i registri eventi di Event Tracing for Windows (ETW).

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
intestazione d3dkmthk.h (include D3dkmthk.h)

Vedere anche

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS