次の方法で共有


DXGKARGCB_ALLOCATE_ADL 構造体 (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL には、アドレス記述子リスト (ADL) を作成するために DXGKCB_ALLOCATEADL コールバック関数によって使用される情報が含まれています。

構文

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;

メンバー

[in] hAdapterMemoryObject

ADL のビルドに使用される基になる論理メモリを記述するアダプター メモリ オブジェクト。 このオブジェクトは 、DXGKCB_CREATEPHYSICALMEMORYOBJECT 経由で作成されたか、後で DXGKCB_OPENPHYSICALMEMORYOBJECT を介して開かれました。

[in] Offset

物理メモリ オブジェクトの先頭からのオフセット (バイト単位)。 この値は、PAGE_SIZEの倍数である必要があります。

[in] Size

ADL に割り当てる合計バイト数。 この値は、ADL 内のページ数が Size/PAGE_SIZE になるように、PAGE_SIZEの倍数である必要があります。

Flags

[in] Flags.RequireContiguous

ドライバーが、ページが散在するのではなく、連続したメモリ範囲を記述する ADL を要求していることを示します。 このフラグは、 hAdapterMemoryObject によって表される物理メモリ オブジェクトが DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY または DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACEとして割り当てられた場合にのみ有効です。

[in] Flags.PreferContiguous

ドライバーに、可能な場合に連続する ADL を最適に要求する方法を提供します。 DMA 再マップが有効になっている場合、ACL は論理アドレス空間の範囲を参照します。ただし、ドライバーでは、すべてのコード パスで連続した ACL を使用できない場合があります。 論理メモリの非連続 ADL は、メモリを表すために MDL と同様に別の PFN 配列の割り当てが必要になるため、コストがかかる可能性があります。 可能であれば、ドライバーは、ベース アドレスだけで ADL を表すことができることを示すために、このフラグを指定する必要があります。

[in] Flags.Reserved

予約;は 0 に設定する必要があります。

[in] Flags.Value

ビットにアクセスする別の方法。

[out] pAdl

DXGKCB_ALLOCATEADLの呼び出しが成功すると、 は、ハードウェアのプログラミングに使用できるページ アドレスの一覧を含むDXGK_ADL構造体を指します。

注釈

詳細については、「 IOMMU DMA の再マップ 」を参照してください。

要件

要件
サポートされている最小のサーバー Windows Server 2022 (WDDM 2.9)
Header d3dkmddi.h

こちらもご覧ください

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT