WINDOWS内核驱动开发(API简介)

API简介

大部分内核api都是有前缀的,主要的函数以 Io、Ex、Rtl、Ke、Zw、Nt、Ps 开头

与NDIS网络驱动开发的相关函数几乎都是以 Ndis 开头

与WDF驱动相关的函数都是以 Wdf 开头

Ex 分配内存,创建互斥体函数

ExAllocatePool

内存分配,相当于malloc

ExFreePool

内存释放,相当于free

ExAcquireFastMutex

获取一个快速互斥体

ExReleaseFastMutex

释放一个快速互斥体

ExRaiseStatus

抛出一个异常,带有一个错误的status值

Zw和Nt 文件操作函数

Zw和同名的Nt函数具有同样的功能,中间实际上是从Zw函数到Nt函数跳转关系,这些函数都有同名的用户态api函数与之对应,对应的Nt系列的函数在WDK帮助里面是查不到的 头文件也没有,但的确存在,自己声明后就可以使用

ZwCreateFile

NtCreateFile

打开文件(也可以用于打开设备)

ZwWriteFile

NtWriteFile

写文件(也可以用于发送请求给设备)

ZwReadFile

NtReadFile

读文件

ZwQueryDirectoryFile

NtQueryDirectoryFile

目录查询

ZwDeviceIoControlFile

NtDeviceIoControlFile

发送设备请求

ZwCreateKey

NtCreateKey

打开一个注册表键

ZwQueryValueKey

NtQueryValueKey

读取一个注册表的值

Rtl 字符串操作函数

RtlInitUnicodeString

初始化一个字符串

RtlCopyUnicodeString

拷贝字符串

RtlAppendUnicodeToString

将一个字符串追加当另一个字符串后

RtlStringCbPrintf

将字符串打印到另一个字符串中,相当于sprintf

RtlCopyMemory

内存数据拷贝

RtlMoveMemory

内存数据移动

RtlZeroMemory

内纯数据清零

RtlCompareMemory

比较内存

RtlGetVersion

获取当前windows版本

Io 设备管理器函数

IoCreateFile

打开文件,比ZwCreateFile更底层

IoCreateDevice

生成一个设备对象

IoCallDriver

发送请求,实际上这个函数可能是IofCallDriver的一个别名。

IO管理器调用这个函数把不同的IRP发送到不同的设备

IoCompleteRequest

完成请求,这个实际上是通知IO管理器这个IRP完成了

IoCopyCurrentIrpStackLocationToNext

将当前IRP栈空间内容拷贝到下一个栈空间

IoSkipCurrentIrpStackLocation

跳过当前IRP的栈空间

IoGetCurrentIrpStackLocation

获取IRP的当前栈空间指针

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值