Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет поставщику и идентификатору устройства для виртуальной функции PCI Express SR-IOV (VF) для создания более универсального идентификатора Plug and Play для VF. Эти идентификаторы нельзя считывать непосредственно из пространства конфигурации VF.
Синтаксис
SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;
VOID SriovGetVendorAndDeviceIds(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PUSHORT VendorId,
[out] PUSHORT DeviceId
)
{...}
Параметры
[in] Context
Указатель на определяемый драйвером контекст.
[in] VfIndex
Отсчитываемый от нуля индекс VF, к которому применяется эта операция записи.
[out] VendorId
Указатель на переменную USHORT, заполненную идентификатором поставщика VF.
[out] DeviceId
Указатель на переменную USHORT, заполненную идентификатором устройства VF.
Возвращаемое значение
Никакой
Замечания
Эта функция обратного вызова реализуется драйвером физической функции (PF). Он вызывается, когда система хочет получить идентификаторы поставщика и устройства указанной виртуальной машины.
Спецификация PCI Express SR-IOV требует, чтобы все виртуальные машины имели одинаковые идентификаторы поставщиков и устройств. Это требование к оборудованию, соответствующему требованиям. Однако вы можете подготовить виртуальные машины таким образом, чтобы их возможности отличались друг от друга, и часто полезно загружать разные драйверы на другом оборудовании. Поэтому Windows позволяет драйверу PF предоставлять отдельные идентификаторы устройств и поставщиков (с различными кодами классов через интерфейсы пространства конфигурации), чтобы каждая виртуальная машина отображалась с идентификаторами Plug and Play, наиболее подходящими для его использования.
Драйвер PF регистрирует свою реализацию, задав элемент GetVendorAndDeviceSRIOV_DEVICE_INTERFACE_STANDARD, настроив структуру WDF_QUERY_INTERFACE_CONFIG и вызвав WdfDeviceAddQueryInterface.
Ниже приведен пример реализации этой функции обратного вызова.
Virtualization_GetVendorAndDevice (
_In_ PVOID Context,
_In_ USHORT VfIndex,
_Out_ PUSHORT VendorId,
_Out_ PUSHORT DeviceId
)
{
PDEVICE_CONTEXT deviceContext;
UNREFERENCED_PARAMETER(VfIndex);
PAGED_CODE();
deviceContext = (PDEVICE_CONTEXT)Context;
*VendorId = deviceContext->VendorId;
*DeviceId = deviceContext->DeviceId;
}
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 10 |
| минимальный поддерживаемый сервер | Windows Server 2016 |
| целевая платформа | Виндоус |
| заголовка | pcivirt.h |
| IRQL | PASSIVE_LEVEL |