词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。