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


функция обратного вызова 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

Указатель на сведения о контексте для интерфейса. Вызывающий объект передает значение, передаваемое в качестве элемента контекста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 GetLocation параметр FunctionNumber содержит значение, представляющее номер функции для указанного VF на шине PCI. Это значение основано на параметре альтернативной интерпретации маршрутизации (ARI) спецификации PCI Express 3.0. ARI обрабатывает шину PCIe как одно устройство с 8-разрядным пространством функций, что позволяет выполнять 256 функций в шине.

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

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

Требования

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

См. также

PCI_VIRTUALIZATION_INTERFACE