struttura D3DDDI_ALLOCATIONINFO (d3dukmdt.h)
La struttura D3DDDI_ALLOCATIONINFO descrive un'allocazione per WDDM v1. I client grafici in modalità utente devono invece usare D3DDDI_ALLOCATIONINFO2.
Sintassi
typedef struct _D3DDDI_ALLOCATIONINFO {
D3DKMT_HANDLE hAllocation;
const VOID *pSystemMem;
VOID *pPrivateDriverData;
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;
Membri
hAllocation
[out] Oggetto D3DKMT_HANDLE che rappresenta un handle in modalità kernel per l'allocazione. Questo handle è associato all'handle di risorse in modalità kernel (se diverso da NULL) restituito dalla funzione pfnAllocateCb del runtime Direct3D nel hKMResource membro della struttura D3DDDICB_ALLOCATE. Il driver di visualizzazione in modalità utente può usare questo handle di allocazione in modalità kernel per fare riferimento all'allocazione nel buffer dei comandi.
pSystemMem
[in] Puntatore alla memoria di sistema preallocata dal runtime Direct3D. In caso contrario, questo membro è NULL se l'allocazione consiste nell'usare la memoria video.
Se l'allocazione è in memoria di sistema, il driver di visualizzazione in modalità utente deve assegnare il buffer nel pSysMem membro della struttura D3DDDI_SURFACEINFO affinché la risorsa pSystemMem. Questo buffer viene specificato quando il runtime Direct3D chiama la funzione di CreateResource del driver di visualizzazione in modalità utente per creare risorse.
pPrivateDriverData
[in/out,opt] Puntatore al buffer che contiene dati privati facoltativi che potrebbero essere richiesti dal driver miniport di visualizzazione per creare l'allocazione. Il driver miniport di visualizzazione può anche restituire dati nel buffer. Quando il contenuto del buffer viene passato al driver miniport di visualizzazione, il contenuto deve essere in un formato che il driver di miniport di visualizzazione può elaborare.
PrivateDriverDataSize
[in] Dimensioni in byte dei dati privati.
VidPnSourceId
[in] Numero di identificazione VidPN in base zero dell'origine video presente in un percorso di una topologia di rete (VidPN) video presente se l'allocazione è per la superficie primaria. Il driver deve impostare VidPnSourceId solo per i tipi di allocazione primari e non per qualsiasi altro tipo di allocazione. Se il driver imposta VidPnSourceId per qualsiasi altro tipo di allocazione in una chiamata alla funzione pfnAllocateCb, pfnAllocateCb restituisce D3DDDI_ID_NOTAPPLICABLE.
Quando il sottosistema kernel della grafica DirectX avvia la creazione dell'allocazione per la superficie primaria condivisa, il driver miniport di visualizzazione può determinare il numero di identificazione dal VidPnSourceId membro della struttura D3DKMDDI_SHAREDPRIMARYSURFACEDATA a cui punta il membro pPrivateDriverData del DXGK_ALLOCATIONINFO struttura.
Flags
[in] Unione che contiene una struttura o un valore a 32 bit che identifica il tipo di allocazione.
Flags.Primary
[in] UINT che specifica se l'allocazione fa parte del desktop. Tale allocazione è implicitamente accessibile alla CPU. Un'allocazione primaria può essere bloccata durante la creazione o non bloccata durante la creazione.
L'impostazione di questo membro equivale all'impostazione del primo bit del membro Value a 32 bit (0x00000001).
Flags.Stereo
[in] Supportato a partire da Windows 8. UINT che specifica se l'allocazione è un'allocazione primaria stereo. Il membro stereo può essere impostato solo quando è impostato il membro primario.
L'impostazione di questo membro equivale all'impostazione del secondo bit del membro Valore a 32 bit (0x00000002).
Flags.Reserved
[in] Questo membro è riservato e deve essere impostato su zero.
Flags.Value
[in] Valore a 32 bit che identifica il tipo di allocazione.
Osservazioni
Quando il driver di visualizzazione in modalità utente imposta il flag campo di bit primario nel membro flag di di D3DDDI_ALLOCATIONINFO, alcune restrizioni si applicano alla struttura DXGK_ALLOCATIONINFO nella funzione pAllocationInfo della struttura DXGKARG_CREATEALLOCATION per l'allocazione in una chiamata al driver miniport DxgkDdiCreateAllocation funzione. Queste restrizioni includono quanto segue:
L'allocazione viene allocata in base alle preferenze; in caso contrario, l'allocazione viene impostata per impostazione predefinita sul set di segmenti di scrittura supportati e tutti i segmenti specificati nel set di segmenti di scrittura devono essere accessibili dalla CPU.
Il driver di miniport di visualizzazione non può impostare i flag di campo di bit seguenti nel Flag membro di DXGK_ALLOCATIONINFO:
PermanentSysMem
Memorizzati nella cache
Protetto
ExistingSysMem
ExistingKernelSysMem
La costante D3DDDI_ID_NOTAPPLICABLE è definita in D3dukmdt.h.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista |
intestazione | d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |