• 您的位置我爱Aspx >> VC.Net >> 实战DeviceIoControl 之一:通过API访问设备驱动程序
  • 实战DeviceIoControl 之一:通过API访问设备驱动程序

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:38  关键字:
  • Q 设备句柄是从哪里获得的?

    A 设备句柄可以用API函数CreateFile获得。它的原型为 HANDLE CreateFile( LPCTSTR lpFileName, // 文件名/设备路径 DWORD dwDesiredAccess, // 访问方式 DWORD dwShareMode, // 共享方式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全描述符指针 DWORD dwCreationDisposition, // 创建方式 DWORD dwFlagsAndAttributes, // 文件属性及标志 HANDLE hTemplateFile // 模板文件的句柄 );

    CreateFile这个函数用处很多,这里我们用它“打开”设备驱动程序,得到设备的句柄。操作完成后用CloseHandle关闭设备句柄。

    与普通文件名有所不同,设备驱动的“文件名”(常称为“设备路径”)形式固定为“\\.\DeviceName”(注意在C程序中该字符串写法为“\\\\.\\DeviceName”),DeviceName必须与设备驱动程序内定义的设备名称一致。

    一般地,调用CreateFile获得设备句柄时,访问方式参数设置为0或GENERIC_READ|GENERIC_WRITE,共享方式参数设置为FILE_SHARE_READ|FILE_SHARE_WRITE,创建方式参数设置为OPEN_EXISTING,其它参数设置为0或NULL。

    Q 可是,我怎么知道设备名称是什么呢?

    A 一些存储设备的名称是微软定义好的,不可能有什么变化。大体列出如下

    软盘驱动器A:, B:
    硬盘逻辑分区C:, D:, E:, ...
    物理驱动器PHYSICALDRIVEx
    CD-ROM, DVD/ROMCDROMx
    磁带机TAPEx
    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:非议MFC(二)逻辑上的不完备
    下一篇:Windows中文输入法的实现
  • 相关文章