Condividi tramite


DXGK_SEGMENTDESCRIPTOR struttura (d3dkmddi.h)

La struttura DXGK_SEGMENTDESCRIPTOR contiene informazioni su un segmento supportato dal driver.

Sintassi

typedef struct _DXGK_SEGMENTDESCRIPTOR {
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
  [out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;

Members

[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.

[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.

Requisiti

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

Vedi anche

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_ALLOCATIONINFO

DXGK_QUERYSEGMENTIN

DXGK_QUERYSEGMENTOUT

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo

pfnLockCb