Поделиться через


функция обратного вызова GET_VIRTUAL_DEVICE_LOCATION (wdm.h)

Подпрограмма GetLocation возвращает расположение устройства виртуальной функции PCI Express (PCIe) на шине PCI. Устройство, поддерживающее интерфейс виртуализации одно корневых операций ввода-вывода (SR-IOV), может предоставлять одну или несколько виртуальных машин на шине PCI.

Синтаксис

GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;

NTSTATUS GetVirtualDeviceLocation(
  [in, out] PVOID Context,
  [in]      USHORT VirtualFunction,
  [out]     PUINT16 SegmentNumber,
  [out]     PUINT8 BusNumber,
  [out]     PUINT8 FunctionNumber
)
{...}

Параметры

[in, out] Context

Указатель на сведения о контексте для конкретного интерфейса. Вызывающий объект передает значение, передаваемое в качестве элемента Contextструктуры PCI_VIRTUALIZATION_INTERFACE для интерфейса.

[in] VirtualFunction

Отсчитываемое от нуля значение, указывающее VF на устройстве, для которого возвращается расположение устройства.

[out] SegmentNumber

Указатель на переменную, предоставляемую вызывающим объектом, в которой эта подпрограмма возвращает значение UINT16 для текущего номера сегмента PCI. Это значение указывает группу шин PCI, к которой подключено устройство.

[out] BusNumber

Указатель на переменную, предоставленную вызывающим методом, в которой эта подпрограмма возвращает значение UINT8. Это значение указывает текущий номер шины PCI, к которой подключено устройство.

[out] FunctionNumber

Указатель на переменную, предоставленную вызывающим методом, в которой эта подпрограмма возвращает значение UINT8. Это значение содержит номер функции для указанного VF на шине PCI.

Возвращаемое значение

Подпрограмма GetLocation возвращает одно из следующих значений NTSTATUS:

Код возврата Описание
STATUS_SUCCESS Операция выполнена успешно.
STATUS_INVALID_PARAMETER Параметр VirtualFunction больше, чем значение элемента TotalVFs структуры расширенных возможностей SR-IOV для устройства.

Комментарии

Подпрограмма GetLocation возвращает текущее расположение устройства VF в иерархии PCIe. Эти сведения необходимы системе виртуализации, которая использует модуль управления памятью ввода-вывода (IOMMU) для маршрутизации трафика на устройство или с устройства.

При успешном возвращении из вызова подпрограммы GetLocation параметр FunctionNumber содержит значение, представляющее номер функции для указанного VF на шине PCI. Это значение основано на параметре Альтернативной интерпретации маршрутизации (ARI) спецификации PCI Express 3.0. ARI рассматривает шину PCIe как одно устройство с 8-разрядным функциональным пространством, что обеспечивает 256 функций в шине.

Подпрограмма GetLocation предоставляется интерфейсом GUID_PCI_VIRTUALIZATION_INTERFACE .

Номер шины PCI, на которой находится VF, может измениться. Не рекомендуется, чтобы драйверы сохраняли расположение устройства для виртуальной машины в энергонезависимом хранилище, например в реестре.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в Windows Server 2012 и более поздних версиях Windows Server.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
IRQL PASSIVE_LEVEL

См. также раздел

PCI_VIRTUALIZATION_INTERFACE