DXGKARGCB_MAP_PHYSICAL_MEMORY struttura (d3dkmddi.h)
La struttura DXGKARGCB_MAP_PHYSICAL_MEMORY contiene le informazioni usate dalla funzione di callback DXGKCB_MAPPHYSICALMEMORY per eseguire il mapping di un indirizzo virtuale visibile dalla CPU alla memoria fisica sottostante.
Sintassi
typedef struct _DXGKARGCB_MAP_PHYSICAL_MEMORY {
[in] HANDLE hPhysicalMemoryObject;
[in] DXGK_ACCESS_MODE AccessMode;
[in/out] SIZE_T Offset;
[in] SIZE_T Size;
[out] void *pMappedAddress;
} DXGKARGCB_MAP_PHYSICAL_MEMORY;
Members
[in] hPhysicalMemoryObject
Oggetto di memoria fisica che descrive le pagine fisiche sottostanti da eseguire il mapping. Questo oggetto è stato creato in una chiamata precedente a DXGKCB_CREATEPHYSICALMEMORYOBJECT.
[in] AccessMode
Valore DXGK_ACCESS_MODE enumerazione che descrive la modalità di accesso (modalità utente o modalità kernel) per cui è necessario eseguire il mapping.
[in/out] Offset
Come input, specifica l'offset dall'inizio dell'oggetto memoria fisica, in byte. Come output, specifica l'offset dall'inizio dell'indirizzo di base mappato in cui risiedono i dati richiesti, in byte. Per ulteriori informazioni, vedere la sezione Osservazioni.
[in] Size
Come input, specifica le dimensioni richieste dell'area mappata, in byte. Come output, specifica le dimensioni mappate effettive, in byte. Per ulteriori informazioni, vedere la sezione Osservazioni.
[out] pMappedAddress
In una chiamata riuscita a DXGKCB_MAPPHYSICALMEMORY, si tratta di un puntatore al mapping di memoria fisica sottostante. L'inizio dell'intervallo di memoria mappato potrebbe non essere esattamente uguale all'offset richiesto dal driver se è necessario arrotondamento o allineamento. Di conseguenza, il valore di output di Offset fa riferimento all'offset dall'indirizzo di base ai dati richiesti dal driver. Vale a dire ActualAddress = BaseAddress + Offset.
Commenti
Offset e Dimensioni sono entrambi parametri di input e output. Come input, vengono descritte l'area della memoria fisica richiesta dal chiamante. Nell'output vengono descritte le visualizzazioni mappate effettive. Questo perché l'indirizzo mappato alla memoria fisica corrispondente potrebbe non essere esattamente all'offset richiesto. I dati effettivi richiesti dal chiamante saranno uguali a pMappedAddress + Offset. Le dimensioni dell'intervallo di indirizzi virtuali mappate saranno il valore di output di Size, che può essere maggiore della dimensione richiesta.
Per altre informazioni, vedere Remapping di IOMMU DMA .
Requisiti
Requisito | Valore |
---|---|
Server minimo supportato | Windows Server 2022 (WDDM 2.9) |
Intestazione | d3dkmddi.h |