请输入您要查询的百科知识:

 

词条 NtShutdownSystem
释义

函数介绍

NtShutdownSystem()函数用于关闭、重启系统。

正常关机时,当系统已关闭所有程序,显示正在关闭系统。SMSS.EXE将会调用该函数进行最后的扫尾工作,然后系统将重启或关闭。

参数

ShutdownAction

指定关闭的类型。

shutdown 关机

restart 重启动

poweroff 待机

使用方法

VB

Declare Function NtShutdownSystem& Lib "ntdll" (ByVal ShutdownAction&)

Const shutdown& = 0

Const RESTART& = 1

Const POWEROFF& = 2

VC

const int SE_SHUTDOWN_PRIVILEGE = 0x13;

typedef int (__stdcall *PFN_RtlAdjustPrivilege)( INT, BOOL, BOOL, INT*);

typedef int (__stdcall *PFN_ZwShutdownSystem)(INT);

HMODULE hModule = ::LoadLibrary(_T("ntdll.dll"));

if( hModule != NULL)

{ PFN_RtlAdjustPrivilege pfnRtl = (PFN_RtlAdjustPrivilege)GetProcAddress( hModule, "RtlAdjustPrivilege"); PFN_ZwShutdownSystem pfnShutdown = (PFN_ZwShutdownSystem)GetProcAddress( hModule,"ZwShutdownSystem");

if( pfnRtl != NULL & pfnShutdown != NULL )

{

int en = 0;

int nRet= pfnRtl( SE_SHUTDOWN_PRIVILEGE, TRUE, TRUE, &en);

if( nRet == 0x0C000007C ) nRet = pfnRtl(SE_SHUTDOWN_PRIVILEGE, TRUE, FALSE, &en); //SH_SHUTDOWN = 0; //SH_RESTART = 1; //SH_POWEROFF = 2;

const int SH_POWEROFF = 2; nRet = pfnShutdown(POWEROFF);

}

}

备注

使用此函数需要程序有一定权限!

调用NtShutdownSystem()函数后将立即重启或关机,未保存的数据将丢失。

由于NtShutdownSystem()是瞬间关机的。为了系统与硬件的安全,应使用ExitWindowsEX()进行正常关机。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 9:37:38