快速关机

使用   NtShutdownSystem   可以强制关闭   Windows   系统。这个函数是众多的未归档的   Windows   NT/2000   Native   API   函数之一,它在关闭系统时不会事先通知系统服务程序和用户程序。行为很是粗鲁,除非迫不得已,最好不要使用这个函数。msgina.dll   中用到了这个函数。该函数由   ntdll.dll   输出,其原型如下:

NTSYSAPI
NTSTATUS
NTAPI
NtShutdownSystem(SHUTDOWN_ACTION);

SHUTDOWN_ACTION   结构定义:
typedef   enum   _SHUTDOWN_ACTION   {
ShutdownNoReboot,
ShutdownReboot,
ShutdownPowerOff
}SHUTDOWN_ACTION;

下面是一段使用该函数的例子代码:

HANDLE   hToken;
if   (OpenProcessToken(GetCurrentProcess(),  
TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES,   &hToken))
{
TOKEN_PRIVILEGES   tkp;

LookupPrivilegeValue(NULL,   SE_SHUTDOWN_NAME,   &tkp.Privileges[0].Luid);

tkp.PrivilegeCount   =   1;
tkp.Privileges[0].Attributes   =   SE_PRIVILEGE_ENABLED;  

AdjustTokenPrivileges(hToken,   FALSE,   &tkp,   0,   NULL,   0);
CloseHandle(hToken);
}

NtShutdownSystem(ShutdownNoReboot);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值