EAD;IRP-MJ-SYSTEM-CONTROL;РIRP-MJ-PNP;IRP-MJ-POWER。Р在主入口例程中,必须设置和这些IRP类型相对应的指针元素,使它们指向相应的派遣函数。РР4、客户服务软件设计Р整个客户服务软件使用VC++编写,分以下几个主要模块设计。Р4.1驱动层与应用层通信模块Р如果通信功能块直接放在应用程序主线程中实现,那么,当应用程序与驱动程序进行数据通信时,主界面就会冻结。为了解决这个问题,我们直接创建一个子线程来单独完成与驱动程序的通信任务,让主界面专心于响应视窗界面的讯息。在子线程中通过调用WindowsAPI函数来实现对USB设备进行IO操作。其中,DeviceIoControl()函数用于传送设备配置信息;CreateFile()用于创建设备对象;WriteFile()和ReadFile()用于对USB设备读写数据。Р4.2控制面板模块Р在客户服务界面上我们创建了RUN、STOP、SINGLE、频谱分析、LOAD和SAVE6个主控功能按钮,来实现其主要控制功能。这一部分设计系统完成启动、停止、单步、存储和装入数据文件等等控制功能。Р4.3波形实时显示模块Р对显示窗口按用户习惯进行定制,并且按控制面板的指定参数来显示波形、刷新波形和对波形进行一定的运算。Р4.4 FFT模块Р利用快速傅里叶变换(FFT)进行频谱分析。本软件中频谱分析采用按时间抽取FFT算法,然后将幅值频谱分析和相位频谱分析结果在用户界面上以坐标曲线形式显示。Р4.5其它模块Р包括波形存取、打印、重放,以及数字/表针双显高精度万用表和高精度可自定义信号发生器功能模块。Р5、结束语Р随着USB2.0标准的提出,USB的应用范围越来越广,已经涉及到几乎所有计算机外设。USB的特点为解决当前虚拟仪器的一些问题提供了新思路。本文是将USB接口引入虚拟仪器、仪表系统的一次探索性研究。