Migrating VC6 driver project to VC8 with DDK 2003

Windows 2003 DDK 立即下载

We have VC6 driver project configured as described in Creating Driver project for Visual Studio 6.0 article. Our task is to build it with minimal efforts under Visual Studio 8 using DDK 2003. Also we want to keep compatibility with previous versions of Visual Studio and DDK. At least .MAK file generated from VC6 .DSP project shall work with nmake utility under all environments.

Note: Sometimes DDK 2003 comes under name DDK XP, but DDK 2003 has very specific inc and lib directory structure:

XP DDK DDK 2003
/inc
/lib
  /i386
 
/inc
  /atl21, /atl30, /crt, /ddk, /ifs,
  /inc16, /mfc42, /w2k, /wnet, /wxp
/lib
  /lib16
  /w2k
    /i386
  /wnet
    /amd64, /i386, /ia64
  /wxp
    /i386, /ia64
Problems
  • different directory layout (see above), and as result disability to find headers .H and libraries .LIB
  • new compiler (cl.exe) and linker (link.exe) options
    cl : Command line warning D9035 : option 'GX' has been deprecated and will be removed
        in a future release
    cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
    
  • string functions deprecation warning
    c:/projects/src/driver/mycpp.cpp(22) :
        warning C4996: 'strcpy' was declared deprecated
            C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE/string.h(73) :
                see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using
                strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE.
                See online help for details.'
    
    
  • "unresolved external" errors
    mycpp.obj : error LNK2001: unresolved external symbol ___security_cookie
    mycpp.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4
    mycpp.obj : error LNK2001: unresolved external symbol __except_handler4
    LINK : error LNK2001: unresolved external symbol __load_config_used
    
Solution N1 (by Alter)

Note: All these steps must be performed for each build configuration (Debug/Release).

  • Set still one environment variable - BASEDIR2K3 (I would recommend system one, not user-specific) like this:
    BASEDIR2K3 = C:/Develop/DDK2003
    
  • Open VC6 project settings under C/C++ section
    • Add the following include seacrh paths to the end of list
      $(BASEDIR2K3)/inc/ddk/wxp,$(BASEDIR2K3)/inc/ifs/wxp, $(BASEDIR2K3)/inc/wxp,
        $(BASEDIR2K3)/inc/crt
      
      for example my includes look so:
      $(BASEDIRNT4)/inc,$(BASEDIR2K)/src/filesys/inc,$(BASEDIRXP)/inc/ddk,$(BASEDIRXP)/inc/ifs,
        $(BASEDIRXP)/inc,$(BASEDIR2K3)/inc/ddk/wxp,$(BASEDIR2K3)/inc/ifs/wxp,
        $(BASEDIR2K3)/inc/wxp,$(BASEDIR2K3)/inc/crt
      
      Note: I used wxp subdirectory assuming that project could be built with XP DDK. Among this w2k and wnet options are available.
    • Replace /GX option for /EHsc, it is obviously what for :)
    • define the following constants:
      _CRT_SECURE_NO_DEPRECATE
      _CRT_NONSTDC_NO_DEPRECATE
      _CRT_NON_CONFORMING_SWPRINTFS
      
      This will solve "warning C4996: 'strcpy' was declared deprecated" problem. You can also define them in your common include file like this:
      #define _CRT_SECURE_NO_DEPRECATE        // For VS 2005
      #define _CRT_NONSTDC_NO_DEPRECATE       // For VS 2005
      #define _CRT_NON_CONFORMING_SWPRINTFS   // For VS 2005
      
    • Also, add /GS- option. It will solve problems with ___security_cookie and __except_handler4, though shall produce non-critical warning under VC6, since VC6 doesn't know this option.
  • Open Link section
    • Add the following library seacrh paths
      $(BASEDIR2K3)/lib/wxp/i386
      
    • Also, add there /safeseh:no option. It will solve problems with __load_config_used, though shall produce non-critical warning under VC6 too.
  • Now export .MAK file and try to build project with it under Visual Studio 8. Note: by default Visual Studio 8 does not set neither system nor user INCLUDE and LIB environment variables. Since these variables may be required for successful build, it worth runing Visual Studio 2005 command prompt and executing nmake under this environment.
Solution N2 (by DeathSoft)

In order to get ___security_cookie, you have to add BufferOverflowK.lib to your project. You can get it from newer DDK. Set /entry:"GsDriverEntry@8" option, this information can also be found in MSDN. To have no problems with /safeseh:yes (it is the default in new Visual Studio) add the following file to project:

safeseh.c:
extern ULONG_PTR __security_cookie;  /* /GS security cookie */

