Функция 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 передается в параметр MiniportAdapterHandleMiniportInitializeEx.
[in] VFId
Идентификатор VF, для которого возвращается расположение устройства.
[out] SegmentNumber
Указатель на указанную вызывающим переменную, в которой эта функция возвращает значение USHORT для текущего номера сегмента PCI. Это значение указывает группу шин PCI, на которой подключено устройство.
[out] BusNumber
Указатель на указанную вызывающим переменную, в которой эта функция возвращает значение UCHAR. Это значение указывает текущий номер шины PCI, на котором подключено устройство.
[out] FunctionNumber
Указатель на указанную вызывающим переменную, в которой эта функция возвращает значение UCHAR. Это значение указывает номер функции логического устройства на устройстве.
Возвращаемое значение
Никакой
Замечания
При обработке запроса метода 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 через частный канал связи и запросить вызов VBD GetLocation. Эта функция предоставляется из интерфейса 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 (include Ndis.h) |
библиотеки | Ndis.lib |
IRQL | PASSIVE_LEVEL |
См. также