David Gourley是Endeca的首席技术官(Chief Technology Officer),负责Endeca产品的研究及开发。Endeca开发的因特网及内部网络信息访问解决方案为企业级数据的导航及研究提供了一些新的方式。在到Endeca工作...
HTTP(Hypertext Transfer Protocol,超文本传输协议①)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。HTTP起初是一个简单的协议,因此你可...
本书是HTTP 及其相关核心Web 技术方面的权威著作,主要介绍了Web 应用程序是如何工作的,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。 本书适合所有想了解HTTP 和Web 底层结...
本章主要介绍了WinPcap所涉及的一些与Windows驱动程序相关的基础知识,主要包括驱动对象、驱动设备、IRP请求、同步处理、内存操作与注册表操作等内容,同时还简要介绍了NDIS协议驱动的相关内容。了解这些内容有助...
协议驱动程序在DriverEntry函数中调用NDIS库的NdisRegisterProtocol函数向NDIS库注册。在WinPcap中,就使用了下列代码进行注册。NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING...
3.2 NDIS协议驱动程序网络驱动程序接口规范(NDIS)标准定义了网络适配器(也可以说是管理网络适配器的驱动程序)与协议驱动程序之间的通信。NDIS的主要目的是扮演一个包装层的角色,允许协议驱动程序不依赖特定...
在驱动程序的开发中,经常会对注册表进行操作。注册表的主要组成如图3-1所示,注册表的五个主要组成部分如下。图3-1注册表的主要组成注册表项:注册表中的一个项目,类似于目录。每个项中存储着多个二元结构,即...
运行时函数是由编译器提供的,它在程序运行时必不可少。不同的操作系统,运行时函数的实现方法也有所不同,但其接口基本一致。例如malloc函数就是典型的运行时函数,所有编译器厂商都必须提供这个函数,但在不同...
和应用程序一样,Windows驱动程序的局部变量是存放在栈空间中的,但栈空间不会像应用程序一样大,所以驱动程序不适合使用递归调用或者局部变量是大型结构体的情况。Windows驱动程序使用的内存资源非常珍贵,因此...
Windows是多任务抢占式的操作系统,如果多个线程要求操作同一个资源,这时就需要同步处理了。如果没有同步机制的控制,所有的线程将会任意运行。如果驱动程序没有处理好同步问题,会出现程序出错、操作系统性能下...
驱动程序的主要功能是负责处理I/O请求,而大部分的I/O请求又是在派遣函数中处理的。IRP的处理机制类似于Windows应用程序中的消息处理机制。用户空间对驱动程序的所有I/O请求都是由操作系统将其转化成为一个IRP数...
设备对象记录的是设备的通用信息,而另外一些特殊的信息记录在设备扩展中,每个设备都会指定一个设备扩展。设备扩展是由程序员在驱动程序中自行定义的结构体,结构体的大小在调用IoCreateDevice函数时设置。设备...
设备对象用于保存设备特征和状态的相关信息。一个设备对象表示一个逻辑的、虚拟的或物理的设备,设备对象的I/O请求由一个驱动对象操控着。每一个内核模式的驱动必须创建设备对象,它通过调用IoCreateDevice函数一...
由于WinPcap的内核驱动程序是一个协议驱动程序,因此涉及了一些编写Windows驱动程序与NDIS协议驱动程序的基础知识。为了更好地理解WinPcap的内核驱动程序,本章将对此驱动程序所涉及的基础知识进行简要介绍,为后...
本章主要介绍了WinPcap的应用与体系架构。WinPcap提供了数据包捕获、数据包发送、数据包过滤器、网络状态统计、数据包文件存储与读取等功能。读者通过对本章的学习,可以从架构角度来熟悉WinPcap库,理解操作系统...
Packet.dll库中的重要函数简介如下。PacketGetAdapterNames函数用于获取可用网络适配器的列表,以及它们对应的描述,其原型如下:BOOLEAN PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize);PacketGetNet...
2.5用户空间库接口函数本节简要介绍wpcap.dll与Packet.dll库提供的主要接口函数,详细的说明参见后续各章的相关内容。2.5.1wpcap.dll库中的重要函数wpcap.dll库中的接口函数分为两部分:一部分是与libpcap库兼容...
NPF能够执行许多操作,包括数据包捕获、数据包发送、网络统计及数据包转储到磁盘等。下面简要地介绍这些操作。1.数据包捕获NPF最重要的功能是执行数据包的捕获。在一个捕获过程中,驱动程序将利用一个网络接口卡...
WinPcap的体系结构如图2-3所示,其中NPF是WinPcap的内核组件,用来处理网络上传输的数据包,并对用户层导出数据包进行捕获、发送与分析。下面将介绍NPF与操作系统及其他基础组件的交互操作。图2-3WinPcap的体系结...
网络上的数据包通过物理网络接口卡(Network Interface Card,NIC)与对应设备驱动程序传递到操作系统的内核空间,对应的协议驱动程序(对WinPcap而言就是NPF内核驱动)将会处理所接收的数据包,然后相应的应用...