部分未公开的Windows 2000核心功能调用(华中地区网络中心 TBsoft)

Delphi 驱动开发:实现原理与环境搭建 Delphi能不能开发Windows的驱动程序(这里的驱动程序当然不是指VxD了^_^)一直是广大Delphi fans关注的问题。姑且先不说能或者不能,我们先来看看用Delphi开发驱动程序需要解决哪些技术上问题。Delphi的链接器是无法生成Windows内核模式程序的,因此用delphi无法直接生成驱动程序。M$的链接器是可以生成Windows内核模式程序的,那么是否可以用Delphi生成目标文件,然后用M$链接呢? 阅读详情
这些未公开的Windows 2000核心功能调用(Windows NT 4.0一般也可以调用)是针对
Intel 80386(I386)以上CPU的,没有移植性,可能是微软公司不公开这些调用的原因。
这些调用一般以Ke386 或者KeI386开头,部分调用相当有用,笔者只分析了一部分调用的
函数原型,以后再分析余下的调用。

1、Ke386SetIoAccessMap

函数原型:void Ke386SetIoAccessMap(int, IOPM *);
引出符号:_Ke386SetIoAccessMap@8

2、Ke386QueryIoAccessMap

函数原型:void Ke386QueryIoAccessMap(int, IOPM *);
引出符号:_Ke386QueryIoAccessMap@8

3、Ke386IoSetAccessProcess

函数原型:void Ke386IoSetAccessProcess(PEPROCESS, int);
引出符号:_Ke386IoSetAccessProcess@8

以上3个调用可以让NT/2000像Windows 95/98一样在Ring 3随意通过in/out指令实现
硬件I/O,具体使用方法笔者将在后续文章中说明。

4、Ke386CallBios

函数原型:不详
引出符号:_Ke386CallBios@8
调用功能:可能是BIOS功能调用

5、KeI386SetGdtSelector

函数原型:NTSTATUS KeI386SetGdtSelector(IN ULONG sels, IN PVOID desc);
引出符号:_KeI386SetGdtSelector@8
调用功能:设置一个全局描述符

6、KeI386ReleaseLid

函数原型:不详
引出符号:_KeI386ReleaseLid@8
调用功能:不详

7、KeI386ReleaseGdtSelectors

函数原型:NTSTATUS KeI386ReleaseGdtSelectors(OUT PUSHORT SelArray,
IN int NumOfSelectors);
引出符号:_KeI386ReleaseGdtSelectors@8
调用功能:释放一个全局描述符

8、KeI386MachineType

函数原型:不详
引出符号:_KeI386MachineType
调用功能:可能是取得计算机(CPU)的类型

9、KeI386GetLid

函数原型:不详
引出符号:_KeI386GetLid@20
调用功能:不详

10、KeI386FlatToGdtSelector

函数原型:不详
引出符号:_KeI386FlatToGdtSelector@12
调用功能:可能与内存地址变换有关

11、KeI386Call16BitFunction

函数原型:不详
引出符号:_KeI386Call16BitFunction@4
调用功能:可能与调用16位代码有关

12、KeI386Call16BitCStyleFunction

函数原型:不详
引出符号:_KeI386Call16BitCStyleFunction@16
调用功能:可能与调用16位代码有关

13、KeI386AllocateGdtSelectors

函数原型:NTSTATUS KeI386AllocateGdtSelectors(OUT PUSHORT SelArray,
IN int NumOfSelectors);
引出符号:_KeI386AllocateGdtSelectors@8
调用功能:分配一个全局描述符

该功能与KeI386SetGdtSelector功能、KeI386ReleaseGdtSelectors功能配合使用,可以
修改GDT,从而可以定义自己的调用门,进入真正的NT Ring 0层,从而可以直接修改GDT、
IDT、LDT,直接访问全部内存和全部硬件,功能极其强大。

14、KeI386AbiosCall

函数原型:不详
引出符号:_KeI386AbiosCall@16
调用功能:可能与BIOS功能调用有关

15、Kii386SpinOnSpinLock

函数原型:不详
引出符号:Kii386SpinOnSpinLock@8
调用功能:不详

16、Kei386EoiHelper

函数原型:不详
引出符号:Kei386EoiHelper@0
调用功能:可能与中断处理有关
嵌入式接口通识知识之PCIe接口 PCIe x1接口是最常见的一种,插槽的长度是最短的,仅有25mm。PCIe x4接口有四个数据通道,提供比x1接口更高的带宽,插槽的长度为39mm,分为前后两组,一组22根针脚用于供电,剩下的42根针脚是数据针脚。插槽全长89mm,有164根针脚,分为前后两组,较短的插槽有22根针脚,主要用于供电,较长的插槽142根,主要用于数据传输,具有16通道所带来的高带宽。PCIe x8接口有八个数据通道,插槽全长56mm,有98跟针脚,分为前后两组,较短的22根针脚用于供电,剩下的76根针脚是数据针脚。 阅读详情

相关推荐

RK3568/RK3588 + YT 9215交换机芯片,MAC TO MAC 调试记录

原来的方案是rk3568 gmac 直接接phy,phy 接 switch 芯片,只是把交换芯片当交换用,驱动方面基本不用开发,但是要做vlan 那么必须涉及交换芯片的开发。选择裕太微有两个方面的原因:1.国产化替代2.可获得原厂技术支持3.目前已经完成 两个gmac 口交换芯片的配置,实现vlan,内部交换,两个光口可正常通信。

Nyiragongo的博客 1万+

TBsoft-GUI V0.20试用版

支持真正事件驱动程序设计的嵌入式GUI

【5层】办公楼全套设计(10000平,含任务书,计算书,建筑图,结构图).zip

【5层】办公楼全套设计(10000平,含任务书,计算书,建筑图,结构图).zip

过GPK驱动

NtCreateThread NtProtectVirtualMemory NtQueueApcThread NtTerminateProcess NtWriteVitualMemory Ke386IoSetAccessProcess KeAttachProcess KeInitalizeApc KeStackAttachProcess ObCheckObjectAc

guoyi987的专栏 2513

模拟键盘鼠标操作——IoAccessMap介绍

模拟键盘鼠标操作——IoAccessMap介绍  NetRoc  2007.06.25http://ww.DbgTech.net/关键词:I/O Permission Bit Map、按键精灵、模拟键盘鼠标今天又被恶心了,上班不想工作。来谈谈IoAccessMap相关的一些东西吧。我在上一篇XTrap驱动分析的文章里面提到过,现在的一些模拟键盘鼠标输入的程序使用

NetRoc的专栏 2375

VxD编程入门教程

VxD编程入门教程作者:TBsoft 一、Windows 95 DDK的安装安装Windows 95 DDK一般需要先安装Win32 SDK,原因是Windows 95 DDK需要Win32 SDK的16位资源编译器,但是Win32 SDK很大(一整张光盘的容量),而且国内难以买到,ftp站上也较少见,即使有,下载也很困难。笔者经过一段时间的摸索,找到了安装Windows 95 ...

yesjavame 324

程序员应该知道的97件事

程序员应该知道的97件事 ISBN: 9787121117565 作者:Kevlin Henney 译者:李军 译 / 吕骏 审校 推荐指数: ★★★★★ 阅读时间: 2016-04-24 上星期拿了三本书来看,其中一本就是《程序员应该知道的97件事》。 大概通读了一遍里面有73位著名的人物,分别写了97件事。 每个人都有自己总结的一句话,对于程序员们确实很实用。 这里面的人物在程序员这一职业中有工作20年以上的经历,有自己开公司的也有是博士、教授的。 若能认真遵守这97件建议,我想你应该是一个了不起的

Jack魏 2151

作为程序员你应该知道的网站

