PCI總線數據輸出板驅動程序的開發
pOutBuffer[0]= m_MemoryRange1.inb(ioOutSize-1);
本文引用地址:http://www.104case.com/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++教程
評論