WHvCreateVpciDevice

VPCI(가상 PCI) 디바이스를 만들고 해당 리소스를 파티션에 할당합니다.

문법

typedef enum WHV_CREATE_VPCI_DEVICE_FLAGS
{
    WHvCreateVpciDeviceFlagNone = 0x00000000,
    WHvCreateVpciDeviceFlagPhysicallyBacked = 0x00000001,
    WHvCreateVpciDeviceFlagUseLogicalInterrupts = 0x00000002
} WHV_CREATE_VPCI_DEVICE_FLAGS;

// Enables bitwise operators on the WHV_CREATE_VPCI_DEVICE_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_CREATE_VPCI_DEVICE_FLAGS);

HRESULT
WINAPI
WHvCreateVpciDevice(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ HANDLE VpciResource,
    _In_ WHV_CREATE_VPCI_DEVICE_FLAGS Flags,
    _In_opt_ HANDLE NotificationEventHandle
    );

Parameters

Partition

파티션 개체에 대한 핸들입니다.

LogicalDeviceId

파티션 범위 내에서 디바이스에 대한 고유 식별자를 지정합니다.

VpciResource

가상 디바이스를 백업하는 이전에 할당된 VPCI 리소스를 처리합니다. 에서 이 핸들을 WHvAllocateVpciResource가져옵니다.

Flags

만들 디바이스의 선택적 특성을 값의 WHV_CREATE_VPCI_DEVICE_FLAGS 조합으로 지정합니다.

NotificationEventHandle

VPCI 디바이스와 연결된 비동기 이벤트를 호출자에게 알리도록 신호를 받은 이벤트에 대한 선택적 핸들을 지정합니다. 이벤트가 신호를 받으면 .를 사용하여 보류 중인 알림을 검색합니다 WHvGetVpciDeviceNotification.

반환 값

함수가 성공하면 반환 값은 .입니다 S_OK.

Remarks

이 함수는 WHvCreateVpciDevice 가상 PCI 디바이스를 만들고 파티션에 의해 VpciResource 식별된 물리적 또는 가상 리소스를 할당합니다. 이 호출이 완료되면 디바이스를 지원하는 물리적 또는 가상 함수의 PCI 요청자 ID가 파티션 도메인에 할당되어 해당 함수에서 시작된 모든 DMA 작업을 파티션의 주소 공간으로 다시 매핑하도록 IOMMU가 프로그래밍됩니다.

이 함수를 호출하기 전에 리소스를 WHvAllocateVpciResource 할당합니다. 디바이스를 만든 후 해당 MMIO 범위와 WHvMapVpciDeviceMmioRanges 해당 인터럽트 및 해당 인터럽트는 다음과 같이 WHvMapVpciDeviceInterrupt매핑합니다. 를 사용하여 디바이스 WHvDeleteVpciDevice를 삭제합니다.

Requirements

요구 사항 Value
지원되는 최소 Windows Windows 10, 버전 20H2(x64); Windows 11 버전 24H2, 빌드 26100.3915(Arm64)
Header WinHvPlatform.h
라이브러리 WinHvPlatform.lib
동적 링크 라이브러리 (DLL) WinHvPlatform.dll
아키텍처 x64, Arm64

참고하십시오