由于内核的特殊性. 所以对LICOM的部分需要注意的地方进行阐述: (主要针对BOOT级驱动,动态加载方式可以忽略)

  • 接口的LICLIENT::Initialize以及LISERVER::Initialize函数如果在BOOT驱动中,一定要放到一个初始化线程中进行循环调用,一直到调用成功为止, 这是因为,某些BOOT驱动先于LICOM依赖的系统驱动先启动.
  • 接口的LICLIENT::UserRequestCall以及LISERVER::UserRequestCall函数中需要Return一个回复缓冲区.这个缓冲区请私用ExAllocatePool创建(用户模式适用malloc创建), 并且这个缓冲区不需要你来释放, 该函数内部会释放. 但是请务必遵守这个原则(同样适用于LICOM.DLL)
  • Request方法返回的ReplyData请使用FreeReplyBuffer释放
  • LICOM.SYS直接复制到System32\drivers目录即可
  • 支持的中断级别为: <= APC_LEVEL
    支持的操作系统为: Windows 2000 / XP / VISTA / 7 / 8
                                 Windows Server 2003 / 2008 / 2012


2# sdxiao 发表于 2012-12-5 22:24:08
由于内核的特殊性. 所以对LICOM的部分需要注意的地方进行阐述: (主要针对BOOT级驱动,动态加载方式可以忽略)

接口的LICLIENT::Initialize以及LISERVER::Initialize函数如果在BOOT驱动中,一定要放到一个初始化线程中进行循环调用,一直到调用成功为止, 这是因为,某些BOOT驱动先于LICOM依赖的系统驱动先启动.
接口的LICLIENT::UserRequestCall以及LISERVER::UserRequestCall函数中需要Return一个回复缓冲区.这个缓冲区请私用ExAllocatePool创建(用户模式适用malloc创建), 并且这个缓冲区不需要你来释放, 该函数内部会释放. 但是请务必遵守这个原则(同样适用于LICOM.DLL)
Request方法返回的ReplyData请使用FreeReplyBuffer释放
LICOM.SYS直接复制到System32\drivers目录即可
支持的中断级别为: <= APC_LEVEL
支持的操作系统为: Windows 2000 / XP / VISTA / 7 / 8
                             Windows Server 2003 / 2008 / 2012
您需要登录后才可以回帖 登录 | 获取账号

Archiver|Rerede.com     

GMT+8, 2017-6-25 20:23

Powered by R-Team X2

© 2011-2012 Rerede.com.

回顶部