NtTerminateProcess
Windows的关闭程序的函数
NtTerminateProcess,Windows的关闭程序的函数
函数简介
这是一个,,大多数的程序都使用这个函数来实现关闭程序
也许你使用的是TerminateProcess,但是TerminateProcess是通过调用NtTerminateProcess来实现关闭程序的
函数原型
C、C++
NtTerminateProcess(
IN HANDLE ProcessHandle OPTIONAL,
IN NTSTATUS ExitStatus);
VB
参数意义
ProcessHandle : 进程的句柄,要用OpenProcess来获得
函数调用
TerminateProcess ->NtTerminateProcess ->ZwTerminateProcess
有时候,TerminateProcess 不能完全地结束一个进程,但是NtTerminateProcess 可以,ZwTerminateProcess 是基于内核驱动来关闭进程的.
C++示例
#include
#include
typedef DWORD (__stdcall *NtTerminateProcess)(HANDLE,UINT);
NtTerminateProcess fNtTerminateProcess=NULL;
BOOL ExitProc(HANDLE hProc)
{
if(hModule!=0)
{
HANDLE hToken=OpenProcess(PROCESS_ALL_ACCESS,FALSE,(DWORD)hProc); //获得进程的最大权限
if(hToken!=0){ if(fNtTerminateProcess(hToken,1)==0) //关闭程序
{
return TRUE;
}
else
{
return FALSE;
}
}
return FALSE;
}
VB示例
Private Const PROCESS_ALL_ACCESS = &H1F0FFF '全权打开进程
Private Function GetMaxPrivilegeToProcess(ByVal ProcessID As Long) As Long
GetMaxPrivilegeToProcess = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID)
End Function
Public Function ExitProc(ByVal PID As Long) As Boolean
If NtTerminateProcess(PID, 1) = 0 Then
ExitProc = True
Else
ExitProc = False
End If
End Function
参考资料
最新修订时间:2024-07-22 12:48
目录
概述
函数简介
函数原型
参考资料