2012年6月26日
摘要: 这个图n多人都知道,它对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是 阅读全文
posted @ 2012-06-26 16:27 spinsoft 阅读(996) 评论(0) 推荐(0)
摘要: 一 BINFS到底是什么?其实BINFS就是MS给CE做的一种存放系统镜像的一个文件系统。一说文件系统,大家可能比较头大。那么这么说,其实就是一个结构体(说是文件系统确实比较勉强,结构体可能更合适),里面有记录各模块的起始地址,大小等的信息,你要找模块可以根据这个信息到后面找。二 为什么要用BINFS?有什么好处?其实我觉得最大的好处是“按需加载系统模块到内存”,这里衍生出两个优点:1 开机需要加载的核心部分很少,大大减少开机读取系统的时间2 不需要为操作系统预留全尺寸的内存大小,只需预留最小开机核心的大小,剩下的作为通用内存空间,所以使系统内存使用有了很大灵活性,可用系统内存大大增加三 BI 阅读全文
posted @ 2012-06-26 15:59 spinsoft 阅读(319) 评论(0) 推荐(0)
摘要: )当硬件连接到PC或从PC移除时,在硬件上会有信号跳变,BUS Driver会检测到器件的插入和移除,比如DVI的hotplug,再比如USB1.1的1.5K上拉。BUS Driver将调用IOInvalidateDevcieRelations,PNP Manager将知道BUS上的Device关系有所改变。2)为了获得新的Device关系,PNP Manager将调用IRP_MN_QUERY_DEVICE_RELATIONS。BUS Driver将会回应其BUS关系(目录)。3)一旦得知Device之间的关系,PNP Manager就能容易地确定哪些器件没有被初始化。IRP_MN_QUERY 阅读全文
posted @ 2012-06-26 15:47 spinsoft 阅读(429) 评论(0) 推荐(0)
摘要: 在Windows分层驱动模型中,设备栈中的设备一般都是通过对上层传来的IRP做相应的处理来实现驱动的功能。这里对常用的几种IRP传递及完成的方式进行归纳和总结:1. 在本层驱动中完成1.1 在本层驱动中以同步方式完成在本层同步完成一般做完相应处理后,设置Irp->IoStatus.Status和Irp->IoStatus.Information,调用IoCompleteRequest完成该IRP,return IRP的完成状态即可。1.2 在本层驱动中以异步方式完成在本层异步完成一般是得到IRP后将其入队/起线程另行处理,同时调用IoMarkIrpPending将该IRP标记为Pe 阅读全文
posted @ 2012-06-26 15:46 spinsoft 阅读(904) 评论(0) 推荐(0)
摘要: 在写网络程序的时候,建立TCP socket: sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。相关头文件中的定义:AF = Address Family PF = Protocol Family AF_INET = PF_INET所以在windows中AF_INET与PF_INET完全一样. 而在Unix/Linux系统中,在不同的版本中这两者有微小差别.对于BSD,是AF,对于POSIX是PF.理论上建立socke 阅读全文
posted @ 2012-06-26 15:08 spinsoft 阅读(419) 评论(0) 推荐(0)
摘要: 八伟大的工具,Windows用户永远都不想错过有许多的应用程序你可以找到,但是获得免费并且好用 的程序不是一件容易的事情,每当你需要这样的软件的时候,你就会网上搜啊搜,结果下载下来一运行达不到想要的效果,这就是今天我分享我收藏的8个工具原因,这几个工具绝对牛Pandora RecoveryPandora Recovery允许您查找和恢复可收回从NTFS和FAT格式化的卷中删除的文件。潘多拉恢复将扫描您的硬盘驱动器和现有的和删除的文件和目录(文件夹)的任何逻辑驱动器支持的文件格式与您的计算机上建立一个索引。BatteryCareBatteryCare是一个软件来优化笔记本电脑的电池的使用和性能。 阅读全文
posted @ 2012-06-26 12:42 spinsoft 阅读(196) 评论(0) 推荐(0)
摘要: 一、设备对象(DEVICE_OBJECT)kd> dt _device_objectntdll!_DEVICE_OBJECT +0x000 Type : Int2B +0x002 Size : Uint2B +0x004 ReferenceCount : Int4B +0x008 DriverObject : Ptr32 _DRIVER_OBJECT ;该设备所属的驱动对象 +0x00c NextDevice : Ptr32 _DEVICE_OBJECT ;指向下一个设备,该设备与下一个设备同属于一个驱动对象 +0x010 AttachedDevice : Ptr32 _DEVICE_O 阅读全文
posted @ 2012-06-26 11:23 spinsoft 阅读(663) 评论(0) 推荐(0)
摘要: 通常设备对象都把自己的名字放到\Device目录中。在Windows 2000中,设备的名称有两个用途。第一个用途,设备命名后,其它内核模式部件可以通过调用IoGetDeviceObjectPointer函数找到该设备,找到设备对象后,就可以向该设备的驱动程序发送IRP。另一个用途,允许应用程序打开命名设备的句柄,这样它们就可以向驱动程序发送IRP。应用程序可以使用标准的CreateFile API打开命名设备句柄,然后用ReadFile、WriteFile,和DeviceIoControl向驱动程序发出请求。应用程序打开设备句柄时使用\\.\路径前缀而不是标准的UNC(统一命名约定)名称,如 阅读全文
posted @ 2012-06-26 11:22 spinsoft 阅读(1292) 评论(0) 推荐(0)
摘要: 一、代码部分//HelloWDM.h#pragma once#ifdef __cplusplusextern "C"{#endif#include <wdm.h>#ifdef __cplusplus}#endif#define INITCODEcode_seg("INIT")#define LOCKEDCODEcode_seg()#define PAGEDCODEcode_seg("PAGE")#define INITDATAdata_seg("INIT")#define LOCKEDDATAdata_ 阅读全文
posted @ 2012-06-26 11:21 spinsoft 阅读(769) 评论(0) 推荐(0)