PCI总线数据输出板驱动程序的开发
pOutBuffer[0]= m_MemoryRange1.inb(ioOutSize-1);
本文引用地址:https://www.eepw.com.cn/article/265056.htm//读取一个字节数据
I.Information()=1;
return status;
}
NTSTATUS PCI_DADevice::PCI_DA_IOCTL_Write_Handler(KIrp I)
{
NTSTATUS status=STATUS_SUCCESS;
//得到IOCTL缓冲区指针
PUCHAR pInBuffer=(PUCHAR) I.IoctlBuffer ();
//输入缓冲区大小
ULONG ioInSize=I.IoctlInputBufferSize();
//将数据写入偏移地址为n-1的存储单元
m_MemoryRange1.outb
(ioInSize-1,pInBuffer[0]);
//写入大小为一个字节
I.Information()=1;
return status;
}
编译驱动程序,生成一个.inf文件和一个.sys文件,这就是需要安装的驱动程序文件。编译无错误,就可以安装调试驱动程序了。
5 安装调试驱动程序
插入自己设计的PCI板卡,重新启动计算机,出现安装新硬件向导。安装已经生成的.inf文件和.sys文件。安装后,查看pci设备的资源,若与自己硬件设置的资源空间相同,则设备驱动安装成功。
用Windows自带的命令提示符,打开驱动程序框架自带的test应用程序,测试通过驱动程序读写数据。若读取的和写入的数据一致,则驱动程序开发成功。
结束语
本文以一种基于PCI总线的D/A数据输出板卡为例,介绍了在Windows 2000/XP下用DriverStudio开发PCI总线WDM驱动程序的基本方法,详细叙述了应用程序和驱动程序之间的通信机制和硬件访问方法;针对板卡的硬件结构和功能用途,介绍了PCI9052总线控制器PCI配置寄存器和局部配置寄存器地址配置的具体方法;给出了利用安装新硬件向导安装驱动程序的方法,实现了上位机和数据输出板卡的通信。
c++相关文章:c++教程
评论