/*
 * The following two names are automatically created by the linker for any
 * image that has the safe exception table present.
* /

extern  PVOID __safe_se_handler_table[]; /* base of safe handler entry table * /
extern  UCHAR  __safe_se_handler_count;  /* absolute symbol whose address is
                                           the count of table entries * /
typedef struct {
    ULONG       Size;
    ULONG       TimeDateStamp;
    USHORT      MajorVersion;
    USHORT      MinorVersion;
    ULONG       GlobalFlagsClear;
    ULONG       GlobalFlagsSet;
    ULONG       CriticalSectionDefaultTimeout;
    ULONG       DeCommitFreeBlockThreshold;
    ULONG       DeCommitTotalFreeThreshold;
    ULONG       LockPrefixTable;            // VA
    ULONG       MaximumAllocationSize;
    ULONG       VirtualMemoryThreshold;
    ULONG       ProcessHeapFlags;
    ULONG       ProcessAffinityMask;
    USHORT      CSDVersion;
    USHORT      Reserved1;
    ULONG       EditList;                   // VA
    ULONG_PTR   *SecurityCookie;
    PVOID       *SEHandlerTable;
    ULONG       SEHandlerCount;
} IMAGE_LOAD_CONFIG_DIRECTORY32_2;

extern
const IMAGE_LOAD_CONFIG_DIRECTORY32_2 _load_config_used = {
    sizeof(IMAGE_LOAD_CONFIG_DIRECTORY32_2),
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    &__security_cookie,
    __safe_se_handler_table,
    (ULONG)(ULONG_PTR) &__safe_se_handler_count
};
Solution N3

Take pre-configured empty driver project for VS 2005 and add there your sources. You can find it together with VC6 project for kernel mode driver. Look in archive in pch_cpp subfolder. Also you can create VS8 project yourself with help of this manual: VC8 project for kernel mode driver.

Practically, you will completley convert your project from VS6 to VS8.


2006.11.23, updated 2006.12.02  
MICROSOFT.WINDOWS.SERVER.V2003.IFS.DDK-ISO.LeDreactor.part03.rar 2003 ifs ddk 立即下载

相关推荐

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

vs编译出错 error LNK2019: unresolved external symbol

今天在编译时出现如下图所示错误:  上网查阅后发现原因是: CMutex的析构函数只声明,未定义。即只在.h头文件中声明该函数,并没有在.cpp文件中定义该函数。 修改方法: 方法一:删除该析构函数的声明 方法二:在cpp文件中定义该析构函数  ...

Quellaaa的博客 1051

人脸识别签到考勤系统实战源码

这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。

DDK 2003 SP1 官方下载地址

网上找了好久才找到这个地址,留待后用。http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso

开发笔记 3110

【无人机航测】MATLAB重叠率与地面分辨率协同设计:航线间距及飞行方向优化系统 MATLAB 无人机航测重叠率设计|地面分辨率与航线间距计算

内容概要:本文档介绍了基于MATLAB R2025b开发的无人机航测重叠率与航线间距计算系统,旨在通过建立统一的航测几何计算体系,实现重叠率、地面分辨率与航线间距的动态协同设计。系统结合相机参数、飞行参数、地形数据与风场信息,通过自动化候选航向搜索与多目标优化,选择兼顾覆盖质量、飞行效率与安全性的最优航线方向。项目涵盖从参数输入、摄影测量计算、地形与安全修正,到候选路线生成、综合评价与结果可视化的全流程,并构建了五万组模拟数据用于算法验证与模型训练,支持桌面交互、批量处理与服务化部署,适用于多种复杂场景下的无人机航测任务规划。 适合人群:具备一定MATLAB编程基础和摄影测量知识的科研人员、工程技术人员及高校师生,尤其适合从事无人机航测、地理信息系统(GIS)、遥感与测绘等相关领域的从业者。 使用场景及目标:① 实现无人机航测任务中地面分辨率与航线间距的精确计算与动态优化;② 解决复杂地形与风场环境下航线方向选择困难、覆盖质量难以保障的问题;③ 通过自动化设计减少人为经验依赖,提升航测任务的可靠性与效率;④ 为后续的三维建模、正射影像生成与灾害应急评估等应用提供高质量的数据基础。 阅读建议:建议读者结合文中提供的完整代码示例与GUI界面设计,逐步实践参数配置、模型计算与结果分析流程。重点关注摄影测量公式推导、地形修正策略与多目标优化算法的实现细节,并利用模拟数据进行敏感性分析与模型验证,以深入理解系统的设计理念与工程应用价值。

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

搭建XP驱动开发IDE平台DDK2003 + VS2005 + DriverStudio3.2

转载地址:http://www.51qudong.net/71.html   WINXP 打印机驱动开发平台,扫描仪驱动开发平台,USB驱动开发的平台搭建:DDK2003 + VS2005 + DriverStudio3.2,以下内容在网上百度了很多,大多是VC6.0,或是VS2008的配置方案,有些是2005的但也是从其他地方转载,修改下内容,也没有认证。下面就介绍step by step的

housansan的专栏 1375

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Visual Studio 2008配置DDK驱动开发环境

1.首先下载ddk开发包Windows DDK 3790.1830 下载安装DDK后,去http://ddkwizard.assarbad.net/ 下载ddkwizard_setup_v1.2.0a、ddkbuild_bat.zip、ddkbuild_cmd.zip。2.拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到DDK安装根目录,如我的是D:/WinDDK.3.. 将上述文

hjy82919的专栏 9048

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

VS2010 DDK编译驱动程序 环境配置详细步骤

VS2010  DDK编译驱动程序环境配置详细步骤   首先,建立一个文件,内容如下:          将内容里的 “D:\WinDDK”替换你的DDK安装路径            D:\WinDDK\bin\x86;$(ExecutablePath)        D:\WinDDK\inc\crt;D:\WinDDK\inc\api;D:\WinDDK\inc

大杂烩 5716

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文详细介绍了一种基于KKT(Karush-Kuhn-Tucker)最优性条件与分段解析优化技术的双有源桥(DAB)DC-DC变换器闭环控制方法,旨在实现软开关条件下器件电压和电流应力的协同最小化,从而提升变换器的转换效率与系统可靠性。该方法通过建立精确的数学模型,结合KKT条件进行优化求解,并采用分段解析策略提高实时控制性能,在Simulink环境中完成了完整的闭环控制系统建模与仿真验证。作为“顶级EI复现”级别的研究成果,内容涵盖控制算法设计、优化机制分析、仿真架构搭建及结果对比,具有较强的理论深度与工程应用价值,适用于电力电子高频化、高效化发展的前沿研究方向。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景,熟悉Simulink仿真平台,且从事科研工作1年以上的研究生、博士生及科研人员;特别适合致力于DC-DC变换器拓扑优化、软开关技术、最小化开关应力控制、能量高效传输等领域研究的专业人士。; 使用场景及目标:① 复现高水平EI期刊论文中的先进优化控制算法;② 掌握KKT条件在非线性约束优化问题中的具体应用;③ 深入理解DAB变换器在不同工况下的软开关实现机制与应力抑制策略;④ 构建高精度仿真模型以支撑学术论文撰写、科研项目申报或实际工程系统的控制方案设计。; 阅读建议:建议结合提供的Simulink仿真模型同步学习,重点关注KKT条件推导过程与分段解析优化模块的实现逻辑。由于内容涉及较强的数学建模与优化理论,推荐具备扎实的电路理论、现代控制理论及数值优化基础后再行研读,并可参考同系列“顶级EI复现”资源以构建系统性知识体系。

交错并联图腾柱PFC变换器仿真设计(Simulink仿真实现)

内容概要:本文档系统性地介绍了基于Simulink平台的“交错并联图腾柱PFC变换器”仿真设计,聚焦于高效率功率因数校正技术的建模与实现。内容涵盖双闭环控制策略(电压外环与电流内环)、PI控制器设计、交错并联结构优化以及图腾柱拓扑的工作原理,旨在提升系统动态响应性能、降低输入电流谐波含量并改善功率因数。文档不仅提供详细的仿真模型构建流程,还配套Mathcad计算书用于参数设计与功率等级扩展,并列举了多种相关电力电子变换器的仿真案例,如三相维也纳整流器、LLC谐振变换器、双向Buck-Boost电路等,形成了一套完整的电力电子系统仿真资源体系,适用于从理论分析到工程实践的全流程学习与研究。; 适合人群:电气工程、自动化、电力电子及相关专业的高校本科生、研究生,以及从事新能源发电、电源设计、电能质量治理、工业自动化等领域的研发工程师;具备基本电路理论知识和Simulink/Matlab使用经验者更佳。; 使用场景及目标:①支持高校课程设计、毕业设计或科研项目中对先进PFC拓扑的仿真验证与性能优化;②帮助工程技术人员快速掌握图腾柱PFC的核心控制逻辑与建模方法,缩短产品开发周期;③作为电力电子系统教学与技术培训的标准化参考案例,强化理论与实践结合能力。; 其他说明:文档由“荔枝科研社”整理发布,所有资源可通过指定公众号或百度网盘链接获取,建议按照目录顺序系统学习,并结合提供的Mathcad计算书、参考文献及仿真文件进行参数验证与二次开发,以深化理解与应用能力。

国密证书实战:在CentOS 7上构建GmSSL私有CA与完整证书链

本文详细介绍了在CentOS 7操作系统上,使用GmSSL工具构建私有国密证书颁发机构(CA)与完整证书链的实战指南。内容涵盖从部署GmSSL、创建国密根CA、签发服务器与客户端证书,到生产环境安全加固与最佳实践的全流程,旨在帮助系统管理员和安全工程师建立统一、可控的内部国密安全通信体系。

jenkins8butler的博客 496

记录Nvidia AGX Orin的配置日常(二)设置上电自动开机和远程桌面

因为要拿AGX作为机器人的主控板,所以需要给他设置一下通电后无需按电源键就自动开机,然后再配置一下远程桌面。

AutomaticForever的博客 1361
上一篇: Building NT kernel mode drivers in MS Visual Studio 8.0 (VS 2005)
下一篇: WinXP/2000/2003下如何重装TCP/IP协议
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值