转载:ISA板卡读取数据的驱动程序源码(1)

这篇博客主要分享了如何阅读和理解ISA板卡的驱动程序源码,重点涉及access、extension、delay和cmd等关键操作。适合程序开发者参考学习。
摘要由CSDN通过智能技术生成

瀚海星云 -- Kernel精华区文章阅读


本人曾经做过一个关于对各种ISA板卡读取数据的驱动程序, 

期间也曾遇到很多困难,有幸得到本版几位大侠的帮助,感 

激不已,先将我的源码共享给大家,希望能对大家有所帮助, 

也希望能对繁荣本版进一点微薄之力! 

(注:本程序参考了“WDM设备驱动程序开发指”的例程, 

  因此,甚至在有些地方没有改动,DeviceIo.cpp中的代码 

  为主要部分) 

  

GUID.h 

/******************************************************************** 

    created:    2001/07/01 

    created:    1:7:2001   22:03 

    filename:   GUID.h 

    author:     Tulip 

*********************************************************************/ 

  

  

// {6C5DD839-5328-409b-AD0C-F15EF88A1E2A} 

DEFINE_GUID(VQC_GUID, 0x6c5dd839, 0x5328, 0x409b, 0xad, 0xc, 0xf1, 0x5e, 

 

0xf8, 0x8a, 0x1e, 0x2a); 

  

// {4E8F502F-859B-4080-B4A3-02033B198E26} 

DEFINE_GUID(VQC5352_GUID, 0x4e8f502f, 0x859b, 0x4080, 0xb4, 0xa3, 0x2, 0x3, 

0x3b, 0x19, 0x8e, 0x26); 

  

  

Ioctl.h 

/******************************************************************** 

    created:    2001/07/01 

    created:    1:7:2001   22:03 

    filename:   Ioctl.h 

    author:     Tulip 

*********************************************************************/ 

  

//  Return status codes 

  

enum VQC_IO_ERRORS 

    VQC_OK = 0, 

    VQC_UNRECOGNISED_CMD,               // Unrecognised command 

    VQC_NO_CMD_PARAMS,              // Command does not have required 

    VQC_NO_CMD_PARAMS,              // Command does not have required 

number of parameters 

    VQC_NO_OUTPUT_ROOM,             // No room in output buffer 

    VQC_NO_INTERRUPT,                   // IRQ_CONNECT: No interrupt 

resource given 

    VQC_ALREADY_CONNECTED_TO_INT,       // IRQ_CONNECT: Already connected 

to interrupt 

    VQC_NOT_IN_RANGE,                   // IRQ_CONNECT: Interrupt register 

not in range 

    VQC_BAD_INTERRUPT_VALUE,            // IRQ_CONNECT: Impossible to get 

interrupt value with specified mask 

    VQC_CANNOT_CONNECT_TO_INTERRUPT,    // IRQ_CONNECT: cannot connect to 

the given interrupt 

    VQC_DELAY_TOO_LONG,             // Delay must be 60us or smaller 

    VQC_CANCELLED,                  // Command processing stopped as IRP 

cancelled 

    VQC_BYTE_CMDS_ONLY,             // Only BYTE/UCHAR size commands are 

currently supported 

}; 

  

  

//  Command codes   reg:    1 byte Offset into address space  </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值