为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

R3应用层利用AFD驱动,编写自己的高效Socket服务

三叶资源网 2017-02-16 01:34:39 网络相关源码 1315 ℃ 0 评论

1,什么是afd驱动

socket机制在windwos系统中的实现分为用户空间和内核空间实现,

用户空间就是 ws2_32.lib 这个dll 库  


系统空间就是afd.sys驱动

R3应用层利用AFD驱动,编写自己的高效Socket服务


简来说AFD驱动向上与SOCKET应用接口约定了接口来实现SOCKET,AFD驱动实际上是一个TDI客户端,它通过TDI接口调用微软件的另一个网络部件TCPIP驱动来完成功能。AFD并没有官方的资料说明它的接口,但是在网上还是可以找到很关于AFD驱动的资料的。


相对来说国外对AFD驱动在国外利广泛,很多大型游戏厂商利用AFD 开发出自己的socket服务达到隐藏sned recv 等函数。


AFD驱动模块函数功能对

NTSockets_CreateTcpSocket            =  socket() 用NtCreateFile 创建“Device\Afd\Endpoint”


NTSockets_ConvertIP                   = inet_addr() 纯源码实现这样更加健康防止OD

NTSockets_Swap16BitByteOrder                  = htons()| ntohs()

NTSockets_Connect                             = connect()    用 NtDeviceIoControlFile 控制码IOCTL_AFD_CONNECT:0x12007

NTSockets_WSAEventSelect              = WSAEventSelect    用 NtDeviceIoControlFile 控制码IOCTL_AFD_EVENT_SELECT:0x12087

NTSockets_WSAEnumNetworkEvents = WSAEnumNetworkEvents    用 NtDeviceIoControlFile 控制码IOCTL_AFD_ENUM_NETWORK_EVENTS:0x1208b

NTSockets_Recv                              =  Recv   用 NtDeviceIoControlFile 控制码IOCTL_AFD_RECV:0x12017

NTSockets_Send                             = Send   用 NtDeviceIoControlFile 控制码IOCTL_AFD_SEND:0x1201f

其他函数陆续会更新,现在的版本基本功能已经实现

使用有问题可以给我反馈就行修复


需要生成调试,用OutputDebugStringA函数输出

用Dbgview接收日志

全部有带

AFD驱动控制码 和 AFD驱动易源码

IOCTL_AFD_BIND:12003

IOCTL_AFD_CONNECT:12007

IOCTL_AFD_START_LISTEN:1200b

IOCTL_AFD_WAIT_FOR_LISTEN:1200c

IOCTL_AFD_ACCEPT:12010

IOCTL_AFD_RECV:12017

IOCTL_AFD_RECV_DATAGRAM:1201b

IOCTL_AFD_SEND:1201f

IOCTL_AFD_SEND_DATAGRAM:12023

IOCTL_AFD_SELECT:12024

IOCTL_AFD_DISCONNECT:1202b

IOCTL_AFD_GET_SOCK_NAME:1202f

IOCTL_AFD_GET_PEER_NAME:12033

IOCTL_AFD_GET_TDI_HANDLES:12037

IOCTL_AFD_SET_INFO:1203b

IOCTL_AFD_GET_CONTEXT_SIZE:1203f

IOCTL_AFD_GET_CONTEXT:12043

IOCTL_AFD_SET_CONTEXT:12047

IOCTL_AFD_SET_CONNECT_DATA:1204b

IOCTL_AFD_SET_CONNECT_OPTIONS:1204f

IOCTL_AFD_SET_DISCONNECT_DATA:12053

IOCTL_AFD_SET_DISCONNECT_OPTIONS:12057

IOCTL_AFD_GET_CONNECT_DATA:1205b

IOCTL_AFD_GET_CONNECT_OPTIONS:1205f

IOCTL_AFD_GET_DISCONNECT_DATA:12063

IOCTL_AFD_GET_DISCONNECT_OPTIONS:12067

IOCTL_AFD_SET_CONNECT_DATA_SIZE:1206b

IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE:1206f

IOCTL_AFD_SET_DISCONNECT_DATA_SIZE:12073

IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE:12077

IOCTL_AFD_GET_INFO:1207b

IOCTL_AFD_EVENT_SELECT:12087

IOCTL_AFD_DEFER_ACCEPT:1208f

IOCTL_AFD_GET_PENDING_CONNECT_DATA:120a7

IOCTL_AFD_ENUM_NETWORK_EVENTS:1208b

IOCTL_AFD_VALIDATE_GROUP:120ab

R3应用层利用AFD驱动,编写自己的高效Socket服务

@莫爱


文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
打印模块酷Q Air易语言模块分析字节数代码编辑框消息监听无水印精易皮肤模块猴子分桃QQ群引流FFmpegQQ头像采集Ex_DirectUIHOOK拦截网易云音乐播放器屏幕保护撞球教程大全胡来网post注册炫彩易语言对比两块内存
最新评论