当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 请求执行时间段与Shell函数 下载例子程序 理论: 请求执行时间段通常被简称为"appy time"。
 

 

 ·iczelionvxdcntut5    »显示摘要«
    摘要: vxd例程:消息框 在上一节教程里,我们讲了编写一个vxd程序的方法。现在我们要学以致用。在这一节里,我们要编写一个静态vxd,这个静态vxd在一个虚拟机创建或销毁时就会弹出一个消息框。 在这里下载例子。 捕获虚拟机创建和结束事件 当一个虚拟机创建时,vmm发送create_vm控制消息给所有的vxd程序。当一个虚拟机退出时,它也发送vm_terminate和vm_terminate2......
 ·iczelionvxdcntut3    »显示摘要«
    摘要: 虚拟设备驱动程序结构现在大家对vmm和vxd有了一定的了解,接下来我们来看一看如何编写vxd代码。首先,你必须具备windows 95/98 device driver development kit。window95 ddk只有msdn 订户才能拿到,但windows98 ddk却可以免费从microsoft公司取得。尽管windows 98 ddk是面向wdm的,但你还是可以用它来开......


iczelionVxdcntut7

请求执行时间段与shell函数

下载例子程序 【程序编程相关:ABAP学习笔记之四-指针

  【推荐阅读:ABAP学习笔记之五-报表的事件

请求执行时间段通常被简称为"appy time".是指当系统vm稳定到充许vxds与ring-3级别的应用软件(特别是16-bit的应用软件)交互时的时间段.例如,在一个特定时间段,vxds能加载并调用在16-bit dlls中的函数.这个appy time在windows 3.x中是无效的.在windows3.x,一个vxd能包含在16-bit dlls中的任意函数的地址,并模拟一个远调用到这个地址.然而,因为造成了vmm重入,这个操作将中断所有正在ring-3中执行的任务.所以能被vxds能调用的apis被要求是中断安全的,象postmessage.在windows 95,一个vxd在appy time的帮助下能调用任意一个在16-bit dlls中的函数. 【扩展信息:刚在博客堂上看到思归作的一个java与c

理论:

假如你的vxds被通知正处在appy time,它就能加载16-bit dlls并调用其中的函数.vxds怎么知道appy time到来了呢?这就要使用shell vxd请求一个appy time.当系统vm在稳定状态,shell vxd将调用某vxd的一个回调函数,此函数是在vxd请求appy time时指定的.shell vxd发生一次appy time事件仅仅调用一次你的回调函数.这就象找工作.你到职业介绍所,登记你的名字与电话号码.当你回到家,如有一个工作适合你,职业介绍所将电话通知你这个好消息.当你收到了这个消息,他们就不再通知你了.

在一个appy time起作用前要花上一些时间进行相关处理.appy time事件以下环境中将不起作用:

1.系统启动或关机时.

2.当系统vm在临界段或等待一个信号量时.

管理一个appy time事件

你可以通过调用_shell_callatappytime来注册一个appy time事件,它的定义如下:

vxdcall _shell_callatappytime, <<offset32 pfncallback>,  dwrefdata, dwflags, dwtimeout>

pfncallback -- 当appy time事件发生时你要shell vxd调用的回调函数的平板地址.这个函数接收两个参数,dwrefdata与dwflags,与你传送给_shell_callatappytime的两个一样.记住,shell vxd采用c调用顺序调用你的回调函数.总而言之,你要象这样定义你的回调函数:

beginproc onappytime, ccall, public

argvar dwrefdata,dword ; declare argument name and type

argvar dwflags, dword

enterproc

你的代码...

leaveproc

return

endproc onappytime dwrefdata -- 你要shell vxd传送给你的回调函数的参考数据.
...   下一页
 ·iczelionvxdcntut1    »显示摘要«
    摘要: 虚拟设备驱动程序初步在本教程里,我假定读者对诸如虚8086模式,调页,gdt,ldt,idt之类的intel 80x86保护模式的操作比较熟悉。如果你不了解这些,那你要先在 http://developer.intel.com/design/pentium/manuals/阅读intel的文档。 内容:windows95是一个运行在最高级特权,第0层级别的多线程操作系统。所有的应用程序都运......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE