次の方法で共有


DXGKARGCB_MAP_PHYSICAL_MEMORY 構造体 (d3dkmddi.h)

DXGKARGCB_MAP_PHYSICAL_MEMORY構造体には、CPU に表示される仮想アドレスを基になる物理メモリにマップするためにDXGKCB_MAPPHYSICALMEMORYコールバック関数によって使用される情報が含まれています。

構文

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)
Header d3dkmddi.h

こちらもご覧ください

DXGK_ACCESS_MODE

DXGKCB_MAPPHYSICALMEMORY