multiple plotter,NDIS VISTA WIN7 安全机制

1.usb多设备

用到的工具有winobj,dbgviewEzDriverInstaller.exe和devicetreeirptrace暂时还没有用到。当然,在做驱动时还会用到guidgen.

张帆的书中有示例,通过查找设备接口实现可以加载多个设备。如果指定设备名,并创建相应符号链接,那么对于不同厂商可能使用相同的设备名易于出现冲突,所以使用guid.IoRegisterDeviceInterface可以注册新的符号链接。而创建无名设备,系统会自动指定序号1,2,winobj的Global项可以看出,设备类,设备名,第几个设备以及GUID。而在查找时,可以用setupdi**系列函数。

本周初主要针对已有驱动寻找设备,在练习中出现以下问题

DEFINE_GUID,总是出现unresolved extern symbolic “_**_GUID”,原因是缺少"INITGUID.H"

SETUPDI** ,很自然的需要SETUPDI*.H及setup*.lib;

对于USB设备来说,系统自动增加的数字1,2 是指端口而不是当初猜测的枚举到的次序。正是这个原因,必须利用该symbolic来打开相应设备同时传递命令来获取设备的唯一ID,该ID保存在Firmware中。

2.安全问题

这是昨天引起的,新版的DLL在VISTA上似乎不起作用,没有能够得到更新。缺少VISTA测试机,只好在Win7上测试。原因是不能在指定目录生成状态文件。cmd下set指令,XP和VISTA,Win7的APPDATA路径是不一样的,而要取得变更后的路径,必需要使用SHGET**系列API函数,CSIDL系列值。头文件“shlobj.h”。

 

测试机没有编译器,于是做了个exe来显示路径,VS2008XP下编译的,正常运行,但是在win7下提示配置不正确,找了一下SDK目录下的vcredist_x86,安装,运行正常,验证了SHGET系列函数的确可以正确获取XP 到WIN7下的对应路径。逐步检查到生成文件夹生成文件。

由此接触到环境变量问题,一直以来不是很清楚究竟有何作用。比如说,公司的机器,cmd可以直接运行dumpbin,但是这台电脑却不可以,需要将vcvars32.bat拖到cmd运行后才可以直接运行,但是cmd关闭再运行,继续提示“不是内部或外部命令”,周末需要研究一下环境变量的事情。

但是出现了新的问题,WIN7下我的NDIS协议驱动安装了,但是我却不能发出我的广播0X8021。万般无奈,在测试机WIN7安装了VS2008及WDK。一不小心,原来是OPENSCMANAGER失败,访问拒绝。上网找了半天,只有VISTA有方法,用到了MANIFEST文件,说是因为UAC安全机制。但是对于MANIFEST一无所知,而且编译总是说该manifest文件无法load parse,网上的方法只是选择不生成manifest来逃避,而我是必须要该manifest的,于是无功而返。快下班时看到一篇帖子说是以管理员身份运行即可。于是右键管理员运行,俺可以正常扫描局域网内的机器。

       起初同事说是没有关闭防火墙,后来关了也是不起作用。原来如此。不过还是学到了东西,比如尝试关闭防火墙,无法ping通对方,那么就是对方开启了防火墙(windows的或者杀毒的)。关闭即可解决。同样还可以开启远程控制。我的电脑右键远程即可,指令"MSTSC"。和这位小朋友还是可以学很多的东西的,只是我没有用心学习过而已。人家毕竟是计算机科班出身,基础好,经验足。

 

3.DLL调用

目前主要是卡在调用方面,VB exe调用C的DLL时总是运行时错误“48”,说是找不到**.dll,简直是胡扯,两天了,我还是没有能够解决。或许明天可以写写DLL。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值