WDK 常用的几个函数
首先是几个内存分配的函数
| Ex_系列函数 | 功能简述 | 
| ExAllocatePool | 内存分配 | 
| ExFreePool | 释放内存 | 
| ExAcquireFastMutex | 获取一个互斥体 | 
| ExRekeaseFastMutex | 释放一个互斥体 | 
| ExRasiseStatus | 抛出一个异常 | 
下面是一组文件操作的函数
| Zw-系列函数 | 功能简述 | 
| ZwCreateFile | 打开文件(设备) | 
| ZwWriteFile | 写文件 | 
| ZwReadFile | 读 | 
| ZwQueryDirectoryFile | 目录查询 | 
| ZwDeviceloControFile | 发出设备控制请求 | 
| ZwCreateKey | 打开一个注册表键 | 
| ZwQueryValueKey | 提取一个注册表的值 | 
在进行字符串操作时,要用到大量的Rtl-函数。
| Rtl-系列函数 | 功能简述 | 
| RtlInitUnicodeString | 初始化一个字符串 | 
| RtlCopyUnicodeString | 拷贝字符串 | 
| RtlAppendUnicodeToString | append | 
| RtlStringCbPrintf | sprintf | 
| RtlCopyMemory | 内存数据拷贝 | 
| RtlMoveMemory | 内存数据移动 | 
| RtlZeroNeniry | 内存数据清零 | 
| RtlCompareMemory | 比较内存 | 
| RtlGetVersion | 获得当前windows的版本 | 
Io-系列函数非常重要,涉及到了io管理
| Io-系列函数 | 功能简述 | 
| IoCreateFile | 打开文件,比ZwCreate更底层 | 
| IoCreateDevice | 创建一个设备对象 | 
| IoCallDriver | 发送请求 | 
| IoCompleteRequest | 完成请求(通知IO管理器这个请求已经完成) | 
| IoCopyCurrentIrpStackLocationToNext | 将当前IRP的栈空间拷贝到下一个栈空间 | 
| IoSkipCurrentIrpStackLocationToNext | 跳过当前的IRP栈空间 | 
| IoGetCurrentIrpStackLocation | 获得IRP当前栈空间的指针 | 
Ps-系列函数大多数和进程线程相关
Ndis-系列是网络驱动相关的
非WDK 中的函数只要不涉及内存管理,都可以在内核程序中调用,但是MS不提出这么做。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号