Condividi tramite


struttura DXGKARGCB_ALLOCATE_ADL (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL contiene le informazioni utilizzate dalla funzione di callback DXGKCB_ALLOCATEADL per creare un elenco di descrittori di indirizzi (ADL).

Sintassi

typedef struct _DXGKARGCB_ALLOCATE_ADL {
  [in]  HANDLE   hAdapterMemoryObject;
  [in]  SIZE_T   Offset;
  [in]  SIZE_T   Size;
  union {
    struct {
      UINT32 RequireContiguous : 1;
      UINT32 PreferContiguous : 1;
      UINT32 Reserved : 30;
    };
          UINT32 Value;
  } Flags;
  [out] DXGK_ADL *pAdl;
} DXGKARGCB_ALLOCATE_ADL;

Members

[in] hAdapterMemoryObject

Oggetto memoria adapter che descrive la memoria logica sottostante usata per compilare l'ADL. Questo oggetto è stato creato tramite DXGKCB_CREATEPHYSICALMEMORYOBJECT o successivamente aperto tramite DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

Offset, in byte, dall'inizio dell'oggetto memoria fisica. Questo valore deve essere un multiplo di PAGE_SIZE.

[in] Size

Numero totale di byte da allocare per ADL. Questo valore deve essere un multiplo di PAGE_SIZE, in modo che il numero di pagine in ADL sia Size/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Indica che il driver richiede un adL che descrive un intervallo contiguo di memoria, anziché pagine a dispersione. Questo flag è valido solo se l'oggetto memoria fisica rappresentato da hAdapterMemoryObject è stato allocato come DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY o DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Fornisce al driver un modo per richiedere in modo ottimale un ADL contiguo, quando possibile. Quando il mapping di DMA è abilitato, adls farà riferimento a intervalli di spazio di indirizzi logici; Tuttavia, i driver potrebbero non essere in grado di usare ADLs contigui in tutti i percorsi di codice. Gli ADLs non contigui per la memoria logica possono diventare costosi perché richiedono l'allocazione di una matrice PFN separata, simile a un MDL, per rappresentare la memoria. Quando possibile, il driver deve specificare questo flag per indicare che un ADL può essere rappresentato solo con l'indirizzo di base.

[in] Flags.Reserved

Riservati; deve essere impostato su zero.

[in] Flags.Value

Un modo alternativo per accedere ai bit.

[out] pAdl

In una chiamata a DXGKCB_ALLOCATEADL, punta alla struttura DXGK_ADL con un elenco di indirizzi di pagina che possono essere usati per programmare l'hardware.

Commenti

Per altre informazioni, vedere Il mapping DMA di IOMMU .

Requisiti

Requisito Valore
Server minimo supportato Windows Server 2022 (WDDM 2.9)
Intestazione d3dkmddi.h

Vedi anche

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT