共用方式為


DXGKARGCB_MAP_PHYSICAL_MEMORY 結構 (d3dkmddi.h)

DXGKARGCB_MAP_PHYSICAL_MEMORY 結構包含DXGKCB_MAPPHYSICALMEMORY回呼函式用來將CPU可見虛擬位址對應至基礎實體記憶體的資訊。

語法

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;

成員

[in] hPhysicalMemoryObject

實體記憶體物件,描述要對應的基礎實體頁面。 這個物件是在 先前呼叫DXGKCB_CREATEPHYSICALMEMORYOBJECT中建立的。

[in] AccessMode

描述應該進行對應之存取模式 (使用者模式或核心模式) 的 DXGK_ACCESS_MODE 列舉值。

[in/out] Offset

做為輸入,以位元組為單位指定實體記憶體物件開頭的位移。 做為輸出,以位元組為單位,指定所要求數據所在之對應基位址開頭的位移。 如需詳細資訊,請參閱「備註」。

[in] Size

輸入時,會以位元組為單位指定對應區域的要求大小。 做為輸出,以位元組為單位指定實際的對應大小。 如需詳細資訊,請參閱「備註」。

[out] pMappedAddress

成功呼叫 DXGKCB_MAPPHYSICALMEMORY,這是基礎實體記憶體對應的指標。 如果需要四捨五入或對齊,對應記憶體範圍的開頭可能不完全等於驅動程式所要求的位移。 因此, Offset 的輸出值是指從基位址到驅動程式所要求數據的位移。 也就是說,ActualAddress = BaseAddress + Offset。

備註

位移大小 都是輸入和輸出參數。 作為輸入,這些描述呼叫端所要求的物理記憶體區域。 在輸出上,這些描述實際的對應檢視。 這是因為對應至對應實體記憶體的位址可能不完全位於要求的位移。 呼叫端所要求的實際數據會等於 pMappedAddress + Offset。 所對應的虛擬位址範圍大小將會是 Size 的輸出值,其大小可能會大於所要求的大小。

如需詳細資訊 ,請參閱 IOMMU DMA 重新對應

規格需求

需求
最低支援的伺服器 Windows Server 2022 (WDDM 2.9)
標頭 d3dkmddi.h

另請參閱

DXGK_ACCESS_MODE

DXGKCB_MAPPHYSICALMEMORY