zoukankan      html  css  js  c++  java
  • filedisk17.zip vs08 LNK2019 LNK2001问题

    心血来潮,下了个filedisk来看看入门的驱动.结果link不过.

    我是环境是vs08  用的VisuallDDK 默认来生成驱动环境的. 

    把zip包中\filedisk-17\sys\inc\filedisk.h 和filedisk-17\sys\src\filedisk.c 添加到vs08工程中 

    link时filedisk.obj : error LNK2019: 无法解析的外部符号 _WdmlibIoCreateDeviceSecure@36,该符号在函数 _FileDiskCreateDevice@12 中被引用

    一看 

    #undef IoCreateDeviceSecure
    #define IoCreateDeviceSecure WdmlibIoCreateDeviceSecure

    这是个明显错误 ,在工程/属性/链接器/输入/附加依赖项/ 中添加 wdmsec.lib .以为完了.结果link时出现新错误

    1>wdmsec.lib(ppregstate.obj) : error LNK2019: 无法解析的外部符号 ___security_cookie,该符号在函数 _PiRegStateOpenClassKey@20 中被引用
    1>wdmsec.lib(cmregutil.obj) : error LNK2001: 无法解析的外部符号 ___security_cookie
    1>wdmsec.lib(ppregstate.obj) : error LNK2019: 无法解析的外部符号 @__security_check_cookie@4,该符号在函数 _PiRegStateOpenClassKey@20 中被引用
    1>wdmsec.lib(cmregutil.obj) : error LNK2001: 无法解析的外部符号 @__security_check_cookie@4

    一查"__security_cookie" 是应用层的函数?当时感觉有点怪. 当时google没搜到结果.应该是没有搜对关键字.回家后,发现一位朋友的帖子:

    http://blog.csdn.net/stwstw0123/article/details/5742598

    中"PPS. 原来, BufferOverflowK.lib 的意思是内核态的 BufferOverflow 库, BufferOverflowU.lib 是用户态的"

    有点启发,继续google之.终于发现ms 官方的说明

    http://support.microsoft.com/kb/894573

    应该是wdmsec.lib 内部调用了__security_cookie(内核态的bufferoverflowK.lib) 

    "

    bufferoverflowU.lib 此库实现安全 cookie 验证可用的功能,在用户模式和使用 Win32 API 的应用程序
    。大多数应用程序链接到此库。
    bufferoverflowK.lib 此库实现操作系统的内核模式中检查安全 cookie (它的工作原理。在内核模式下运
    行的服务与子系统必须链接到此库。
    bufferoverflow.lib 此库为实现功能,可以用安全 cookie 验证在用户模式下。但是,
    bufferoverflow.lib 与 bufferoverflowU.lib 不同,因为可以使用 bufferoverflow.lib,请不要使用 Win32
    API 的应用程序和服务中。

    "

    这下问题好办了 工程/属性/链接器/输入/附加依赖项/ 中添加 bufferoverflowK.lib .问题解决.

    在这方便下,想看看filedisk入门级驱动的朋友.



  • 相关阅读:
    如何在SQL/400中计算两日期间的天数
    委托、事件与Observer设计模式
    C# 杂项
    泛型学习(二)
    委托
    操作符重载 (operator)
    一个解决方案多个项目
    将方法绑定到委托
    事件
    密封方法 密封类(sealed)
  • 原文地址:https://www.cnblogs.com/bleachli/p/2802239.html
Copyright © 2011-2022 走看看