다음을 통해 공유


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의 페이지 수가 크기 /PAGE_SIZEPAGE_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