windows网络适配器驱动开发-泛型分段卸载(下) 用于控制 GSO 的 INF 关键字NetAdapterCx 检查注册表关键字并在启用主动卸载功能时遵循它们。 驱动程序不需要采取任何进一步措施。使用注册表值启用和禁用任务卸载中指定的 LSO 关键字可用于使用注册表项设置启用/禁用 LSO 卸载。UDP 分段卸载USO中指定的 USO 关键字可用于通过注册表项设置启用/禁用 USO 卸载。关键字值的类型必须为 REG_SZ。配置 GSO客户端驱动程序在网络适配器初始化期间首先声明其硬件的GSO功能。 在启动网络适配器之前可能会在其 EvtDevicePrepareHardware 回调中发生此情况。若要配置 GSO请使用客户端驱动程序分配 NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES 结构。调用 NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT 来初始化结构。调用 NetAdapterOffloadSetGsoCapabilities 以向 NetAdapterCx 注册结构。在调用 NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT 时客户端驱动程序提供了一个指向 EVT_NET_ADAPTER_OFFLOAD_SET_GSO 回调的指针。 如果活动卸载功能发生更改系统稍后将调用此回调。指示硬件 GSO 功能的规则以下规则适用于 NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES 结构驱动程序必须设置 Layer3Flags 和 Layer4Flags。如果 NIC 支持 LSO驱动程序必须使用 TCP 标志填充 Layer4Flags 字段 NetAdapterOffloadLayer4FlagTcpWithoutOptions 。如果 NIC 支持 USO驱动程序必须使用 UDP 标志填充 Layer4Flags 字段 NetAdapterOffloadLayer4FlagUdp 。MaximumOffloadSize 和 MinimumSegmentCount 是必填字段。Layer4OffsetLimit 字段是可选的。 如果 OS 发送标头偏移大于指定限制的数据包则不会要求执行 GSO。如果支持选项/扩展则必须支持不带选项/扩展的 IP/TCP 数据包。此示例演示客户端驱动程序如何设置其硬件卸载功能。VOID MyAdapterSetOffloadCapabilities( NETADAPTER NetAdapter ) { // Configure the hardwares GSO offload capabilities NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES gsoOffloadCapabilities; auto const layer3Flags NetAdapterOffloadLayer3FlagIPv4NoOptions | NetAdapterOffloadLayer3FlagIPv4WithOptions | NetAdapterOffloadLayer3FlagIPv6NoExtensions | NetAdapterOffloadLayer3FlagIPv6WithExtensions; auto const layer4Flags NetAdapterOffloadLayer4FlagTcpNoOptions | NetAdapterOffloadLayer4FlagTcpWithOptions; NetAdapterOffloadLayer4FlagUdp; NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT( gsoOffloadCapabilities, layer3Flags, layer4Flags, MY_GSO_OFFLOAD_MAX_SIZE, MY_GSO_OFFLOAD_MIN_SEGMENT_COUNT, EvtAdapterOffloadSetGso); gsoOffloadCapabilities.Layer4OffsetLimit 127; // Set the current GSO offload capabilities and register the callback for future changes in active capabilities NetAdapterOffloadSetGsoCapabilities(NetAdapter, gsoOffloadCapabilities); }更新硬件卸载如果 TCP/IP 堆栈或上层协议驱动程序请求更改网络适配器的有效功能NetAdapterCx 将调用在适配器初始化期间注册的客户端驱动程序的 EVT_NET_ADAPTER_OFFLOAD_SET_GSO 回调。 在此函数中系统在 NETOFFLOAD 对象中提供更新的功能客户端驱动程序查询以更新其卸载功能。客户端驱动程序可以调用以下函数来确定已启用哪些卸载NetOffloadIsLsoIPv4EnabledNetOffloadIsLsoIPv6EnabledNetOffloadIsUsoIPv4EnabledNetOffloadIsUsoIPv6Enabled以下示例演示客户端驱动程序如何更新其 GSO 卸载功能VOID MyEvtAdapterOffloadSetGso( NETADAPTER NetAdapter, NETOFFLOAD Offload ) { PMY_NET_ADAPTER_CONTEXT adapterContext MyGetNetAdapterContext(NetAdapter); // Store the updated information in the context adapterContext-LSOv4 NetOffloadIsLsoIPv4Enabled(Offload) ? GsoOffloadEnabled : GsoOffloadDisabled; adapterContext-LSOv6 NetOffloadIsLsoIPv6Enabled(Offload) ? GsoOffloadEnabled : GsoOffloadDisabled; adapterContext-USOv4 NetOffloadIsUsoIPv4Enabled(Offload) ? GsoOffloadEnabled : GsoOffloadDisabled; adapterContext-USOv6 NetOffloadIsUsoIPv6Enabled(Offload) ? GsoOffloadEnabled : GsoOffloadDisabled; // Enable hardware checksum if LSO/USO is enabled MyUpdateHardwareChecksum(adapterContext); }

相关新闻

最新新闻

Claude Code 完全指南:从安装配置到工程化实践

Claude Code 完全指南:从安装配置到工程化实践

第一次真正想把 Claude Code 用起来,不是因为看到别人的演示视频里它生成了一段漂亮代码,而是我受够了自己那个极其低效的循环:在 AI 对话框里描述需求,拿到代码,复制回编辑器,跑起来报错,再把报…

2026/9/2 2:37:53
从DAW到电台播出:音乐制作与音频交付全流程指南

从DAW到电台播出:音乐制作与音频交付全流程指南

一个 16 岁音乐制作人的节目能登上北京音乐广播 FM97.4,放在几年前,这是一件很难理解的事。因为“电台播出”这四个字背后,不是简单的“做了一首歌”,而是一整套音频制作与交付链路:你写出来的编曲要经得起大喇叭回放&…

2026/9/2 2:37:53
Windows下集成FreeType预编译库:从zip到Visual Studio与CMake实战

Windows下集成FreeType预编译库:从zip到Visual Studio与CMake实战

简介:这是面向Windows平台OpenJDK编译场景的FreeType预编译二进制包。FreeType是开源跨平台字体渲染库,OpenJDK源码编译时需依赖它完成字体解析与文本渲染,直接使用预编译版本可省去自行编译库的繁琐过程。压缩包共58个文件,包含5…

2026/9/2 2:37:53
工厂数字分身:从数据映射到3D可视化,搭建最小可用闭环

工厂数字分身:从数据映射到3D可视化,搭建最小可用闭环

做工业数字化的人,大概率都经历过这样的尴尬:工厂花了几百万上 MES、ERP、SCADA,中控大屏上也画满了产线示意图,但车间里到底哪台设备在降速、哪个工位堆料了、今天到底能出多少货,管理者最后还是要打电话问车间主任&a…

2026/9/2 2:37:53
风光储微电网容量规划:混合不确定性下的两阶段鲁棒协同优化

风光储微电网容量规划:混合不确定性下的两阶段鲁棒协同优化

风光储微电网容量规划,本质上回答一个问题:在一个区域内,风机、光伏和储能分别装多少容量、按什么比例配置,才能在满足供电可靠性的前提下,让全生命周期的经济成本最低。这个问题听起来像是常规的优 化问题&#xff0c…

2026/9/2 2:37:53
情感语音合成实战:从环境配置到批量生成TTS语音

情感语音合成实战:从环境配置到批量生成TTS语音

1. 先搞清楚“别闹啦,亲爱的~”到底是什么,以及它能解决什么问题看到“别闹啦,亲爱的~”这个标题,很多人第一反应可能是情侣间的日常对话,或者某个情感类内容。但在技术或内容创作的语境下&…

2026/9/2 2:32:53