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 将以所需的大小重新颁发。
扩展使用自己的标识符和名称填充 ExtensionId 和 ExtensionFriendlyName 字段,并使用NDIS_STATUS_SUCCESS完成 OID 方法请求。 这会导致可扩展交换机的协议边缘发出另一个 OID 方法请求,以允许扩展返回更多保存数据,或允许堆栈下的其他扩展保存其自己的数据。
注意 如果扩展没有要保存的运行时数据,则必须调用 NdisFOidRequest 将此 OID 方法请求转发到可扩展交换机驱动程序堆栈中的基础扩展。 有关此过程的详细信息,请参阅 筛选 NDIS 筛选器驱动程序中的 OID 请求。
Hyper-V 可扩展交换机在发出 OID 之前填充结构的 标头、 PortId、 NicIdex、 SaveDataSize 和 SaveDataOffset 字段。 扩展无法修改这些字段。
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) |