struttura D3DDDI_ALLOCATIONINFO2 (d3dukmdt.h)
La struttura D3DDDI_ALLOCATIONINFO2 descrive un'allocazione.
Sintassi
typedef struct _D3DDDI_ALLOCATIONINFO2 {
D3DKMT_HANDLE hAllocation;
union {
HANDLE hSection;
const VOID *pSystemMem;
} D3DKMT_ALIGN64;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
union {
struct {
UINT Primary : 1;
UINT Stereo : 1;
UINT OverridePriority : 1;
#if ...
UINT Reserved : 29;
#elif
UINT Reserved : 30;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
} Flags;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
union {
UINT Priority;
D3DKMT_ALIGN64 ULONG_PTR Unused;
};
#if ...
D3DKMT_ALIGN64 ULONG_PTR Reserved[5];
#else
D3DKMT_ALIGN64 ULONG_PTR Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;
Membri
hAllocation
[out] Handle 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.
D3DKMT_ALIGN64
Unione con hSection e pSystemMem.
D3DKMT_ALIGN64.hSection
[in] Handle per un oggetto sezione valido. Usare hSection quando è impostata D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection.
D3DKMT_ALIGN64.pSystemMem
[in] Puntatore alla memoria di sistema preallocata. Usare
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
Flags.Stereo
[in] Supportato a partire da Windows 8 (WDDM 1.2). UINT che specifica se l'allocazione è un'allocazione primaria stereo. Il membro stereo
L'impostazione di questo membro equivale all'impostazione del secondo bit del membro Valore a 32 bit (0x00000002).
Flags.OverridePriority
[in] Supportato a partire da Windows 10 versione 1703 (WDDM 2.2). Eseguire l'override della priorità, come stabilito dal driver grafico in modalità utente.
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.
GpuVirtualAddress
[out] Indirizzo virtuale GPU dell'allocazione creata.
Priority
[in] Priorità dell'allocazione.
Unused
Inutilizzato.
Reserved[5]
Reserved[6]
Osservazioni
Quando il driver di visualizzazione in modalità utente imposta il flag
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 7 |
intestazione |
d3dukmdt.h |