解释一下这几条语句
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, ( PTOKEN_PRIVILEGES ) NULL, 0 );
if ( GetLastError() != ERROR_SUCCESS )
goto FAILED_MESSAGE;
if ( ! InitiateSystemShutdown( NULL, strInfo, 20, TRUE, FALSE ) )
goto FAILED_MESSAGE;
tkp.Privileges[ 0 ].Attributes = 0;
AdjustTokenPrivileges( hToken, FALSE, & tkp, 0, ( PTOKEN_PRIVILEGES ) NULL, 0 );
if ( GetLastError() != ERROR_SUCCESS )
goto FAILED_MESSAGE;
最好每条注释,劳驾了!!!