c# api代码别来发函数原形

米米 2024-05-26 05:54:38
最佳回答
virtualqueryex基本上只是调用vwin32.vxd的第40h号win32 service(也就是vxdcall 002a0040)。这个service内部调用vmm的_pagequery函数。ddk文件中说_pagequery函数需要一个参数,指向memory_basic_**rmation结构。或许是为了避免因为一个不适当的线程切换动作而返回不协调的值(在memory_basic_**rmation结构中),所以virtualqueryex一开始就先取得krn32mutex,并在离开时释放之。它是以未公开的kernel32_entersyslevel和_le**esyslevel函数完成这些工作的。第43h号vwin32 service,也是填写memory_basic_**rmation结构,就比简单的_pagequery外包函数更多一些。目前我还不能够确切地说它到底做了什么事情,然而很显然这个函数必须知道查询对象(进程)的当前线程的ring0 stack的地址。因此,在调用vwin32 service之前,virtualqueryex使用hprocess参数取得一个指针,指向进程的结构pdb。从那个地方,virtualqueryex取得当前线程的thread database,交给vwin32 service。有趣的是,在仔细观察第43h号vwin32 service数次之后,老实说,我未曾发现这个程序代码除了调用_pagequery之外还作了些什么。virtualquery和ivirtualqueryvirtualquery只不过是virtualqueryex的一个特例。virtualquery获取当前进程中某个地址的信息,而virtualqueryex可以取得任何进程的地址信息。virtualquery的虚拟代码似乎没有什么值得说的,它只是检验参数的合法性。它看看一个被指针所指的缓冲区是否大到足够容纳memory_basic_**rmation结构。假设答案是肯定的,virtualquery就跳到ivirtualquery去。virtualquery先做参数检验,再跳到一个内部函数中去,这是system dlls的许多函数的典型做法。例如:virtualprotect也是如此。不比某些在调试版中只做执行纪录用的函数,ivirtualquery其实只是调用virtualqueryex,并以当前进程的handle作为第一参数。请注意,在windows 95之中,ivritualquery调用virtualqueryex。这和win32s不同,后者的virtualqueryex调用virtualquery。其间的关键差异在于win32s中每个进程共享相同的地址空间,所以virtualquery应该等同于virtualqueryex。virtualprotectexvirtualprotectex可以改变一个committed page或一系列pages的存取保护状态。它可以处理任何进程,只要你有进程的handle。virtualprotectex和virtualalloc之间的关键差异在于前者假设你已经“committed”,你“正打算改变其状态”的那些pages,而virtualalloc允许你分配、提交(commit)然后指定处理某一个page或某一些pages。virtualprotectex的虚拟代码十分直接了当。就像我所说过的其他virtual函数一样,它先以一些错误检验代码揭开序幕。函数中的检验代码要修改的地址范围是否小于2gb-4mb,起始地址是否小于0xc0000000。virtualprotectex的中心是调用vwin32 service 0x3f。这个service最终调用vmm’s _pagemodifyperm**sion。就像在virtualqueryex中一样,这个vwin32 call为了某些理由,期望获得一个指针,指向指定进程中的当前线程的ring0 stack。有一些代码用来决定这个ring0 stack是否即是我们在virtualqueryex中获得的。virtualprotectex也和virtualqueryex一样,在vwin32 call执行期间,取得并持有krn32mutex。我认为! 20210311
汇率兑换计算器

类似问答
  • c++ 函式传回指标函数
    • 2024-05-26 12:31:02
    • 提问者: 未知
    include include include define n 30 void f(int a[],int n,int*max,int*min) int i;max=*min=a[0];for(i=1;i;i){ if(a[i]>*max)*max=a[i];if(a[i]<*min)*min=a[i];} } int main():{ int i,max,min;srand((un...
  • 三元函数公式问题三元函数的公式z=ax+by+c,各个字母代表什么?如果具体数字...
    • 2024-05-26 07:36:59
    • 提问者: 未知
    三元函数公式问题三元函数的公式z=ax+by+c,各个字母代表什么?如果具体数字.三元函数公式问题三元函数的公式z=ax+by+c,各个字母代表什么?如果具体数字有了,这样的三元函数...
  • api源代码
    • 2024-05-26 06:16:25
    • 提问者: 未知
    我给个你吧!
  • 如何查找这行j**a代码的api?
    • 2024-05-26 14:09:02
    • 提问者: 未知
    getclass()方法是object提供的,返回是一个class类的对象,该class类路径为j**a.lang.class,你打开api,按ctrl+f查找object和class就能找到对应的类,里面有对应的方法解释。
  • 关于api处理颜色代码的问题
    • 2024-05-26 16:09:19
    • 提问者: 未知
    不只是30/50有问题,而是凡*4/8结果为15的数,全部都出错,这是位图颜色的一种限制.你可以用下列与设备无关的api处理..createdibsection(byval hdc as long, pbitmap** as bitmap**, byval un as long, byval lplpvoid as long, byval...
  • 这次美国api原油数据是?
    • 2024-05-26 21:19:06
    • 提问者: 未知
    利空啊, 原油亏损基本上都在仓位重,然后心态不好心急乱做,本身不懂技术,然后被业务猿老湿忽悠,没有分析湿,都是业务猿,一个带10个8个,造成了亏损,仓位心态最重要,止盈止损对于仓位重的人是没办法的策略,是下策,犹豫的人最好带上,技术是必须的,这些做好赚钱是迟早的事情,学习下,不要相信...
  • c++中round函数怎么用
    • 2024-05-26 14:51:47
    • 提问者: 未知
    c++中没有直接的round函数,需要自己建立,可以...扩展资料:round函数的详细介绍在 vb,vbscript,c#,j#,t-sql 中 round 函数都是采用 banker's rounding(银行家舍入)算法.
  • 如何查看matlab自带函数源代码
    • 2024-05-26 22:59:17
    • 提问者: 未知
    1、在命令窗口中输入:type 函数名(例如type rgb2gray等),就会在命令窗口出现该函数的相关说明及源代码;2、在命令窗口中输入:open 函数名(例如open rgb2gray等),就会打开该函数的m文件;3、在命令窗口中输入:edit函数名(例如edit rgb2gray等),同样会打开该函数的m文件;4、还有一种方法就是故意将原函数的参数类型或者个数写错,就会出现出错提示,点击提...
  • c++ 求三角形的程序代码 用海**式
    • 2024-05-26 02:18:34
    • 提问者: 未知
    #include<stdio.h>#include<math.h>int main(){ int a,b,c; a=1; b=1; c=1; double p=(a+b+c)/2.0; double area=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%lf\n",area); return 0;//加这句试试}
  • 想用单片机接受从串口调试助手那里发送过来的数值数据,如何写代码(c语言)?
    • 2024-05-26 22:08:27
    • 提问者: 未知
    //nbsp;单片机串行口发送/接收程序,每接收到字节即发送出去//nbsp;和微机相接后键入的字符回显示在屏幕上//nbsp;可用此程序测试//#includenbsp;amp;lt;reg51.hamp;gt;#definenbsp;xtalnbsp;11059200nbsp;nbsp;nbsp;nbsp;//nbsp;cupnbsp;晶振频率#definenbsp;baudratenbsp;...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。