- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH3 基于PACKET DRI的VER的网络编程方法
设计、讲授:谭献海
Email:xhtan@;第3章 基于Packet Driver的网络编程 ;3.1概述 ;3.1概述;FTP包驱动程序----PC/TCP包驱动程序规范 ;3.2网络接口的标识 ;3.2网络接口的标识;3.3功能调用说明 ;①?? 初始化网络适配器,嵌入接收中断服务程序
功 能 号:AH=2
用 途:对网卡进行初始化。
适 用:所有机型。
入口参数:AH=2----功能号
AL=if_class /* 网络种类号 */
BX=if_type /* 网络类型号 */
DL=if_number /* 网络接口号 */
CX=unsigned typelen /* 名字的长度,小于等于8个 字节,可赋为0 */
DS:SI=char far *name /* 名字的指针,可为空NULL */
ES:DI=int (far * receiver)() /* 接收中断服务程序入口 */;?出口参数:
正确返回:carry flag 清零
AX=句柄号
错误返回:carry flag 置位
DH=错误代码
说明:
A)????? 参数说明
变量name(DS:SI)是一个指向网络接口名字的缓冲区指针;变量typelen存放名字的长度长度;
变量receiver指向一个接收中断服务程序入口地址,通过上述功能调用,接收中断服务程序嵌入到Packet Driver中,当一个数据包到达后,网络适配器发出硬件中断,进入接收中断服务程序处理数据包。 ;接收中断分两步进行。
第一次中断:AX=0,通知应用程序申请缓冲区。
进入中断之前,Packet Driver为用户指定:
BX----int handle
AX----int flag(=0,表示是第一次中断)
CX----unsigned int len /* 接收到的数据长度 */
进入中断服务程序后,用户应根据CX中的数据长度值,申请接收缓冲区来存放接收到的数据包,用ES:DI指向申请到的缓冲区,缓冲区的长度存放到CX中,最后从中断中返回。
如果高层应用进程没有缓冲区可用,将指针ES:DI的值设置为0:0,这时Packet Driver将丢弃该数据包,不再执行第二次中断调用。
缓冲区申请到后,Packet Driver将接收到的数据移入用户的接收缓冲区,然后通过第二次中断来通知用户“数据已移入接收缓冲区”。;第二次中断:AX=1,通知用户数据包已传送到缓冲区。
一般地,在第二次中断服务程序中设置一个标志,通知上层应用进程“有接收好的数据包待处理”。
接收到的数据包括帧头和数据域,但不包括同步序列和尾部的校验和。
;B)??? 句柄说明
句柄用于指明Packet Driver与用户之间的接口参数。
实现方法:开辟一块内存缓冲区,将该缓冲区划分为若干小块,每块对应一个句柄。
在NE2000等Packet Driver中,缓冲区长度为24*10个字节,即每个用户接口参数占24字节,共有10块。 ;C)????? 错误代码的定义
表2 Packet Driver错误代码的值 (通过DH寄存器返回);(2)??? 获取网络适配器的物理地址
功 能 号:AH=6
用 途:将指定句柄所代表的局域网网卡的物理地址复制到指定的缓冲区。
适 用:所有机型。
入口参数:AH=6 /* 功能号 */
BX=int handle /* 句柄 */
CX=int len /* 缓冲区长度(以太网=6) */
ES:DI=char far *buf /* 地址缓冲区 */
出口参数:
正确返回:carry flag 清零
CX=实际的地址长度
错误返回:carry flag 置位
DH=错误代码 ;(3)?? 设置接收模式
功 能 号:AH=14h(十进制20)
用 途:为句柄所指定的网络适配器设置接收模式。在网卡上的数据链路控制器(如DP8390)中设置地址来选择接收方式,同时为多址通信设置屏蔽位,以避免不加区分地、任意地接收。
适 用:所有机型。
入口参数: AH=20(十进制) /* 功能号 */
BX=int handle /* 句柄 */
CX=接收模式代码
出口参数:
正确返回:carry flag 清零
错误返回:carry flag 置位
DH=错误代码 ;表3 接收模式的定义
;2)?? 获取驱动程序相关信息
功 能 号:AH=1
用 途:返回句柄所代表的接口的
您可能关注的文档
最近下载
- 痕迹检验复习试题有答案.doc
- 未成年人充值退款起诉书.docx VIP
- 2025年中国移动校园招聘考试笔试题库历年考试试题及答案.docx VIP
- 定量CT在健康管理中的应用指南(2024).pdf
- 《网约车运营管理》教学课件4-5 潜在客户分析及客户忠诚度提升.ppt VIP
- 排水泵房安全检查表.docx
- 我国实现双碳目标面临的现实挑战与对策建议.docx VIP
- 农技指导油菜机械化播栽与收获技术.pdf
- 第15课+列强入侵与中国人民的反抗斗争【中职专用】《中国历史》(高教版2023基础模块)-20240416165039.pptx
- 仁爱八年级下册Unit6Topic3SectionC优质公开课.ppt VIP
文档评论(0)