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 D3DKMT_PTR(
VOID *unnamedParam1,
pPrivateDriverData unnamedParam2
);
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;
Members
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 non NULL) restituito dalla funzione pfnAllocateCb del runtime Direct3D nel membro hKMResource 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 pSystemMem quando D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection non è impostato.
void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)
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) presente in video 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 grafico DirectX avvia la creazione dell'allocazione per la superficie primaria condivisa, il driver miniport di visualizzazione può determinare il numero di identificazione dal membro VidPnSourceId della struttura D3DKMDDI_SHAREDPRIMARYSURFACEDATA a cui punta il membro pPrivateDriverData della struttura DXGK_ALLOCATIONINFO .
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 è accessibile in modo implicito alla CPU. Un'allocazione primaria può essere bloccata durante la creazione o non bloccata al momento della 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 (WDDM 1.2). 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 Value 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
Non utilizzato.
Reserved[5]
Reserved[6]
Commenti
Quando il driver di visualizzazione in modalità utente imposta il flag campo di bit primario nel membro Flags di D3DDDI_ALLOCATIONINFO, alcune restrizioni si applicano alla struttura DXGK_ALLOCATIONINFO nel membro pAllocationInfo della struttura DXGKARG_CREATEALLOCATION per l'allocazione in una chiamata alla funzione DxgkDdiCreateAllocation del driver miniport. Le restrizioni possibili sono le seguenti:
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 miniport di visualizzazione non può impostare i flag di campo di bit seguenti nel membro Flags di DXGK_ALLOCATIONINFO:
PermanentSysMem
Richieste nella cache
Protetta
ExistingSysMem
ExistingKernelSysMem
La costante D3DDDI_ID_NOTAPPLICABLE è definita in D3dukmdt.h.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 |
Intestazione | d3dukmdt.h |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per