WHvWriteVpciDeviceRegister

Schreibt ein Konfigurationsraum- oder MMIO-Register eines VIRTUELLEN PCI-Geräts (PCI, PCII).

Syntax

typedef enum WHV_VPCI_DEVICE_REGISTER_SPACE
{
    WHvVpciConfigSpace = -1,
    WHvVpciBar0 = 0,
    WHvVpciBar1 = 1,
    WHvVpciBar2 = 2,
    WHvVpciBar3 = 3,
    WHvVpciBar4 = 4,
    WHvVpciBar5 = 5
} WHV_VPCI_DEVICE_REGISTER_SPACE;

typedef struct WHV_VPCI_DEVICE_REGISTER
{
    WHV_VPCI_DEVICE_REGISTER_SPACE Location;
    UINT32 SizeInBytes;
    UINT64 OffsetInBytes;
} WHV_VPCI_DEVICE_REGISTER;

HRESULT
WINAPI
WHvWriteVpciDeviceRegister(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ const WHV_VPCI_DEVICE_REGISTER* Register,
    _In_reads_bytes_(Register->SizeInBytes) const VOID* Data
    );

Parameter

Partition

Behandeln Sie die Partition, die das TOOLI-Gerät besitzt.

LogicalDeviceId

Gibt den logischen Gerätebezeichner des ELEMENTSI-Geräts an.

Register

Gibt das zu schreibende Register als WHV_VPCI_DEVICE_REGISTER Struktur an, die den Registerraum, den Offset und die Größe identifiziert.

Data

Gibt die Daten an, die in das Register geschrieben werden sollen. Der Puffer muss mindestens Register->SizeInBytes Byte sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, lautet S_OKder Rückgabewert .

Remarks

Die WHvWriteVpciDeviceRegister Funktion schreibt ein Register im Konfigurationsraum oder MMIO-Raum der physischen oder virtuellen Funktion PCIe, die einem SHAPEI-Gerät zugeordnet ist. Für den Konfigurationsraum kann der Zugriff auf bestimmte Register vom zugrunde liegenden virtuellen PCI-Stapel gefiltert werden, um eine sichere VM-Zuweisung von PCIe-Funktionen zu gewährleisten. Bei MMIO-Speicherplatz kann diese Funktion Register schreiben, die nicht direkt im Adressraum des Aufrufers zugeordnet wurden, da der zugrunde liegende virtuelle PCI-Stapel Entschärfungen für diese Register erzwingen muss.

Anforderungen

Anforderung Wert
Mindestens unterstützte Windows Windows 10, Version 20H2 (x64); Windows 11, Version 24H2, Build 26100.3915 (Arm64)
Header WinHvPlatform.h
Bibliothek WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Siehe auch