OID_SWITCH_NIC_SAVE

Hyper-V 可扩展交换机的协议边缘在操作期间发出对象标识符 (OID) 方法请求OID_SWITCH_NIC_SAVE,以保存可扩展交换机端口及其网络适配器连接的运行时数据。 扩展返回此数据,以便以后可以保存和还原运行时数据。 保存运行时数据后,将通过 OID_SWITCH_NIC_RESTORE的 OID 集请求还原这些数据。

NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_SWITCH_NIC_SAVE_STATE结构的指针。 此结构由可扩展交换机的协议边缘分配。

注解

收到 OID_SWITCH_NIC_SAVE 的 OID 方法请求时,可扩展交换机扩展通过执行以下操作来保存运行时数据:

  • 扩展将数据保存在 NDIS_SWITCH_NIC_SAVE_STATE 结构中,从结构开头的 SaveDataOffset 字节开始。

  • 如果提供的 SaveDataSize 不够大,无法保存所需的保存数据,则扩展会将方法结构的 BytesNeeded 字段 设置为 NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1加上保存保存数据所需的缓冲区量,并使用NDIS_STATUS_BUFFER_TOO_SHORT完成 OID。 OID 将以所需的大小重新颁发。

  • 扩展使用自己的标识符和名称填充 ExtensionIdExtensionFriendlyName 字段,并使用NDIS_STATUS_SUCCESS完成 OID 方法请求。 这会导致可扩展交换机的协议边缘发出另一个 OID 方法请求,以允许扩展返回更多保存数据,或允许堆栈下的其他扩展保存其自己的数据。

注意 如果扩展没有要保存的运行时数据,则必须调用 NdisFOidRequest 将此 OID 方法请求转发到可扩展交换机驱动程序堆栈中的基础扩展。 有关此过程的详细信息,请参阅 筛选 NDIS 筛选器驱动程序中的 OID 请求

Hyper-V 可扩展交换机在发出 OID 之前填充结构的 标头PortIdNicIdexSaveDataSizeSaveDataOffset 字段。 扩展无法修改这些字段。

OID_SWITCH_NIC_SAVE的 OID 方法请求最终由可扩展交换机的基础微型端口边缘处理。 可扩展交换机的微型端口边缘收到此 OID 方法请求后,它会使用NDIS_STATUS_SUCCESS完成 OID 请求。 这会通知可扩展交换机的协议边缘,已查询可扩展交换机驱动程序堆栈中的所有扩展以获取运行时数据。 然后,可扩展交换机的协议边缘会发出 OID_SWITCH_NIC_SAVE_COMPLETE 的 OID 集请求来完成保存操作。

有关如何为可扩展交换机端口保存运行时数据的详细信息,请参阅 保存 Hyper-V 可扩展交换机Run-Time数据

返回状态代码

可扩展交换机扩展为 OID_SWITCH_NIC_SAVE 的 OID 方法请求返回以下状态代码之一。

状态代码 说明

NDIS_STATUS_BUFFER_TOO_SHORT

对于NDIS_SWITCH_NIC_SAVE_STATE及其关联的运行时数据,信息缓冲区的长度太小。可扩展交换机扩展必须设置数据。METHOD_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。

NDIS_STATUS_SUCCESS

如果扩展返回要保存的运行时数据,则会返回此状态。

NDIS_STATUS_Xxx

请求因其他原因而失败。

可扩展交换机的基础微型端口边缘为 OID_SWITCH_NIC_SAVE 的 OID 方法请求返回以下状态代码。

状态代码 说明

NDIS_STATUS_SUCCESS

OID 请求已成功完成。

要求

版本

在 NDIS 6.30 及更高版本中受支持。

标头

Ntddndis.h (包括 Ndis.h)

另请参阅


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_SAVE_STATE

NdisFOidRequest

OID_SWITCH_NIC_RESTORE

OID_SWITCH_NIC_SAVE_COMPLETE