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