DXGK_ALLOCATIONINFO struttura (d3dkmddi.h)

La struttura DXGK_ALLOCATIONINFO descrive i parametri per la creazione di un'allocazione.

Sintassi

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  UINT                       Alignment;
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  UINT                       SupportedReadSegmentSet;
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

Members

pPrivateDriverData

[in] Puntatore a un blocco di dati privati. Questi dati sono per ogni allocazione e sono distinti dal membro pPrivateDriverData nella struttura DXGKARG_CREATEALLOCATION . Il driver di visualizzazione in modalità utente potrebbe passare questi dati al driver miniport visualizzato. Tuttavia, se il sottosistema kernel grafico Microsoft DirectX passa questi dati per descrivere la superficie primaria condivisa o altra superficie bloccabile, i dati vengono passati come primo elemento della matrice nel membro pAllocationInfo di DXGKARG_CREATEALLOCATION.

PrivateDriverDataSize

[in] Dimensioni, in byte, del blocco di dati privati in pPrivateDriverData.

Alignment

[out] Allineamento richiesto, in byte, per l'allocazione.

Size

[out] Dimensioni, in byte, necessarie per l'allocazione. Il valore delle dimensioni viene espanso in più dimensioni della pagina host nativa, ad esempio 4 KB nell'architettura x86. Il driver miniport visualizzato specifica le dimensioni di allocazione alla gestione memoria video.

PitchAlignedSize

[out] Dimensioni, in byte, dell'allocazione quando si trova in un segmento allineato al passo, specificato dal flag di campo bit PitchAlignment nel membro Flags della struttura DXGK_SEGMENTDESCRIPTOR per il segmento. Se l'allocazione non è supportata in un segmento allineato a passo (le unità di elaborazione grafica [GPU] comunemente non supportano questo tipo di segmento), il driver deve impostare il valore in PitchAlignedSize su zero. Se il driver specifica un valore diverso da zero in PitchAlignedSize, il valore deve essere maggiore o uguale al valore nel membro Size .

HintedBank

[out] Struttura DXGK_SEGMENTBANKPREFERENCE che indica le preferenze di ordinamento bancario richieste dal driver miniport visualizzato che il gestore memoria video usa per l'allocazione. Se questo membro viene specificato, il gestore della memoria video usa informazioni bancarie sul segmento più preferito, specificato dal membro SegmentId0 della struttura di DXGK_SEGMENTPREFERENCE specificata dal membro PreferredSegment .

PreferredSegment

[out] Struttura DXGK_SEGMENTPREFERENCE che indica gli identificatori di segmenti preferiti che il driver miniport visualizzato richiede che la gestione memoria video usi per la pagina nell'allocazione.

SupportedReadSegmentSet

[out] Identificatori di segmento che il driver miniport visualizzato può impostare nel membro PreferredSegment per le operazioni di lettura. I segmenti che questi identificatori indicano sono segmenti che il driver miniport visualizzato richiede che la gestione memoria video usi per la pagina nell'allocazione per le operazioni di lettura, indipendentemente dalle prestazioni. L'impostazione di bit 0 indica che il primo segmento è supportato, l'impostazione bit 1 indica che il secondo segmento è supportato e così via.

Il driver miniport visualizzato può impostare le preferenze solo per i segmenti supportati per le operazioni di lettura. Gestione memoria video asserisce se il driver tenta di impostare le preferenze per i segmenti non supportati nel membro PreferredSegment .

SupportedWriteSegmentSet

[out] Identificatori di segmento che il driver miniport visualizzato può impostare nel membro PreferredSegment per le operazioni di scrittura. I segmenti che questi identificatori indicano sono segmenti che il driver miniport visualizzato richiede che la gestione memoria video usi per la pagina nell'allocazione per le operazioni di scrittura, indipendentemente dalle prestazioni. L'impostazione di bit 0 indica che il primo segmento è supportato, l'impostazione bit 1 indica che il secondo segmento è supportato e così via.

Il driver miniport visualizzato può impostare le preferenze solo per i segmenti supportati per le operazioni di scrittura. Gestione memoria video asserisce se il driver tenta di impostare le preferenze per i segmenti non supportati nel membro PreferredSegment .

EvictionSegmentSet

[out] Identificatori di segmenti che possono essere usati per la rimozione. L'impostazione di bit 0 indica che il primo segmento può essere usato per la rimozione, impostando bit 1 indica che il secondo segmento può essere usato per la rimozione e così via.

È possibile specificare solo segmenti di apertura da questo membro. Se il driver specifica segmenti validi da usare per la rimozione, la gestione memoria video tenta di allocare risorse nei segmenti di apertura per accelerare il processo di rimozione. Se il driver specifica 0, la gestione memoria video chiama il driver per trasferire il contenuto di un'allocazione direttamente alla memoria di sistema bloccata a pagina senza eseguire il mapping delle pagine sottostanti tramite un segmento di apertura.

MaximumRenamingListLength

[out] Lunghezza massima dell'elenco di ridenominazione per l'allocazione. Per altre informazioni sull'elenco di ridenominazione, vedere Richiesta di rinominare un'allocazione.

Supporto per questo membro avviato con Windows 10 e WDDM v2.

PhysicalAdapterIndex

[out] Indice dell'adattatore fisico.

Supporto per questo membro avviato con Windows 10 e WDDM v2.

hAllocation

[out] Handle per l'allocazione. Il driver miniport visualizzato deve impostare questo membro su un valore che può usare per fare riferimento alla struttura di rilevamento privato per l'allocazione.

Flags

[out] Struttura DXGK_ALLOCATIONINFOFLAGS che identifica le proprietà per un'allocazione in flag di campo a bit. Queste proprietà indicano il tipo di allocazione da creare. Il driver miniport visualizzato specifica questi flag per la gestione memoria video. I driver destinati a qualsiasi versione WDDM precedente a WDDM 2.0 devono usare Flag; driver destinati a qualsiasi versione >WDDM = WDDM 2.0 deve usare FlagsWddm2.

FlagsWddm2

[out] Struttura DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 che identifica le proprietà per un'allocazione in flag di campo a bit. Queste proprietà indicano il tipo di allocazione da creare. Il driver miniport visualizzato specifica questi flag per la gestione memoria video. I driver destinati a qualsiasi versione WDDM = WDDM 2.0 devono usare FlagsWddm2. I driver destinati a qualsiasi versione >WDDM precedente a WDDM 2.0 devono usare Flag.

pAllocationUsageHint

[out] Puntatore a una struttura DXGK_ALLOCATIONUSAGEHINT usata da Gestione memoria per determinare come usare l'allocazione.

AllocationPriority

[out] Valore UINT che specifica il livello di priorità iniziale dell'allocazione.

Il driver determina il livello di priorità appropriato per ogni allocazione. Per altre informazioni sui livelli di priorità, vedere la sezione Osservazioni della funzione pfnSetPriorityCb . Se il livello di priorità per le allocazioni non è un problema per il driver, il driver deve impostare tutti i livelli di priorità su D3DDDI_ALLOCATIONPRIORITY_NORMAL. Si noti che 0 è una priorità di allocazione iniziale non valida.

Flags2

[out] Struttura DXGK_ALLOCATIONINFOFLAGS2 che contiene proprietà aggiuntive per un'allocazione. Supportato a partire da Windows 11 (WDDM 3.0).

Commenti

Con WDDM v2, la struttura DXGK_ALLOCATIONINFO è stata modificata in modo che il set di segmento di lettura e scrittura non sia più differenziato. Durante la creazione della superficie la gestione memoria video ignorerà il valore SupportedReadSegmentSet e userà solo il set di segmenti fornito da SupportedWriteSegmentSet. I driver devono assicurarsi che questo valore rappresenti in modo accurato il set di segmento che può essere usato dall'allocazione per lo scopo previsto.

Ignorando il set di segmento di lettura supportato non significa che non è più supportato, ma semplicemente che non dovrebbe più essere presente una differenza tra questi set e la gestione memoria video sarà consentito scegliere un segmento appropriato per qualsiasi allocazione da un singolo set di segmento.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dkmddi.h (include D3dkmddi.h)

Vedi anche

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb