中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > VxD技术
从VXD中调用WDM的服务--NUMEGA
作者:someone 时间:2001-10-22 10:28 出处:互联网 责编:chinaitpower
              摘要:从VXD中调用WDM的服务--NUMEGA

从VXD中调用WDM的服务
作者:NUMEGA

Calling WDM Services from Windows 98 VxDs 
If you are developing VxDs specifically for Windows 98, you might 
occasionally need to call a WDM service from a VxD. The Windows 98 DDK 
has some limited support for doing this, although it isn't fully 
documented. 
In subdirectory lib\i386\free\win98 you'll find library wdmvxd.clb. This 
library gives you linkage to most if not all of the WDM entry points 
provided with Windows 98. Each of the object files loads registers and 
invokes INT 2Eh, which traps to a system dispatcher. Before invoking the 
called WDM service, the dispatcher takes care of ensuring that the 
stack is set up for structured exception handling, which is supported in 
WDM drivers. 
The library is set up to look like an import library, even though it 
does not result in any imports being generated. If you use DUMPBIN 
with the /linkermember switch, you'll see that the entry points are 
prefixed with __imp_. This was done so that you can use prototypes 
directly from wdm.h. 
For example, suppose you wanted to call RtlInitUnicodeString from a VxD. 
You would need this prototype from wdm.h: 
NTSYSAPI 
VOID 
NTAPI 
RtlInitUnicodeString( 
PUNICODE_STRING DestinationString, 
PCWSTR SourceString 
); 
In addition, you may need these definitions: 
#define NTSYSAPI __declspec(dllimport) 
#define NTAPI __stdcall 
Then it's simply a matter of having the typedef's and linking against 
wdmvxd.clb. 
Use wdmvxd.clb only when absolutely necessary, and always with extreme 
caution. Because IRQL is largely undefined in VxDs, there are numerous 
ways to get into trouble when making these calls. 
----------------------- 
 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有