다음을 통해 공유


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

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

DeviceConfig

[, 선택 사항] 시스템에 따라 디바이스를 만드는 데 필요할 수 있는 구성 목록에 대한 선택적 포인터입니다. 현재 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