DXGK_SEGMENTDESCRIPTOR3 struttura (d3dkmddi.h)

La struttura DXGK_SEGMENTDESCRIPTOR3 contiene informazioni su un segmento supportato dal driver composto da memoria riservata sia dal BIOS (che viene eliminato durante una transizione a uno stato a bassa potenza) che dalla memoria riservata del driver.

Sintassi

typedef struct _DXGK_SEGMENTDESCRIPTOR3 {
  [out] DXGK_SEGMENTFLAGS Flags;
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
        SIZE_T            SystemMemoryEndAddress;
        SIZE_T            Reserved;
} DXGK_SEGMENTDESCRIPTOR3;

Members

[out] Flags

Struttura DXGK_SEGMENTFLAGS che identifica le proprietà, in flag di campo a bit, per il segmento.

Si noti che per un segmento di apertura di tipo AGP, il driver deve impostare esclusivamente il membro Agp della struttura nell'unione che DXGK_SEGMENTFLAGS contiene. Anche se il segmento di apertura di tipo AGP è un'apertura ed è accessibile alla CPU, se vengono impostati altri membri, l'adattatore non riesce a inizializzare.

[out] BaseAddress

Indirizzo di base del segmento, come determinato dall'unità di elaborazione grafica (GPU). L'indirizzo fisico di un'allocazione che la gestione memoria video impaginata nel segmento viene assegnata a un indirizzo GPU offset dall'indirizzo di base specificato da BaseAddress .

La gestione memoria video ignora l'indirizzo di base dei segmenti di apertura di tipo AGP (dove il flag di campo a bit Agp viene specificato nel membro Flags ) e usa invece l'indirizzo fisico effettivo del segmento all'interno dell'apertura AGP, come determinato sul bus in cui si trova la GPU. In questa situazione, il driver può usare gli indirizzi generati direttamente dalla gestione memoria video per l'allocazione senza richiedere la traduzione.

[out] CpuTranslatedAddress

Indirizzo di base del segmento, rispetto al bus connesso alla GPU. Ad esempio, quando la GPU è connessa sul bus PCI, CpuTranslatedAddress è l'indirizzo di base dell'intervallo utilizzabile specificato da un registro degli indirizzi di base PCI (BAR). Il driver specifica questo indirizzo solo se specifica un segmento accessibile dalla CPU impostando il flag di campo a bit di CpuVisible nel membro Flags .

Questo membro viene ignorato per i segmenti di apertura, incluso il segmento di apertura di tipo AGP. L'unica eccezione si verifica quando il driver di visualizzazione in modalità utente non ha configurato un indirizzo virtuale alternativo per un'allocazione primaria, ovvero quando il driver non ha impostato UseAlternateVA nel membro Flag della struttura D3DDDICB_LOCKFLAGS durante una chiamata alla funzione pfnLockCb .

Prima che la gestione memoria video esegue il mapping di un indirizzo virtuale all'intervallo fisico, la gestione memoria video converte questo indirizzo fisico in base alla visualizzazione CPU del bus e informa il driver sull'operazione in modo che il driver possa configurare un'apertura per accedere al contenuto del segmento nella posizione specificata.

[out] Size

Dimensioni, in byte, del segmento. Queste dimensioni devono essere un multiplo delle dimensioni della pagina host nativa, ad esempio 4 KB nell'architettura x86.

Per i segmenti di apertura di tipo AGP (dove viene specificato il flag di campo a bit Agp nel membro Flags ), la gestione memoria video alloca il più possibile spazio di apertura, in modo che questo membro venga ignorato.

[out] NbOfBanks

Numero di banche nel segmento, se viene usato il sistema bancario, ovvero se il flag di campo bit useBanking è impostato nel membro Flags .

[out] pBankRangeTable

Matrice di valori che indica gli intervalli che delimitano ogni banca nel segmento. Il driver specifica questa matrice solo se imposta anche il flag di campo bit UseBanking nel membro Flags .

La matrice specifica gli indirizzi finali della prima banca tramite la banca NbOfBanksth, ovvero gli offset finali nel segmento per ogni banca. Tenere presente quanto segue:

  • Le banche sono contigue.

  • La prima banca inizia a offset zero del segmento.

  • L'ultima banca termina alla fine del segmento, quindi il driver non è necessario specificare l'indirizzo finale dell'ultima banca.

[out] CommitLimit

Numero massimo di byte che possono essere sottoposti a commit nel segmento. Per un segmento di memoria, il limite di commit è sempre uguale alla dimensione del segmento, specificato nel membro Size . Per un segmento di apertura, il driver può limitare la quantità di memoria che può essere eseguita nel segmento nei sistemi con piccole quantità di memoria fisica.

SystemMemoryEndAddress

Per i segmenti parzialmente costituiti dalla memoria di sistema, tutte le allocazioni che iniziano dopo che questo indirizzo viene rimosso in una transizione a uno stato di ibernazione. Le allocazioni che esistono interamente nella memoria di sistema, in cui l'indirizzo del segmento è minore o uguale a SystemMemoryEndAddress, non vengono rimossi in questa transizione.

Il driver miniport di visualizzazione deve impostare questo membro su un valore non NULL se il segmento viene parzialmente mantenuto in una transizione a uno stato di ibernazione, nel qual caso il membro ParzialmentePreservedDuringHibernate nella struttura DXGK_SEGMENTFLAGS deve essere impostato.

La memoria riservata del driver viene eseguita dall'indirizzo del segmento 0 tramite SystemMemoryEndAddress, inclusivo. La memoria riservata del BIOS viene eseguita da (SystemMemoryEndAddress+1) alla fine del segmento.

Reserved

Questo membro è riservato e deve essere impostato su zero.

Commenti

Questa struttura viene usata da una chiamata di funzione WDDM 1.2 o successiva in modalità kernel per restituire informazioni sui segmenti di memoria in risposta a una chiamata di funzione DxgkDdiQueryAdapterInfo in cui il sottosistema grafico specifica il valore DXGKQAITYPE_QUERYSEGMENT3 nel membro Typedella struttura DXGKARG_QUERYADAPTERINFO.

Questa struttura è puntata dal membro pSegmentDescriptor della struttura DXGK_QUERYSEGMENTOUT3 .

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Server minimo supportato Windows Server 2012
Intestazione d3dkmddi.h

Vedi anche

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_QUERYSEGMENTOUT3

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo