35、深入探索Windows VxD与设备驱动开发:从C调用到包装库构建
2026/5/15 15:40:20 网站建设 项目流程

深入探索Windows VxD与设备驱动开发:从C调用到包装库构建

1. 调用机制与错误处理

在开发过程中,调用机制和错误处理是非常重要的环节。对于C调用者而言,文件句柄返回值会由IFSMgr提前初始化并放置于EAX寄存器。当标志位被置位(表示出现错误)时,包装器会将IFSMgr的错误码从AX复制到错误码指针所指向的位置,同时将EAX置为零后返回。这样做的意义在于,它能明确告知C调用者函数执行失败,并且错误码参数中包含有价值的错误信息,方便后续的调试和问题排查。

2. 构建包装库

当你对WRAPPERS.ASM进行修改以添加自定义服务后,就需要重新构建WRAPPERS.CLB库。具体操作如下:
-找到Makefile:WRAPPERS.MAK文件位于代码盘的子目录中。
-执行构建命令:在命令行中输入nmake -fwrappers.mak即可开始构建。

这个Makefile有一个特殊之处,它会将WRAPPERS.ASM源文件进行六次不同的汇编操作,每次使用不同的SEGNUM定义值,从而生成六个不同的OBJ文件。随后,这六个OBJ文件都会被添加到库中。

SEGNUM并不会被WRAPPERS.ASM直接使用,而是由DDK中的LOCAL.INC文件利用其值将包装函数放置到特定的代码段,并生成特定于该段的函数名。以下是LOCAL.INC文件的部分内容:

IFE SEGNUM-1 SEGB TEXTEQU <VXD_LOCKED

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询