IOMMU_DEVICE_CREATE 콜백 함수(wdm.h)

물리적 디바이스 개체를 사용하고 IOMMU 인터페이스 API 와 함께 사용할 수 있는 IOMMU_DMA_DEVICE 나타내는 불투명 토큰을 만듭니다.

구문

IOMMU_DEVICE_CREATE IommuDeviceCreate;

NTSTATUS IommuDeviceCreate(
  PDEVICE_OBJECT DeviceObject,
  PIOMMU_DEVICE_CREATION_CONFIGURATION DeviceConfig,
  PIOMMU_DMA_DEVICE *DmaDeviceOut
)
{...}

매개 변수

DeviceObject

[In] 생성된 IOMMU_DMA_DEVICE 나타내는 디바이스의 물리적 디바이스 개체에 대한 포인터입니다.

DeviceConfig

[In, optional] 시스템에 따라 디바이스를 만드는 데 필요할 수 있는 구성 목록에 대한 선택적 포인터입니다. 현재 ARM64의 ACPI 디바이스에 필요합니다.

DmaDeviceOut

[Out] 생성된 IOMMU_DMA_DEVICE 나타내는 불투명 토큰에 대한 포인터입니다.

반환 값

작업이 성공하면 STATUS_SUCCESS. 가능한 오류 반환 값에는 다음 상태 코드가 포함됩니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
제공된 PDO는 IOMMU 뒤에 있지 않은 디바이스를 나타냅니다.
STATUS_INVALID_PARAMETER_2
제공된 입력이 시스템 지원과 일치하지 않습니다.
STATUS_INSUFFICIENT_RESOURCES
루틴이 **IOMMU_DMA_DEVICE** 구조에 필요한 리소스를 할당하지 못했습니다.
STATUS_UNSUCCESSFUL
기본 IOMMU 인터페이스가 'GetDeviceId' 함수에 대해 올바르게 구현되지 않았습니다.
STATUS_NOT_FOUND
제공된 PDO는 IOMMU 뒤에 있지 않은 디바이스를 나타냅니다.

IOMMU 뒤에 디바이스가 없는 경우 이미 직접 물리적 메모리 액세스 권한이 있어야 하며 플랫폼이 DMA Guard를 준수하지 않습니다.

자세한 내용은 NTSTATUS 값을 참조하세요.

설명

ARM64 시스템의 ACPI 디바이스는 매개 변수를 통해 입력 매핑을 DeviceConfig 제공해야 합니다. ARM64 시스템의 다른 모든 디바이스 유형 및 비 ARM64 시스템의 모든 디바이스는 디바이스 구성을 제공하지 않아야 합니다. 그렇지 않으면 STATUS_INVALID_PARAMETER_2 호출이 실패합니다.

요구 사항

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

추가 정보

IOMMU_DEVICE_CREATION_CONFIGURATION

IOMMU_DEVICE_DELETE

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX