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