`
yexin218
  • 浏览: 959332 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论
文章列表
今天我们来看看如何拷贝NBL中的数据。有时候需要更改数据包中的某些数据,就需要用到此功能(能直接在原来的nBL上更改,然后发送吗?)。   新建一个NBL作为你自己要存放拷贝数据的结构: pCopyNBL = allocateNetBuffAndNetBufferList(pFilter, dataLength);//Defined by self  这个其实是一个自定义的函数,用来分配一个空的NBL.具体代码见后面~ 这里考虑有很多个NBL,而且每个NB中包含多个MDL.所以拿到原始NBL的第一个NBpCurrentNB = NET_BUFFER_LIST_FIRST_NB(pC ...
  项目开发中有时候需要在Filter驱动中获取有效地Unicast地址,比如用来发送数据等。本来以为内核中需要OID那种强求来完成,结果发现OID_GEN_NETWORK_LAYER_ADDRESSES是不支持查询的。后来求助高人才发现:原来在Ndis6.x,IPHelper API不仅可以在应用层使用,也可以在内核层使用,这里我们使用的函数是GetUnicastIpAddressTable :   NETIOAPI_API GetUnicastIpAddressTable( __in ADDRESS_FAMILY Family, __out PMIB_UNIC ...
安装最新版的Matplotlib,版本号为:0.99.1。下载 请点击这里 Matplotlib要求的Python版本是2.5或者2.6, 下载地址为:Python2.6 对于标准版的Python来说,要使用Matplotlib,还需要安装numpy模块,其下载地址为:Numpy 在某些系统上,你可能 ...
在 Windows NT 内核中你是无法使用 time.h 获取当前系统时间的,这个时候你需要用到 Wdm.h(你可以 include Wdm.h, Ntddk.h, 或 Ntifs.h)里面提供的 KeQuerySystemTime() 函数。这个函数和相关头文件需要 Windows 2000, Windows Vista 或者 Windows 7 等 NT 系统。 函数原型: VOID KeQuerySystemTime(__out  PLARGE_INTEGER CurrentTime); 参数: CurrentTime [out] 这是一个指向当前系统时间 ...
                                                     这里介绍如何从创建数据到最后发送数据的一个过程。 首先要做准你要发送的数据,注意你的数据大小至少要不少于64Byte。我们这里设置数据包的大小为80Byte.里面的内容包含一个14Byte的Ethernet Header,其他空位用无用数据填充。下面是具体流程: 一、创建缓冲区----用于保存自定义的数据 Ndis中创建新的一块内存的函数是:NdisAllocateMemoryWithTagPriority(),其他函数自行参考MSDN. 下面是用例: pWriteB ...
    前面一篇文章说道腾讯微博 邀请码, 没有发放邀请码,对不住大家,现在手上有多余的1-2两个邀请码,作为回馈发给Javaeye需要开通腾讯微博的使用者,所以有需要的请留言。如果人数多的话,取留言时间离中午12点整最近的用户。结果于下午1点公布,到时候请留意你们信箱 。    我的腾讯微博地址 http://t.qq.com/leyond ,希望已经开通的用户多多关注~     我已经开通1天了,之前所有的好奇心都已得到满足。我也用过新浪的微博,感觉那里现在比较成熟,可以发图片,音乐、视频等,其他微博我没有用过,不过比腾讯现在好多了,但是腾讯现在在内测,所以相信将 ...
1) 直接打印字符串。   DbgPrint(“Hello World!”); 2) 空结尾的字符串,你可以用普通得C 语法表示字符串常量     char variable_string[] = “Hello World”;    DbgPrint(“%s”,variable_string);   3) 空结尾的宽字符串(WCHAR 类型 ) WCHAR    string_w[] = L“Hello World!”; DbgPrint(“%ws”,string_w); 或者 DbgPrint(“%S”,string_w);     4)Uni ...
在卡卡西的新浪微博期待了N久,就连做梦也在想这个事情,我想我是疯了。 多亏卡卡西慷慨,期间为新浪的小气感到愤慨。玩不起就不要玩。 我的微博,以图为证:      所以多谢卡卡西http://url.cn/3i9ufv 好了,我也不知道我为什么要这个微博,大概我想以后会用的多些吧。 还有就是大家相互Fo。试玩了下,感觉还是不错的。  
Introduction  As it is known, Microsoft officially doesn't support integration of DDK with Visual Studio (any version). So we can use the Visual Studio editor (or any other text editor) for developing the source codes of a driver, but for compiling we should use the DDK build utility. Of cours ...
今天碰到一个比较棘手的内存处理问题。 首先来看一个数据结构: typedef struct _IRP_AND_FILTER { PIRP pIrp; PMS_FILTER pFilter; ULONG OutputBufferLength; }IrpAndFilter, *PIrpAndFilter;  其中pIrp是一个IRP指针,pFilter指的是一个Filter Driver的实例,最后一个数字式OutputBuffer的长度。接着看代码: pIrpFilter = (PIrpAndF ...
人世间,越是得不到的东西,越牵引人的神经。从古至今,或许都是如此。 最近发现很多人都在寻求一枚腾讯微博的邀请码,不可否认,昨天我也加入大军之中,我跟他们一样,就是想提早看看腾讯微博的面目,因为毕竟以后会去使用(如果使用微博的话)。然而现在的情况是只有少数人获得邀请,虽然开通者也可以邀请其他人,但是还是一码难求啊。搜索邀请码无非几个方案: 向朋友等索要(最好认识名人,或者有亲朋好友为TX工作); 百度谷歌呗,毕竟还是有很多慷慨人士无偿发放; 加入像酷口那样的Q群,不乏耐心向那些已经开通的人士索要(潜伏一天,才发现有一人把邀请码发在群里,大家疯狂的抢..可惜我没 ...
原讨论链接: http://community.csdn.net/expert/topicview1.asp?id=4738353 所属论坛: 硬件/系统 审核组: VC/MFC 提问者: codewarrior 解决者: codewarrior 1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。   2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。   3 ...
本文转载自:http://hi.baidu.com/sysinternal/blog/item/f2b877084535c532e92488cc.html 用PsCreateSystemThread来在内核中创建线程。读书笔记而已,高手飘过好 了~~~~~ 先用KmdManager加载驱动,然后在DebugView中查看。。。。 SysThread.c部分代码 NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING regPath ) { PDEVICE_OBJE ...
前面我们谈到了关于异步I/O的实现:关于DeviceIoControl实 现异步的笔记【1】 。可是实现起来,你会发现你的程序在DevieIoControl已经被挂起,而且返回的结果是非0。这就与真正的异步调用返回结果有出入,理论上应该返回0,且GetLastError()值为ERROR_IO_PENDING。 /** Send the packets defined by users */ BOOL FilterWrapper::SendMyOwnPacket() { BOOL result = FALSE; DWORD bytesWritten = 0; ...
一直所做的都是同步实现的。当然很多情况这并不是很好的解决问题。现在手上的问题是:用户层通知底层驱动(Filter Driver)做某件事,然后返回该事件执行的结果。如果该事件是一件简单的事情,这里是指极短时间内可以完成的,那么在允许范围内,我们可以用同步来完成。但是如果该事件是一件耗时的工作,而应用程序不能一直在等着该事件的完成信号,况且好像DeviceIoControl有时间限制的(?)。这就需要用异步的方式来解决问题:例如:同事叫你去吃饭,你听到后,可以马上去,也可以等会再去,吃完后再回到Office就好了。关键是我以前没有实现过,现在就手上的数资料来分析下可以实现的流程。 一、我们先看看 ...
Global site tag (gtag.js) - Google Analytics