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 |