作为程序员你应该知道的网站 常见的 GitHub — 开发者最最最重要的网站:https://github.com 代码托管网站,上面有很多资源,还有有很多优秀的程序员,你可以在这里交到很多好朋友喔。 Stack Overflow — 解决 bug 的社区:https://stackoverflow.com/ 开发过程中遇到什么 bug,百分之 99 的问题都能搜到答案。在这里能够与很多...

androidokk的博客 1387

每个程序员都应该知道的延迟值

每个程序员都应该知道的延迟值

weixin_33860528的博客 272

什么事情是做了python程序员之后才知道的?

什么事情是当了程序员才知道的呢?要说明这个,需要来了解一下我的工作经历。

monsterk1的博客 437

据说年薪30万的Android程序员必须知道的帖子

Android中国开发精英 目前包括:     Android开源项目第一篇——个性化控件(View)篇        包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、FlipView、ColorPickView、GraphV

ltg263的博客 587

SAS程序员 做过才知道

SAS程序员 做过才知道

qq_44591229的博客 605

程序员需要知道的13个技巧

http://get.jobdeer.com/712.get

菩提本无树 明镜亦非台 本来无一物 何处惹尘埃 560

有哪些事是你当了程序员之后才知道的?

比如程序员真的不好找女朋友

敖丙 1万+

每个程序员应该知道的12个API

http://www.importnew.com/8300.html

548

转载:老鸟程序员才知道的40个小技巧

老鸟程序员才知道的40个小技巧 40条真言,希望对进阶中的程序朋友有所帮助。 1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎碎念注释,实际就是背景噪音。 5、普通程序员+google=超级程序员。 6、单元测试总是合算的。 7、不要先写框架再写实现。最好反过来,从原型中提炼框架。 8、...

UEVOLIshy的博客 307

有哪些话一听就知道一个程序员是个水货?

谦逊的学习态度:承认自己的不足,积极学习新知识,不断提升技术水平。深入的技术理解:不满足于表面的了解,深入理解技术的原理和本质。严谨的工作态度:重视代码质量,进行充分的测试,确保软件的可靠性。良好的协作能力:善于与团队成员协作,有效沟通,共同完成项目。持续的改进意识:不断优化代码和流程,追求更高的效率和质量。这些品质不是一朝一夕就能培养的,需要在实际工作中不断磨练和提升。作为一个过来人,我希望每个程序员都能够避免成为"水货",成为真正有价值的技术人员。

码到成功 412

38件程序员应该知道的事儿

在一次迭代开始时,各项需求看上去安排的张弛有度,但仍无法避免在某个时间承受巨大的进度压力,当你发现必须在和之间选择时候,一般都会选择,并提醒自己将来再回头来返工优化。但实际上下一轮迭代总会有下一个问题,将来永不会来。这类久拖不决的任务就是就像贷款,短期能获得好处,但你总要付出利息。时间久了,利息也将是一笔难以偿还的债务。因为有债务的存在,新功能的加入将变得困难,而且这些债务也将是bug的滋生地。我们很容易说服自己,当前变更引入的一点点并不算什么大问题。就跟破窗效应一样,只要放开了口子,系统会腐化的很快。

程序员高级码农的博客 1257

有理想的程序员必须知道的15件事

<br />                         有理想的程序员必须知道的15件事<br />作为程序员,要取得非凡成就需要记住的15件事。<br />1.走一条不一样的路<br />在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。<br />2.了解自己的公司<br />以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。<br />不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(

yzc的专栏 1111

程序员应当知道的小工具

1、 2、 3、 4、 5、

qq_26889833的博客 161

程序员都应该知道的JVM参数

程序员都应该知道的JVM参数

qq_41490913的博客 82
上一篇: 使用Rundll32.exe和Rundll.exe(转程式设计技术)
下一篇: NetXray使用说明之(6)----捕捉oicq message报文
yypp
博客等级 码龄26年 0粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值