
windows
文章平均质量分 88
雨中风华
e-mail: fanxiushu@163.com
GITHUB: https://github.com/fanxiushu
能开源免费的都在我的GITHUB或优快云公布了,
其他的源码请勿再询问开源获取,因为问了也白问。
展开
-
Windows蓝牙驱动开发之模拟HID设备(二)(把Windows电脑模拟成蓝牙鼠标和蓝牙键盘等设备)
// 应用层传递下来的相关参数。就这样,经过这么一通修改之后,当我们使用 BRB_REGISTER_PSM 注册任何PSM,都会成功,当然包括0x11和0x13。至此,一个传输就完成了,同时包括接收和发送,应用层只要发送IOCTL_BTH_DATA_TRANSFER 命令到驱动中,当然,可以在应用层封装 IOCTL_BTH_DATA_TRANSFER,把他作为类似 recv,send函数来实现。其中蓝牙模拟HID设备的部分,则是采用过滤USB总线,重定向到 0x11和0x13 这两个值的,从而达到目的。原创 2024-03-25 12:20:36 · 1415 阅读 · 0 评论 -
windows无盘启动技术开发之不同网卡使用同一个启动镜像的问题
因此要在 boot-start 阶段正常进行网络通信,网卡驱动也必须是start==0, 而默认情况下,网卡驱动基本都是start=3,简单的说,Boot-Start阶段可以没有磁盘,但是必须在这个阶段建立起磁盘,能让windows进入下一个阶段前,正常访问磁盘。这是因为windows系统中,不同插槽位置,可能会生成不同的实例串,而一号插槽位置的网卡驱动生成的实例串与二号的不同。因此,作为windows系统盘的磁盘驱动,必定是在boot-start阶段(也就是注册表中start==0)的驱动。原创 2023-07-14 13:46:14 · 1622 阅读 · 3 评论 -
windows无盘启动技术开发之传统BIOS(Legacy BIOS)引导程序开发之一
而如果,我们把 13H中断的中断服务函数给替换掉,替换成我们的常驻内存的函数入口,而这个函数则通过PXE通信,把磁盘读写请求重定向到服务器端。这样不管是 MBR引导程序,ntldr,bootmgr等,通过INT 13H读写磁盘的时候,其实是通过我们的函数重定向到了服务器端。这个就是我们开发引导程序的最主要和核心的功能。其实,从另一个角度去理解,这就是一个在16位的实模式下另类的虚拟磁盘而已。原创 2023-03-01 21:38:09 · 2130 阅读 · 0 评论 -
Windows 虚拟磁盘驱动开发(采用原始办法实现类似Storport框架的相同功能)
为何想到要用原始办法来开发类似Storport框架的虚拟磁盘驱动?估计是闲的蛋疼吧。又或者为了彰显曾经无法理解和实现的,现在具备了一定基础,再来实现,却发现变得异常的简单。记得以前开发winxp下的Scsiport框架的虚拟磁盘驱动,非常的麻烦,不但要解决虚拟模拟部分,安装驱动电脑还得重启好几次才能安装成功。原创 2023-01-13 21:33:11 · 2157 阅读 · 0 评论 -
windows平台使用NSP拦截具体进程的域名解析过程(xFsRedir的代理功能之域名代理)
NSP的大致实现办法:我们需要开发一个dll动态库,这个动态库必须导出 NSPStartup 接口函数,而在这个接口函数中,会提供 NSP_ROUTINE 结构的参数,里边我们必须填写正确对应的回调函数,其中包括三个核心函数:NSPLookupServiceBeginNSPLookupServiceNextNSPLookupServiceEnd只要dns查询接口函数发起调用,这三个核心函数就会被调用。于是我们在此回调函数中就能找到dns域名和具体进程的对应关系。原创 2022-10-17 18:03:52 · 2176 阅读 · 0 评论 -
WIN10以上平台实现UCX框架的USB虚拟总线驱动(USB主机控制端驱动)
WIN10以上的内核中,微软似乎发现了这样的问题,终于实现了一个UCX基础框架,方便USB虚拟总线驱动的开发。当然,也只能支持WIN10平台,因此下面的内容都是针对win10平台的阐述(当然也同样适用WIN11及以后的升级版本)UCX是 USB Controller Extension的简称,意思是USB主机控制器扩展,其实就是个接口库,与我们应用层理解的dll本质上没有区别。在优快云上前面的文章阐述WIN10 平台的UDE框架(一个纯粹的模拟虚拟USB总线的驱动的框架) ...原创 2022-06-01 14:12:57 · 1986 阅读 · 2 评论 -
Windows远程桌面实现之十二:桌面屏幕通过ONVIF协议与NVR等监控录像设备对接,以及进一步增强直播功能
by fanxiushu 2021-10-27 转载或引用请注明原始作者。标题还是取名叫 “Windows远程桌面实现“,其实经过全面的移植,xdisp_virt程序已经支持 macOS系统,各类linux发行版,(iOS也移植了,只是发布iOS的程序实在是麻烦,所以并没发布出来,暂时也没有对应的Android手机,所以Android系统暂时也没有移植)所以xdisp_virt已经不再是单一的Windows版本的程序了,标题中还保持”Windows“,是因为讲述这个系列的文章比较多。本文讲述在x原创 2021-10-28 12:18:08 · 6676 阅读 · 0 评论 -
xFsRedir程序2021年09月更新(进一步扩展虚拟局域网和代理功能)
by fanxiushu 2021-09-30 转载或引用请注明原始作者。其实xFsRedir项目的开发的文章也是一个系列,而且持续的时间比 xdisp_virt 项目更久,只是文章的标题取得有点乱七八糟的, 容易让人看不出来。xFsRedir的本次更新主要集中在虚拟局域网和代理功能上。主要包括:1,修改驱动和应用层 ,用以支持不同网段的局域网组网的功能,2,修改驱动和应用层,调整和扩展NAT路由以及网络代理功能。3,修...原创 2021-09-30 17:55:37 · 637 阅读 · 0 评论 -
xFsRedir程序的NAT网关,以及网关代理和本机代理功能的使用简介(2021年6月更新)
by fanxiushu 2021-06-01 转载或引用请注明源作者xFsRedir程序的开发周期最长,功能也越来越丰富,基本都是大家在使用windows电脑中经常需要使用到的功能(至少我是这样)。比如多台电脑文件目录共享问题,尤其是各种不同平台,有时还需要把整块磁盘共享出来,尤其是需要经常访问视频文件,游戏文件这类体量非常庞大的文件群,使用专门的存储设备,总比放到笔记本这类存储容量有限的电脑中好。至于xFsRedir目录重定向功能和虚拟磁盘功能,优快云上的文章已经讲述的非常多了,这里不再赘原创 2021-06-01 20:18:02 · 770 阅读 · 3 评论 -
windows平台xFsRedir程序2021年2月更新(添加虚拟局域网功能)
by fanxiushu 2021-020-20 转载或引用请注明原始作者相信大家对真实的局域网都不陌生,一个公司,一个家庭,甚至一台电脑上使用vmware虚拟机都可以组建起一个局域网。这些局域网通过NAT连接到上一级网络,然后再上一级,再上一级。。。直到连接到主干网,当然有些设备非常幸运,分配的IP地址,可以在主干网中畅...原创 2021-02-22 13:28:56 · 1209 阅读 · 12 评论 -
windows平台xFsRedir目录重定向程序2020年更新
by fanxiushu 2020-12-09 转载或引用请注明原始作者今年对xFsRedir程序的更新幅度是比较大的.首先在大概4月份的时候,增加了基于更底层的虚拟磁盘驱动来替换主驱动xfs_redir.sys内嵌的简单虚拟磁盘功能。而这次的更新则是增加了文件重定向功能,增加了特殊程序才能使用重定向的功能...原创 2020-12-10 16:39:12 · 1221 阅读 · 16 评论 -
WIN10系统 Indirect Display 虚拟显示器之特殊应用
by fanxiushu 2020-05-20 转载或引用请注明原始作者。有人询问我是否可以实现这样一种功能:对windows输出的每一帧图像数据显示做一些特殊处理(比如球形桌面,曲面化等特效),然后再显示到显示器上。而且还不止一个人这样咨询过,虽然我不大清楚这种需求具体用在何处,估计也是一些特殊场所。这种需求,最先想到的,也最直观的想法就是能否给显卡驱动添加一个过滤驱动,然后拦截图像数据,然后再做些特殊处理。可惜想法是美好的,却是难以实现的,甚至是不大可能实现的。首先windows中就没显卡过原创 2020-05-20 16:25:24 · 18347 阅读 · 11 评论 -
USB虚拟总线驱动开发扩展之(利用虚拟USB总线驱动实现U盘模拟)
by fanxiushu 2020-03-25 转载或引用请注明原始作者。USB虚拟总线驱动的使用范围是非常广泛的,可以使用它来模拟各种通用的USB设备。以前的文章阐述过基于windows平台和基于linux平台中的USB虚拟总线驱动开发,比如如下链接阐述的是在linux平台中的虚拟USB总线驱动开发原理:https://blo...原创 2020-03-25 21:43:38 · 4453 阅读 · 7 评论 -
Windows 虚拟摄像头驱动开发之 基于AVstream流内核的摄像头驱动
by fanxiushu 202-03-01 转载或引用请注明原始作者。对于windows平台下的虚拟摄像头实现方式的研究比较多,范围也比较广,曾采用各种方式来实现windows平台下的虚拟摄像头。从优快云上的第一篇文章开始:https://blog.youkuaiyun.com/fanxiushu/article/details/8496747 (虚拟摄像头驱动原理开发)文章描述的是利用老的流内核来...原创 2020-03-02 12:55:00 · 7847 阅读 · 7 评论 -
windows平台xFsRedir程序更新(虚拟磁盘镜像存储方式改进和xFsRedir缓存原理等)
by fanxiushu 2018-05-12 转载或引用请注明原始作者。xFsRedir是windows平台下的分布式网络文件系统程序。这个软件已经持续比较长的时间了,最近更新了部分功能。完整版本安装和使用请查阅如下链接:https://blog.youkuaiyun.com/fanxiushu/article/details/53...原创 2018-05-12 10:27:38 · 3210 阅读 · 20 评论 -
虚拟摄像头之DirectShow虚拟摄像头开发
by fanxiushu 2018-04-06 转载或引用请注明原始作者。之前优快云上的博客,较多的文章阐述了虚拟摄像头的开发,而且是两种类别的。1,比如使用老的内核流框架开发WDM虚拟摄像头驱动,博客链接:https://blog.youkuaiyun.com/fanxiushu/article/d...原创 2018-04-06 02:21:58 · 19184 阅读 · 43 评论 -
Windows远程桌面实现之六(新版本框架更新,以及网页HTML5音频采集通讯)
by fanxiushu 2018-08-21 转载或引用请注明原始作者。到目前为止,包括本文发布了六个系列,能坚持到现在也属不易。第一篇:https://blog.youkuaiyun.com/fanxius...原创 2018-08-21 12:49:18 · 6165 阅读 · 8 评论 -
WIN7以上系统WDDM虚拟显卡开发(WDDM Filter/Hook Driver 显卡过滤驱动开发之一)
by fanxiushu 2018-09-16 转载或引用请注明原始作者。 这里讨论的都是win7以上平台的WDDM模型的显卡驱动,而不是WINXP之前的XPDM模型的显卡驱动。实际上没有"显卡过滤驱动...原创 2018-09-17 01:04:06 · 25339 阅读 · 53 评论 -
windows7以上平台 NDISFilter 网卡过滤驱动开发
by fanxiushu 2019-01-16 转载或引用请注明原始作者这里讨论的都是基于WIN7以上平台,NDIS 6.0以上版本的网络驱动。做个驱动的目的,是因为很早之前,我使用 TDI 和 NDIS5.1 框架的...原创 2019-01-16 23:18:24 · 7676 阅读 · 14 评论 -
NdisFilter驱动数据全部转发到应用层的性能之优化(使用共享环形队列方式)
by fanxiushu 2019-01-22 转载或引用请注明原始作者。在上一篇文章中,https://blog.youkuaiyun.com/fanxiushu/article/details/86516610 (windows7以上平台 NDISFilter 网卡过滤驱动开发)阐述了NdisFilter驱动开发过程,并且结合我的实际应用,把数据包全部转发到应用层来处理,从而实现应用层级别的 NA...原创 2019-01-22 18:35:18 · 1649 阅读 · 6 评论 -
windows7以上平台NDIS6框架的NDIS协议驱动开发
by fanxiushu 2019-01-30 转载或引用请注明原始作者。提到NDIS协议驱动,可能比较陌生,因为毕竟用得挺少的。但是一提到WireShark或ethereal等抓包软件,大家就不再陌生了。这些抓...原创 2019-01-30 20:52:27 · 6039 阅读 · 3 评论 -
NDIS协议驱动应用之(另类的NAT路由程序开发)
by fanxiushu 2019-02-23 转载或引用请注明原始作者。在上一篇文章中,描述了windows7以上平台下NDIS协议驱动的开发过程。本文将描述NDIS协议驱动的其中一个用途,用于实现一个介于应用层和驱动层的混...原创 2019-02-27 00:19:30 · 1700 阅读 · 4 评论 -
Windows桌面实现之八(DirectX HOOK 方式截取特殊的全屏程序之二)
by fanxiushu 2019-04-18 转载或引用请注明原始作者。接上文。WIN7以上系统WDDM虚拟显卡开发(WDDM Filter/Hook Driver 显卡过滤驱动开发之一) 这篇文章,曾经提到过:windows的应用程序中,绘图的基础图形库包括...原创 2019-04-21 00:42:41 · 14407 阅读 · 32 评论 -
Windows桌面实现之七(DirectX HOOK 方式截取特殊的全屏程序之一)
by fanxiushu 2019-04-16 转载或引用请注明原始作者。因为间隔的时间较长,为了方便查阅,下面是以前的六篇文章地址链接:https://blog.youkuaiyun.com/fanxiushu/article/details/732692...原创 2019-04-17 19:50:27 · 13561 阅读 · 7 评论 -
Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)
by fanxiushu 2019-06-24 转载或引用请注明原始作者。这里与远程桌面关系不是太大,但这个部分是xdisp_virt远程控制程序的实现多显示器桌面扩展的子功能,因此也归为远程桌面开发一类。这篇文章与之前发布的...原创 2019-06-24 20:57:34 · 28549 阅读 · 54 评论 -
windows平台xFsRedir目录重定向程序2019年更新
by fanxiushu 2019-08-12 转载或引用请注明原始作者。使用过xFsRedir程序的人大概都知道这个程序是做什么用的。它把各种服务端的文件夹也就是目录,映射到本地某个文件夹中,而且操作这个被重定向的文件夹就跟本地文件系统一样...原创 2019-08-13 08:20:59 · 2380 阅读 · 37 评论 -
Overlapped I/O 和 完成端口等异步IO在内核中的通知方式
By Fanxiushu 2013, 引用和转载请注明原作者写这篇文章的动机:是因为最近在应用程序中调用DeviceIoControl读写自己做的一个驱动程序的数据,传输的数据包很多。老的处理方式只是简单的采用多线程阻塞读写数据,这几天突然想到了完成端口,于是换成 完成端口后,只用一个线程,投递上百个Overlapped读写操作,效率比原来高了许多,因此就想从windows内核层原创 2013-03-17 21:09:50 · 2887 阅读 · 0 评论 -
Windows远程桌面实现之四(在现代浏览器中通过普通页面访问远程桌面)
by Fanxiushu 2017-12-21 转载或引用请注明原始作者。前几篇文章分别阐述了如何抓取windows桌面图像,以及相关摄像头,电脑内部声音等采集,相关连接如下:http://blog.youkuaiyun.com/fanxiushu/article/details/73269286 (抓屏技术总览 MirrorDriver,DXGI,GDI)http://blog.c原创 2017-12-22 09:31:28 · 38885 阅读 · 16 评论 -
MacBook Pro 2017 13寸版 触摸板windows驱动开发(开发HID鼠标键盘驱动之一)
by fanxiushu 2017-10-27 转载或引用请注明原始作者。做这个驱动,写这篇文章的目的就是因为macBook pro 2017版的触摸板在windows平台下难用,于是决定重新开发macbook pro 2017触摸板的windows驱动。请稍后关注 GITHUB和优快云提供的源代码和驱动程序。如下连接,http://blog.youkuaiyun.com原创 2017-10-30 18:54:06 · 20988 阅读 · 12 评论 -
Windows7以上使用WFP驱动框架实现IP数据包截取(二)
by fanxiushu 2017-10-23 转载或引用请注明原是作者。接上文。上文所说只要挂载其中的6个WFP过滤点,就可以截获IP层的所有数据包。再把截获的数据包转发到应用层,应用层处理之后,再发给内核驱动,经过这样的过程,就完成一个数据包的处理过程。IP数据包到达应用层之后,我们就可以随心所欲的实现某些功能。比如做流量分析,可以细化到端口和具体IP等,可以做NAT转发,原创 2017-10-25 21:44:02 · 11496 阅读 · 10 评论 -
基于TCP流协议的数据包通讯
TCP通讯是流协议,它不像UDP那样基于包为边界的通讯方式,TCP流式协议,举个简单例子,一端用send 分别发送 100,123,120字节的数据,另一端用recv可以一下子接收到 100+123+120=343字节的数据,或者先接收 3个字节的数据,再接收余下的340字节,不管另一端怎么接收,最终是要接收到343字节的数据。而且TCP保证数据的完整性和顺序,也就是两端是数据同步原创 2016-02-03 23:43:42 · 7533 阅读 · 0 评论 -
驱动里执行应用层代码之KeUserModeCallBack,支持64位win7(包括WOW64)
by Fanxiushu 2014-07-26在驱动层(ring0)里执行应用层(ring3)代码,这是个老生常谈的技术,而且方法也挺多。这种技术的本质:其实就是想方设法在驱动层里把应用层代码弄到应用层去执行。比如在APC异步调用中,KeInsertQueueApc,KeInitializeApc等函数中可设置一个在ring3层执行一个回调函数,这样就可以原创 2014-07-26 20:18:14 · 10456 阅读 · 8 评论 -
基于IE内核的多标签浏览器开发过程
By Fanxiushu 2014 转载或引用请注明原作者在Windows平台做IE内核浏览器,可以非常简单,拖拖控件就能形成一个简单的原创 2014-03-23 00:16:40 · 8232 阅读 · 75 评论 -
Windows平台利用wininet做的HTTP的GET和POST,支持HTTPS
C++开发中,实现HTTP的代码总是比其他开发语言麻烦,原创 2014-04-28 17:13:54 · 7305 阅读 · 0 评论 -
磁盘驱动与虚拟磁盘Miniport驱动一
这里讨论的是磁盘驱动,而非文件驱动,两者是不同的。文件驱动是更上层的驱动,他管理着文件的所有属性和内容,面对的是单个的文件对象。磁盘驱动是在文件驱动之下的,所有对文件的读写,已经被上层的文件驱动转换成单纯的扇区和位置偏移的读写请求。所有的文件操作,都会通过文件驱动,最终进入到目标磁盘。这个时候,磁盘驱动就发挥了它应该有的作用,他协调控制磁盘硬件和上层驱动的读写请求。虚拟磁盘驱动原创 2013-08-11 17:31:34 · 5064 阅读 · 5 评论 -
WDM Filter 驱动的一点基础知识
By Fanxiushu ,引用和转载请注明原作者WDM Filter是一类驱动的总称,它把自己挂载到功能设备(FDO)之下或者之上,拦截所有的IRP,对这些IRP分析处理,从而达到过滤的目的。它跟 NT式过滤驱动都是一样的目的,比如前面文章讲到的TDI Filter驱动就是个标准的NT式过滤驱动,但是处理方式上稍微有些不同,主要区别在 WDM需要处理即插即用和电源上。这里主要原创 2013-04-22 14:30:08 · 6454 阅读 · 15 评论 -
摄像头过滤驱动
By Fanxiushu ,引用和转载请注明原作者本来是打算做个声卡过滤驱动的,可以用来采集电脑内部的声音,但是网上查的的资料显示,事情不是这么简单,或者我还没掌握其中的处理办法。声卡和摄像头都属于内核流媒体类驱动,属于同一类型。拦截 IOCTL_KS_READ_STREAM 可以截获读取的数据流,拦截 IOCTL_KS_WRITE_STREAM 可以截获写入的数据流。听起原创 2013-04-24 00:04:13 · 4362 阅读 · 14 评论 -
WIN7系统内核网络堆栈实现简述
了解windows平台内部网络堆栈实现架构,对于我们开发 NDIS驱动,TDI驱动,WSK驱动,WFP驱动等网络驱动更有帮助。因为windows并不是开源系统,不像linux那样可以从源代码中详细了解网络堆栈的实现流程,所以只能从MSDN文档,WDK驱动开发包的实例代码,以及网络上零碎的资料来做个大致的了解。我们从底层往上层一直到用户层了解win7的网络堆栈流程。最底层的是NDIS原创 2013-03-03 01:23:39 · 6100 阅读 · 1 评论 -
NDIS IM调试遇到的问题:OID_TCP_TASK_OFFLOAD
这几天调试NDIS xLan的时候,发现在 win2003上运行不正常,以前在 XP,WIN7,WIN8上测试都能正常,于是查找原因。先说说这驱动是干什么的,这是个NDIS中间驱动,采用应用层拦截的方式处理数据包,就是在中间驱动里获得的数据包,发送到应用层程序,应用层程序分析处理之后再返回给中间驱动。很类似应用层防火墙的功能,数据包的拦截处理全在应用层完成。类似的实现,可参看 li原创 2013-03-07 16:33:12 · 2160 阅读 · 0 评论 -
海思开发板wince平台实现照相机功能
如下是一年多前某个项目的开发经验: 平台 Hi3611 win mobile6,视频数据通过camera采集,camera驱动是别人做好的,采集的是 640*480 高清的VGA视频。音频数据通过普通的话筒采集, 2声道,44100采样率,16位。使用DirectShow和DirectDraw技术。DirectDraw主要是在预览中发挥作用,DirectShow原创 2013-03-03 22:41:49 · 1520 阅读 · 0 评论