编写内核程序的时候,尽量使用内核API,虽然类似于wcscpy、memcpy等函数也可以用,但这些函数没有长度的检查,很容易发生溢出错误,应该避免使用。

主要的函数前缀有:Rtl-, Io-, Ke-, Zw-, Nt-, Ps-等。

有以下几类:

Ex系列--分配内存,获取互斥体等:
  ExAllocatePool,分配内存
  ExFreePool,释放内存
  ExAcquireFastMutex获取一个快速互斥体
  ExReleaseFastMutex释放一个快速互斥体
  ExRaiseStatus抛出异常

    Zw--Nt系列文件操作函数:
  ZwCreateFile--创建文件
  ZwWriteFile--写文件
  ZwReadFile--读取文件
  ZwQueryDirectoryFile--查询目录
  ZwDeviceIoControlFile--发出设备控制请求
  ZwCreateKey--打开一个注册表键
  ZwQueryValueKey--读取一个注册表键

    Rtl系列字符串操作函数:
  RtlInitUnicodeString--初始化一个Unicode字符串
  RtlCopyUnicode--拷贝字符串
  RtlAppendUnicodeToString--追加字符串到另一个字符串
  RtlStringCbPrintf--将字符打印到字符串中,相当于格式化字符串
  RtlCopyMemory--拷贝内存
  RtlMoveMemory--移动内存数据块
  RtlZeroMemory--内存数据块清零
  RtlCompareMemory--比较内存
  RtlGetVersion--得到当前windows版本

   Io开头的IO管理函数:
  IoCreateFile--打开文件,比ZwCreateFile函数更加底层
  IoCreateDevice--生成一个设备对象
  IoCallDriver发送请求
  IoCompleteRequest--完成IRP请求
  IoCopyCurrentIrpStackLocationToNext--讲当前IRP栈空间拷贝到下一个栈空间
  IoSkipCurrentIrpStackLocationToNext--跳过当前IRP栈空间
  IoGetCurrentIrpStackLocation--得到当前IRP栈空间。

对于详细的说明可以查看WDK的帮助文档,API很多,我们不肯能全都记住,常使用,常动手,常查帮助,是很好的学习方法。见一个学一个,不记得就立即查帮助。相关的结构也可以直接查看WDK的头文件,这里可以查到帮助文档中没有的一些信息哦!!

内核编程常用API函数相关推荐

  1. *♎* WINDOWS编程常用API函数 *♎*

    1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接  WNetAddConnection2 创建同一个网络资源的连接  WNetAddConnection3 创 ...

  2. windows常用API函数

    windows常用API函数 http://www.vbgood.com/api.html http://hi.baidu.com/3582077/item/9cc3483b581f53c5392ff ...

  3. Delphi 常用API 函数

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconic ...

  4. 常用API函数(整理)--一天积累0.1点

    常用API函数,日积月累! //读内存 [DllImportAttribute("kernel32.dll", EntryPoint = "ReadProcessMemo ...

  5. Windows.h 常用API函数【转】

    转自:https://blog.csdn.net/farmwang/article/details/50603608 http://www.vbgood.com/api.html http://hi. ...

  6. windows常用 API函数

    系统API查询 http://www.vbgood.com/api.html http://hi.baidu.com/3582077/item/9cc3483b581f53c5392ffae3 第一个 ...

  7. 破解必备,软件破解中常用API函数大全

    在软件破解中,常用软件破解方法就是下断点快速找事件,在命令行BP下断点,shift+f9找事件然后再alt+f9返回. 快捷方法,ctrl+A分析代码.ctrl+N 找要下断的API函数.右键> ...

  8. 常用API函数 自己研究的API函数

    最近在windows下编码,用的是c++ 在开发过程中,发现有些常用的API用的不是很熟练,上网查资料,效率太慢.故此写篇文章来整理一下自己用过或即将要用的API函数. 废话不多说,上代码: //模糊 ...

  9. Delphi 常用API 函数(好多都没见过)

    2019独角兽企业重金招聘Python工程师标准>>> AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在 ...

最新文章

  1. 自己写的程序密码功能 ------数字功能
  2. hdu 1724 Ellipse——辛普森积分
  3. 算法:枚举法---kotlin
  4. 一个完整的schema验证xml的样例
  5. boost::python::type_info相关的测试程序
  6. 我认为必须要学的前端技能和架构体系
  7. (15)FPGA模块化设计原则
  8. Linux nm命令
  9. 还不知道事务消息吗?这篇文章带你全面扫盲!
  10. jsp高校科研项目管理系统
  11. oppo9s刷机教程_oppor9s怎么自己刷机很简单的技巧
  12. 分销商城平台开发现成源码
  13. 稻城亚丁徒步攻略,与你共同感受这片净土
  14. 大话 MySQL 数据库 -- 强推收藏!
  15. navicat mysql 存储过程_navicat怎么创建存储过程
  16. 这里有141个创业公司的死亡案例,看鸡汤不如听教训
  17. 2022年中国研究生报考现状分析:考研热度只增不减,就业压力仍为主要因素[图]
  18. 对IEEE 802.15.4中Slotted CSMA-CA的理解
  19. Markdown Nice 最全功能介绍
  20. FLV科普12 FLV脚本数据解析-Metadata Tag解析

热门文章

  1. mysql在window机器下的双机备份
  2. 庞数据(PangData) VS 通用电气(GE)
  3. Win32平台下NOTIFYICONDATA的气泡点击功能的响应与实现
  4. 中通从通达系中跑出,极兔快递低价抢市,谁将落伍?
  5. 启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ
  6. scala农贸市场需求
  7. Python爬虫QQnews
  8. [雷]单元测试报错--Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
  9. 说说苹果 App Store 将下架长期不更新的App一事
  10. Cholesterol-PEG-Azide CLS-PEG-N3 胆固醇-聚乙二醇-叠氮可提高循环时间