Функция NdisMGetVirtualFunctionLocation (ndis.h)
Драйвер мини-порта вызывает функцию NdisMGetVirtualFunctionLocation , чтобы запросить расположение устройства виртуальной функции PCI Express (PCIe) на шине PCI. Драйвер использует расположение устройства для создания идентификатора запрашивателя PCIe (RID) для VF.
Синтаксис
void NdisMGetVirtualFunctionLocation(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PUSHORT SegmentNumber,
[out] PUCHAR BusNumber,
[out] PUCHAR FunctionNumber
);
Параметры
[in] NdisMiniportHandle
Сетевой адаптер обрабатывает данные NDIS, переданные параметру MiniportAdapterHandleобъекта MiniportInitializeEx.
[in] VFId
Идентификатор VF, для которого возвращается расположение устройства.
[out] SegmentNumber
Указатель на переменную, предоставляемую вызывающим объектом, в которой эта функция возвращает значение USHORT для текущего номера сегмента PCI. Это значение указывает группу шин PCI, к которой подключено устройство.
[out] BusNumber
Указатель на переменную, предоставляемую вызывающим элементом, в которой эта функция возвращает значение UCHAR. Это значение указывает текущий номер шины PCI, к которой подключено устройство.
[out] FunctionNumber
Указатель на переменную, предоставляемую вызывающим элементом, в которой эта функция возвращает значение UCHAR. Это значение задает номер функции логического устройства на устройстве.
Возвращаемое значение
None
Remarks
При обработке запроса метода OID_NIC_SWITCH_ALLOCATE_VF драйвер мини-порта PF должен вернуть rid для VF, который драйвер успешно выделил в сетевом адаптере. Драйвер создает RID следующим образом:
- Драйвер сначала вызывает функцию NdisMGetVirtualFunctionLocation , чтобы получить сведения о расположении, связанном с шиной, для VF.
- Затем драйвер вызывает макрос NDIS_MAKE_RID с информацией о расположении, связанной с шиной, чтобы создать RID.
Дополнительные сведения о выделении ресурсов VF см. в разделе Последовательность инициализации виртуальных функций.
Дополнительные сведения об интерфейсе SR-IOV см. в статье Обзор виртуализации однокорневого ввода-вывода (SR-IOV).
Взаимодействие с драйвером виртуальной шины
Если независимый поставщик оборудования (IHV) предоставляет драйвер виртуальной шины (VBD) в составе пакета драйверов SR-IOV, драйвер мини-порта не должен вызывать NdisMGetVirtualFunctionLocation. Вместо этого драйвер должен выполнять взаимодействие с VBD через частный канал связи и запрашивать вызов GetLocation для VBD. Эта функция предоставляется из интерфейса GUID_PCI_VIRTUALIZATION_INTERFACE , поддерживаемого базовым драйвером шины PCI.VBD, работающий в операционной системе управления родительского раздела Hyper-V, может запрашивать интерфейс GUID_PCI_VIRTUALIZATION_INTERFACE , отправляя IRP_MN_QUERY_INTERFACE запрос к объекту физического устройства (PDO) на шине PCI. Этот запрос должен быть выполнен из IRQL = PASSIVE_LEVEL. В этом запросе драйвер должен задать для параметра InterfaceType значение GUID_PCI_VIRTUALIZATION_INTERFACE.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | PASSIVE_LEVEL |
См. также раздел