Windows内核模式下套接字结构

        Windows应用层的网络通讯使用socket非常常见。内核模式下呢?一种是可以使用TDI或者NDIS驱动程序,但是TDI驱动程序在Win7系统以后就无法使用,而NDIS驱动学习成本比较高,编程的难度比较高。如果是简单的实现网络通讯比如TCP或者是UDP通讯,更加推荐使用内核模式下WSK的socket。

        这个socket结构如下: 

typedef struct _WSK_SOCKET {
  const VOID *Dispatch;
} WSK_SOCKET, *PWSK_SOCKET;

         这个套接字只包含一个指针,指向一个结构体,结构体里面包含不同类型的socket的分发函数,比如Send,Receive函数等。

         TCP使用这个类型的套接字。

Connection-oriented socket

WSK_PROVIDER_CONNECTION_DISPATCH

           该类型的套接字的的函数指针包含如下。在使用过程中,通过Dispatch指针调用里面的函数即可实现内核模式下的TCP通讯,包括接收数据和发送数据。调用的流程和Windows应用程序的接口是完全类似的,函数名也很容易对应上。这里就不多啰嗦了。
typedef struct _WSK_PROVIDER_CONNECTION_DISPATCH {
  WSK_PROVIDER_BASIC_DISPATCH          Basic;
  PFN_WSK_BIND                         WskBind;
  PFN_WSK_CONNECT                      WskConnect;
  PFN_WSK_GET_LOCAL_ADDRESS            WskGetLocalAddress;
  PFN_WSK_GET_REMOTE_ADDRESS           WskGetRemoteAddress;
  PFN_WSK_SEND                         WskSend;
  PFN_WSK_RECEIVE                      WskReceive;
  PFN_WSK_DISCONNECT                   WskDisconnect;
  PFN_WSK_RELEASE_DATA_INDICATION_LIST WskRelease;
} WSK_PROVIDER_CONNECTION_DISPATCH, *PWSK_PROVIDER_CONNECTION_DISPATCH;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值