IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG 구조체(wdm.h)

IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG 구조에는 논리 할당자를 구성하는 데 필요한 정보가 포함되어 있습니다.

이 구조체는 IOMMU_DOMAIN_CREATE_EX 생성된 [IOMMU_DMA_DOMAIN]에 연결된 논리 할당자를 만드는 데 사용됩니다.

구문

typedef struct _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG {
  IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE LogicalAllocatorType;
  union {
    struct {
      ULONG AddressWidth;
    } BuddyAllocatorConfig;
  };
} IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG, *PIOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG;

멤버

LogicalAllocatorType

만들 논리적 할당자의 형식을 나타내는 IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE 값입니다.

BuddyAllocatorConfig

HAL Buddy Allocator와 관련된 구성 정보를 제공합니다.

BuddyAllocatorConfig.AddressWidth

만들 할당자의 주소 너비를 제공합니다. 32비트 운영 체제는 32비트 너비로 제한되고 64비트 운영 체제는 63비트 너비로 제한됩니다. 도메인을 만들 때 주소 너비는 연결될 것으로 예상되는 디바이스의 최대 주소 너비에 해당해야 합니다.

설명

IOMMU_DOMAIN_CREATE_EX 호출자는 생성되는 도메인에 논리 할당자를 연결하도록 선택할 수 있습니다.

이러한 도메인과 상호 작용할 때 호출자는 이전 매핑을 추적할 필요가 없습니다. 대신 논리 할당자는 물리적 페이지를 소유 도메인에 매핑할 때 사용할 논리 주소를 결정해야 합니다. 논리적 할당자는 논리적 주소 충돌이 발생하지 않도록 상태를 유지 관리해야 합니다.

현재 사용할 수 있는 유일한 논리적 할당자 유형은 버디 할당자입니다. 이 할당자는 낮은 논리 주소를 선호하며 4KB 이상에서 두 경계의 전원에 논리 주소를 할당합니다. 할당자는 무료 주소 조회의 성능을 향상시키기 위해 무료 논리 주소 값의 캐시로 보강됩니다.

Buddy Allocator는 명시적 주소 할당을 허용하지 않습니다. BuddyAllocator를 사용하여 만든 [ IOMMU_DMA_DOMAIN *에 제공된 명시적 주소로 IOMMU_MAP_IDENTITY_RANGE_EX 또는 IOMMU_MAP_LOGICAL_RANGE_EX 호출하지 못합니다.

요구 사항

요구 사항
지원되는 최소 서버 Windows Server 2022
머리글 wdm.h(Wdm.h 포함)

추가 정보

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE