OID_SRIOV_BAR_RESOURCES
NDIS (OID_SRIOV_BAR_RESOURCES 的 OID) 方法请求发出对象标识符,以确定分配给 PCIe 虚拟函数 (VF) 的 PCI Express (PCIe) 基址 (寄存器) 的内存资源。
NDIS 向网络适配器的 PCIe 物理功能 (PF) 的微型端口驱动程序发出此 OID 方法请求。 支持单根 I/O 虚拟化 (SR-IOV) 接口的 PF 微型端口驱动程序需要此 OID 方法请求。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向缓冲区的指针。 此缓冲区包含以下结构:
一个NDIS_SRIOV_BAR_RESOURCES_INFO结构,指定 PF 微型端口驱动程序为其返回资源信息的 VF 和 BAR。
遵循NDIS_SRIOV_BAR_RESOURCES_INFO结构的CM_PARTIAL_RESOURCE_DESCRIPTOR结构。 CM_PARTIAL_RESOURCE_DESCRIPTOR结构包含有关分配给指定 BAR 的内存资源的信息。
注解
NDIS 发出OID_SRIOV_BAR_RESOURCES的 OID 方法请求,以获取分配给 VF BAR 的系统物理地址和内存资源的长度。 在发出 OID 方法请求之前,NDIS 按以下方式设置 NDIS_SRIOV_BAR_RESOURCES_INFO 结构的格式:
NDIS 将 NDIS_SRIOV_BAR_RESOURCES_INFO 结构的 VFId 成员设置为与 VF 关联的标识符。
NDIS 将 NDIS_SRIOV_BAR_RESOURCES_INFO 结构的 BarIndex 成员设置为指定 VF 的 BAR 索引。 BAR 索引是 PCI 配置空间中 BA 表中寄存器的偏移量。
NDIS 将 NDIS_SRIOV_BAR_RESOURCES_INFO 结构的 BarResourcesOffset 成员设置为从NDIS_SRIOV_BAR_RESOURCES_INFO结构的开头到CM_PARTIAL_RESOURCE_DESCRIPTOR结构的偏移量(以字节为单位)。
注意 过度使用驱动程序(如协议或筛选器驱动程序)无法向 PF 微型端口驱动程序发出OID_SRIOV_BAR_RESOURCES的 OID 方法请求。
当 PF 微型端口驱动程序收到 OID 方法请求时,驱动程序通过在 NDIS_OID_REQUEST 结构的 InformationBuffer 成员中格式化CM_PARTIAL_RESOURCE_DESCRIPTOR结构来返回指定 BAR 的资源。 驱动程序使用与指定 VF 的 BAR 关联的系统硬件资源设置 CM_PARTIAL_RESOURCE_DESCRIPTOR 结构的格式。
注意 驱动程序必须为 资源类型 CmResourceTypeMemory 设置结构的格式。
返回状态代码
PF 微型端口驱动程序为 OID_SRIOV_BAR_RESOURCES 的方法请求返回以下状态代码之一。
状态代码 | 说明 |
---|---|
NDIS_STATUS_SUCCESS |
OID 请求已成功完成。 |
NDIS_STATUS_NOT_SUPPORTED |
PF 微型端口驱动程序不支持单根 I/O 虚拟化 (SR-IOV) 接口,或者未启用该接口。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_SRIOV_BAR_RESOURCES_INFO 结构的一个或多个成员具有无效值。 |
NDIS_STATUS_INVALID_LENGTH |
信息缓冲区小于 ( (NDIS_SRIOV_BAR_RESOURCES_INFO) + size 为 (CM_PARTIAL_RESOURCE_DESCRIPTOR) 。 PF 微型端口驱动程序必须设置 DATA。METHOD_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。 |
NDIS_STATUS_FAILURE |
请求因其他原因而失败。 |
要求
版本 |
在 NDIS 6.30 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |