流微型驱动开发指南(六)

流微型驱动开发指南(五) PORT_CONFIGURATION_INFORMATION各成员解释如下:·SizeOfThisPacket  设定本结构的大小,由Class Driver负责填写该域。·HwDeviceExtension  指向Minidriver的设备扩展结构(Device Extension)的指针。Minidriver会藉此buffer记录一些对Minidriver来说是公有的,但是对外是私有的信息。此 阅读详情

六、Minidriver的控制流程
下面要介绍的这几步,一般都和Minidriver的初始化、调用和卸载密切相关。将要用到的命令和结构在DDK的其他章节均有详细描述。
Minidriver的初始化、调用和卸载的步骤如下:
1.PnP管理器枚举到Minidriver所支持的硬件适配器插入,然后PnP管理器通过检查注册表去解析所有相关的符号引用,并向I/O子系统发送请求。
2.I/O子系统加载Minidriver,然后调用Minidriver的DriverEntry例程,在此例程内将分配并初始化一个HW_INITIALIZATION_DATA结构。根据DriverEntry中的信息,创建一个文件对象(file object)。
3.Minidriver的DriverEntry例程接着会调用流类驱动(Stream Class Driver)的StreamClassRegisterMinidriver函数,并把HW_INITIALIZATION_DATA结构作为一个参数传给此函数。HW_INITIALIZATION_DATA结构提供了Minidriver中那些用来处理SRB的函数的地址。这样Minidriver就能相应来自Class Driver的SRB包了。
4.初始化期间,流类驱动(Stream Class Driver)会调用Minidriver中负责接收SRB的主收包函数。此函数由HW_INITIALIZATION_DATA的成员HwReceivePacket所指定。HwReceivePacket是一个函数指针,参见StrMiniReceiveDevicePacket)。调用时,Class Driver会把SRB_INITIALIZE_DEVICE命令放在SRB包的Command域中。Minidriver收到该SRB包后就会执行相应的对硬件适配器的初始化动作。
5.接着,流类驱动(Stream Class Driver)再次调用步骤4中的函数,不同的是,这次发给Minidriver的命令是SRB_GET_STREAM_INFO,表示想获取所有由Minidriver支持的、流的信息。Minidriver收到此命令后,就会返回关于它所支持的,所有流的信息。
6.随后,流类

Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程 Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程 文章目录Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程参考链接:前言:配置步骤: 参考链接: Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程 前言: 说到Digispark(ATTINY85) 微型开发板,我是真滴有很多槽要吐,由于我买来之后一直放着它在吃灰,淘宝的链接都快失效了。 好不容易找到了一个没失效的链接,下载了对应的软硬件驱动,发现插入之后,端口一直无法读取。 阅读详情

相关推荐

Pixie微型LED链式显示模块技术解析与嵌入式驱动开发

链式LED显示模块是嵌入式人机交互的关键组件,其核心在于单线级联、分布式智能控制与低资源占用的协同实现。Pixie模块通过集成ATTINY45微控制器,将协议解析、PWM调光与数据中继功能下沉至像素节点,显著降低主控实时负担,使Arduino、STM32等MCU可在无额外硬件加速条件下驱动数十级显示。该架构兼顾了紧凑尺寸(20.6mm×34.7mm)、宽压供电(2.7–5.5V)与工业级可靠性(过温降频、奇偶校验、恒流可编程),适用于状态看板、IoT设备指示、工业HMI等对空间、功耗与鲁棒性敏感的场景。本文

weixin_35935514的博客 523

基于matlab的心电信号预处理

这是前段时间做的一个课程设计,做的比较简单,没有考虑到太细,只是初步地达到了想要的效果。这次设计主要是对心电信号进行预处理,将其信号中包含的一些干扰滤除或者抑制掉。 一、心电信号 (1)心电信号的特性   人体心电信号是非常微弱的生理低频电信号,通常最大的幅值不超过5mV,信号频率在0.05~100Hz之间。心电信号是通过安装在人体皮肤表面的电极来拾取的。由于电极和皮肤组织之间会发生极化现象

i_weimoli的博客 6万+

避坑!!!Stata双重机器学习(DML)遇到的问题及解决方式

除了上述代码,我还在Anaconda Navigator图形界面来更新conda,更新过的小伙伴应该都知道,这个过程非常漫长,我大概经历了2-3天,在这个过程中电脑一直运行,但是很不幸,无论哪种方式,最终都没有更新到最新版本。安装成功之后,我抱着试一试的心态再次在stata18MP中运行,没有想到,这次竟然运行成功了!我之前一直用的是stata17MP版本,在运行DML的时候,代码一直出错,我以为是python路径没有设置好的原因,就各种在python上面下功夫,经过各种查找后,确定DML必须要在。

王樰沫 3848

VQGAN实战:从文本到高清图像的保姆级生成教程(含PyTorch代码)

本文详细介绍了VQGAN(Vector Quantized Generative Adversarial Network)在文本到高清图像生成中的应用,提供了从环境配置到模型加载、文本编码及图像生成的完整PyTorch代码教程。通过实战案例和高级调优技巧,帮助开发者快速掌握VQGAN的核心技术,实现百万像素级的高清图像生成。

u8v9w0x1y的博客 649

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决) 详情:上一篇发了这个进程问题,在我翻阅了《c语言程序设计第四版》和《算法与数据结构》两本书对照代码加上调试终于找到了解决方法 解决方法: 首先找到项目的源文件右击找到属性 然后选择从生成中排除选择是! 重新生成解决方案,发现代码问题: 之前的代码: #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include &lt

qq_51553982的博客 1万+

别再手动调参了!用Optuna+PyTorch搞定Transformer时序预测超参数(附完整代码)

本文详细介绍了如何利用Optuna和PyTorch实现Transformer时序预测模型的自动化超参数调优。通过贝叶斯优化技术,显著提升单变量时序预测的效率和准确性,并附有完整代码实现。文章涵盖模型架构设计、数据预处理、Optuna调参实战及生产环境部署建议,为开发者提供一站式解决方案。

weixin_33704234的博客 579

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解

李宏毅老师的PPO算法讲解笔记

个人学习笔记 2万+

FFmpeg 开发(14):Android FFmpeg + MediaCodec 实现视频硬解码

MediaCodec 是 Android 提供的用于对音视频进行编解码的类,它通过访问底层的 codec 来实现编解码的功能,是 Android media 基础框架的一部分,通常和 MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface和AudioTrack 一起使用。

字节流动 3万+

【ArcGIS Pro微课1000例】0022:基于DEM进行流域分析生成流域图

填洼Fill,在进行水文分析后续操作前,首先要对DEM进行填洼,创建无凹陷点的DEM。在ArcGIS中使用的是八方向流量建模(D8算法),工具位于水文分析下的【流向】。填洼需要使用水文分析工具下的【填洼】。确定输入与输出即可。

智慧空间实验室 2753

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 深入理解和使用Windows NT驱动程序的执行上下文(一)
下一篇: Windows NT 驱动程序开发人员提示——应注意避免的事项
会思考的草
博客等级 码龄25年 208粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值