winsocket驱动:afd.sys

afd.sys 是 Windows 核心文件,存放在C:\Windows\System32\drivers目录。AFD.SYS是Windows内核级的驱动,用于支持基于 window socket的应用程序,比如DHCP、ftp、telnet等,AFD.SYS被破坏/删除将导致Windows应用程序联网出错。

socket建立后进程会持有“\Device\Afd”句柄,另有\device\tcp、 \device\udp、\device\ip、\device\rawip、\device\afd\endpoint等句柄,具体作用暂不了解。

AFD.SYS在注册表的路径
HKLM\System\CurrentControlSet\Services\AFD,AFD\Parameters对应的注册表值均为双字节类型,51cto注释如下:

EnableDynamicBacklog
将名为“EnableDynamicBacklog”的键值项的值设为“1”(有效值为0(禁用),1(启用))。该项设置用来指定是否启用AFD.SYS功能,以有效处理大量的SYN_RCVD连接。
MinimumDynamicBacklog
将名为“MinimumDynamicBacklog”的键值项的值设为“20”(有效值为0~4 294 967 295)。该项设置用于指定在侦听的终结点上所允许的最小空闲连接数。如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接。
MaximumDynamicBacklog
将名为“MaximumDynamicBacklog”的键值项的值设为“20 000”(有效值为0~4 294 967 295)。该项值的设置用于指定空闲连接及处于SYN_RCVD状态的连接的最大总数。
DynamicBacklogGrowthDelta
将名为“DynamicBacklogGrowthDelta”的键值项的值设为“10”(有效值为0~4 294 967 295)。该项值的设置用于指定在需要增加连接时将要创建的空闲连接数。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注