- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 USB主机驱动和设备驱动程序 UHC UDC
USB是主从结构,两个包含USB接口的设备之间进行通信,必然一主一从,从程序角度上来看,主机和从机上都运行着各自的驱动程序,才能使二者之间正常通信。所以USB驱动程序分为主机上的USB驱动程序和设备上的USB驱动程序。这里说的驱动程序针对的都是带操作系统的驱动开发,所以名词上会和其他人保持一致,主机上的驱动开发叫做主机控制器驱动开发(UHC,网上很多说设备驱动开发主要就是指的这个),设备上的驱动开发叫做USB从机控制器驱动(UDC)。
2024-03-08 00:54:44 1284 1
原创 STM32 CUBEIDE HAL VL53L0X 激光测距模块 官方API
官方提供的API架构如下主要包含API和API使用示例,其中API中包括core和platform两个目录,根据API手册的说明,终端用户主要修改与平台相关的底层实现即可,主要包含一些读写操作,如下这些函数定义在vl53l0x_platform.c中,我们需要在这个文件中实现他们,其中VL53L0X使用的主要工作就在实现以上这些函数了。实现以上这些函数之后就可以参考官方的API示例程序,写主函数,实现我们想要的功能了。
2024-03-07 23:37:30 2015 5
原创 ESP32 Arduino 环境搭建出现esptool.exe不是内部命令或解析FOBN时出错的问题
最近买了一块ESP32的开发板,可是一上来就被安装环境给困住了,所以发个贴,记录一下安装过程,同时给遇到相同问题的的人一个解决办法。
2023-03-21 14:15:49 1833
原创 windows驱动文件流上下文区别和选用二
windows驱动文件流上下文区别和选用二概述验证思路源码分析获取或创建上下文接口在PostCreate中调用接口测试上下文修改销毁上下文函数的调用逻辑实验结果步骤一:使用记事本打开文件1212.txt步骤二:关闭文件再次使用记事本打开1212.txt步骤三:卸载驱动概述 在第一篇文章(如何创建上下文一)中,以流上下文(FLT_STREAM_CONTEXT)这种类型举例说明了创建流上下文的步骤和需要使用的API函数,但是在windows上下文类型中,与流上下文相似的还有流句柄上下文(FLT_STREA
2021-11-16 20:57:08 5112
原创 windows驱动文件流上下文操作一
windows驱动文件流上下文操作一概述文件流上下文和流句柄上下文区别注册流上下文创建流上下文特别注意获取流上下文释放(Release)文件流上下文概述 文件流上下文在微过滤器(Minifilter)程序中能够为文件相关的操作存储有用的信息,在微过滤器的每个文件处理阶段从指向驱动实例的之阵中获取对应文件的文件上下文信息,为驱动中处理文件提供了巨大的便利也提升了驱动处理文件的效率,试想没有文件流上下文,对同一个文件的属性判断要在每个IRP操作中重复判断,那是多么浪费性能。 上下文是系统为驱动实例和处
2021-11-12 15:32:26 918
原创 Windows内核中的字符串操作
Windows内核中的字符串操作概述定义和初始化头文件格式化输出表基本数据结构初始化一个unicode string变量将ansi转化为unicode将字符串转化为大写从一个字符串复制到另一个字符串中比较字符串的大小追加字符串判断是否含有子字符串概述 在内核编程的过程中,有大量的代码涉及到对字符串的操作,比如需要暂存一部分的字符串、需要拷贝一个字符串到另一个字符串中,需要字符串追加,比较,判断是否含有子字符串等操作,在这些操作的过程中,需要时刻注意操作的字符串指针,避免溢出、为空等造成系统运行异常的错
2021-11-08 22:25:54 1453
原创 Windows进程间通信之命名共享内存
Windows进程间通信之命名共享内存概述消息服务端服务端程序工作过程消息消息端消费端程序工作过程概述 命名共享内存,在windows下主要是使用windows提供的几个API函数,创建、打开、读取、销毁命名共享内存,共享内存比较适合有消息服务者和消息消费者的场景,优点是效率高,适合较多信息的共享,缺点是不太适合双方需要频繁沟通信息的场景。 以下程序分为两部分,一个是负责生产消息的消息服务进程,一个是负责消费消息的消息消费进程;前者创建指定名称的命名共享内存,并将服务消息写入共享内存中,后者打开指
2021-11-03 16:04:05 354
原创 windows驱动中使用AES对IO数据加解密
Windows驱动中使用aes对IO数据进行加解密概述主要测试代码概述涉及到文件透明加解密场景下的加解密算法一般选择有以下几种,aes,rc4,xxtea,简单异或操作,其中RC4、xxtea一般情况下安全性上不如aes好,但是其实现过程比较简单,可以后面有机会在对这两种算法做总结。本次主要使用aes128在驱动中对IO数据流进行加解密,主要方向是写入加密,读出解密。本文将不对驱动相关知识进行说明,仅仅描述一下一个可在驱动程序中正常使用的aes接口,该接口参考开源项目 tiny-aes-c.主要测试
2021-11-01 22:11:30 741 1
原创 AES入门--文件加解密
AES文件加解密本文将基于openssl库使用AES对称加解密对一个文件的内容进行简单的加解密,在实际开发过程中面对的文件可能会很大,本文的实现逻辑是一次只加解密一个分页大小的内容,目前默认设定为4K,加密要求是加密之后不改变原文件的大小,这样的加密方式在使用minifilter文件过滤系统中进行透明加解密也是可以参考借鉴的。AES加解密基础原理的文章很多了,如何用C语言实现的文章也不胜枚举了,这里就只有简单的使用现有算法的例子,了解原理可以参考一下其他文章,主要咱也没弄明白呀,哈哈哈哈(所以文章有误的
2021-10-30 17:08:06 1741 1
原创 Windows剪贴板复制消息和内容截取
Windows应用程序开发Windows剪贴板复制消息和内容截取解决了什么问题实现思路实现过程1. 监听剪贴板内容更新消息2. 捕获剪贴板消息3. 获取剪贴板内容获取剪贴板文本信息获取剪贴板文件复制消息剪贴板粘贴消息的一些思考Windows剪贴板复制消息和内容截取解决了什么问题在Windows应用开发的过程中,根据需求有时候会需要监控一下剪贴板,看看剪贴板的内容是否是我们应用程序感兴趣的内容。比如下载器,往往会监控剪贴板内是否有下载链接,然后弹出下载页面本文将一探究竟,自己实现一个当剪贴板内容有
2021-10-28 20:38:49 1626
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人