다음을 통해 공유


DXGKARGCB_ALLOCATE_ADL 구조체(d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADLDXGKCB_ALLOCATEADL 콜백 함수가 ADL(주소 설명자 목록)을 만드는 데 사용하는 정보를 포함합니다.

구문

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 다시 매핑을 사용하도록 설정하면 ADL은 논리 주소 공간의 범위를 참조합니다. 그러나 드라이버는 모든 코드 경로에서 연속 ADL을 사용하지 못할 수 있습니다. 논리 메모리에 대한 인접하지 않은 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)
머리글 d3dkmddi.h

추가 정보

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT