Windows内核函数使用

导出文档化 导出未文档化

内核API

复制代码
#include <ntifs.h>

VOID DriverUnload(PDRIVER_OBJECT pDriver)
{
	DbgPrint("Exit! \n");
}

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pReg)
{
	pDriver->DriverUnload = DriverUnload;

	UNICODE_STRING uStr = { 0 };

	RtlInitUnicodeString(&uStr,L"Star");
	
	DbgPrint("Buffer->[%ws] Length->[%d] MaximumLength->[%d] \n",uStr.Buffer,uStr.Length,uStr.MaximumLength);

	return	STATUS_SUCCESS;
}

导出未文档化

Windows 内核函数

Windows 内核部分会调用一些内核层的函数。这些函数都以固定的开始前缀,分别属于内核中不同的管理模块。通过函数名就可以大致知道这个函数所属的层次和模块。这些主要的前缀如下:

  • Ex:管理层。"Ex"是"Executive"的开头两个字母。
  • Ke:核心层。"Ke"是"Kernel"的开头两个字母。
  • HAL:硬件抽象层。"HAL"是"Hardware Abstraction Layer"的缩写。
  • Ob:对象管理。"Ob"是"Object"的开头两个字母。
  • MM:内存管理。"MM"是"Memory Manager"的缩写。
  • Ps:进程(线程)管理。"Ps"表示"Process"。
  • Se:安全管理。"Se"是"Security"的开头两个字母。
  • Io:I/O管理。
  • Fs:文件系统。"Fs"是"File System"的缩写。
  • Cc:文件缓存管理。"Cc"表示"Cache"。
  • Cm:系统配置管理。"Cm"是"Configuration Manager"的缩写。
  • Pp:即插即用管理。"Pp"表示"Pnp"。
  • Rtl:运行时程序库。"Rtl"是"Runtime Library"的缩写。
  • Zw/Nt:对应于SSDT中的服务函数,例如与文件或者注册表相关的操作函数。
  • Flt:Minifilter文件过滤驱动中调用的函数。
  • Ndis:Ndis网络框架中调用的函数。

未导出

内核结束进程

TerminateProcess

NtTerminateProcess

PspTerminateAllThreads

PspTerminateThreadByPointer

复制代码
NTSTATUS
PspTerminateThreadByPointer(
    IN PETHREAD Thread,
    IN NTSTATUS ExitStatus,
    IN BOOLEAN DirectTerminate
    )
相关推荐
代码小书生6 小时前
Windows X-Lite Win11 26H1 v3 游戏优化系统!集Win11、Win10、Win7三代优点,兼顾游戏办公生产算力,系统精简纯净!
windows·win10·电脑系统·windows10·26h1·windows x-lite·操作系统操作系统
贵沫末8 小时前
python——打包自己的库并安装
开发语言·windows·python
小眼哥9 小时前
SpringBoot整合Vue代码生成exe运行程序以及windows安装包
vue.js·windows·spring boot
xiaoshuaishuai89 小时前
C# GPU算力与管理
开发语言·windows·c#
꯭爿꯭巎꯭12 小时前
千鹿PR助手邀请码
windows
张赐荣14 小时前
跨平台无障碍版随机数生成器
windows
胖少年14 小时前
从零开始:在 Windows 上用 llama.cpp 跑本地大模型
windows·llama
小狄同学呀14 小时前
同样的global,不同的audioLibPath——记一次诡异的内存错位
c++·windows