PCI總線數(shù)據(jù)輸出板驅(qū)動程序的開發(fā)
pOutBuffer[0]= m_MemoryRange1.inb(ioOutSize-1);
本文引用地址:http://butianyuan.cn/article/265056.htm//讀取一個字節(jié)數(shù)據(jù)
I.Information()=1;
return status;
}
NTSTATUS PCI_DADevice::PCI_DA_IOCTL_Write_Handler(KIrp I)
{
NTSTATUS status=STATUS_SUCCESS;
//得到IOCTL緩沖區(qū)指針
PUCHAR pInBuffer=(PUCHAR) I.IoctlBuffer ();
//輸入緩沖區(qū)大小
ULONG ioInSize=I.IoctlInputBufferSize();
//將數(shù)據(jù)寫入偏移地址為n-1的存儲單元
m_MemoryRange1.outb
(ioInSize-1,pInBuffer[0]);
//寫入大小為一個字節(jié)
I.Information()=1;
return status;
}
編譯驅(qū)動程序,生成一個.inf文件和一個.sys文件,這就是需要安裝的驅(qū)動程序文件。編譯無錯誤,就可以安裝調(diào)試驅(qū)動程序了。
5 安裝調(diào)試驅(qū)動程序
插入自己設計的PCI板卡,重新啟動計算機,出現(xiàn)安裝新硬件向?qū)?。安裝已經(jīng)生成的.inf文件和.sys文件。安裝后,查看pci設備的資源,若與自己硬件設置的資源空間相同,則設備驅(qū)動安裝成功。
用Windows自帶的命令提示符,打開驅(qū)動程序框架自帶的test應用程序,測試通過驅(qū)動程序讀寫數(shù)據(jù)。若讀取的和寫入的數(shù)據(jù)一致,則驅(qū)動程序開發(fā)成功。
結(jié)束語
本文以一種基于PCI總線的D/A數(shù)據(jù)輸出板卡為例,介紹了在Windows 2000/XP下用DriverStudio開發(fā)PCI總線WDM驅(qū)動程序的基本方法,詳細敘述了應用程序和驅(qū)動程序之間的通信機制和硬件訪問方法;針對板卡的硬件結(jié)構(gòu)和功能用途,介紹了PCI9052總線控制器PCI配置寄存器和局部配置寄存器地址配置的具體方法;給出了利用安裝新硬件向?qū)О惭b驅(qū)動程序的方法,實現(xiàn)了上位機和數(shù)據(jù)輸出板卡的通信。
c++相關文章:c++教程
評論