IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG 構造体 (wdm.h)
IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG構造体には、論理アロケーターを構成するために必要な情報が含まれています。
この構造体は、作成された [ IOMMU_DMA_DOMAIN ] にアタッチされた論理アロケーターを作成するために、IOMMU_DOMAIN_CREATE_EXによって使用されます。
構文
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 バディ アロケーターに固有の構成情報を提供します。
BuddyAllocatorConfig.AddressWidth
作成するアロケーターのアドレス幅を指定します。 32 ビット オペレーティング システムの幅は 32 ビットに制限され、64 ビット オペレーティング システムの幅は 63 ビットに制限されます。 ドメインを作成する場合、アドレス幅は、接続するデバイスの最大アドレス幅に対応している必要があります。
注釈
IOMMU_DOMAIN_CREATE_EXでは、呼び出し元は作成されるドメインに論理アロケーターをアタッチすることを選択できます。
このようなドメインと対話する場合、呼び出し元は以前のマッピングを追跡する必要はありません。 代わりに、論理アロケーターは、物理ページを所有ドメインにマッピングするときに使用される論理アドレスを決定する必要があります。 論理アロケーターは、論理アドレスの競合が発生しないように状態を維持する役割も担います。
現在使用できる論理アロケーターの種類は、Buddy Allocator のみです。 このアロケーターは低い論理アドレスを優先し、4 KB 以上の 2 つの境界の電源で論理アドレスを割り当てます。 アロケーターは、空きアドレス参照のパフォーマンスを向上させるために、空き論理アドレス値のキャッシュで拡張されます。
Buddy Allocator では、明示的なアドレス割り当ては許可されません。 BuddyAllocator で作成された [IOMMU_DMA_DOMAIN* に明示的なアドレスを指定してIOMMU_MAP_IDENTITY_RANGE_EXまたはIOMMU_MAP_LOGICAL_RANGE_EXを呼び出すことは失敗します。
要件
要件 | 値 |
---|---|
サポートされている最小のサーバー | Windows Server 2022 |
Header | wdm.h (Wdm.h を含む) |