Оригінальна відповідь: жовтень 2008
Ви також отримали всі " rundll32.exe shell32.dll" серія:
(див. оновлення нижче)
rundll32.exe user.exe,**ExitWindows** [Швидке відключення Windows]
rundll32.exe user.exe,**ExitWindowsExec** [Перезапуск Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
де nрозшифровується:
- 0 -
LOGOFF
- 1 -
SHUTDOWN
- 2 -
REBOOT
- 4 -
FORCE
- 8 -
POWEROFF
(можна комбінувати -> 6 = 2 + 4 FORCE REBOOT)
Оновлення квітня 2015 року (через 6 років):
1800 ІНФОРМАЦІЯ люб’язно вказує у коментарях :
Не використовуйте rundll32.exeдля цієї мети. Очікується, що функція, яку ви передали в командному рядку, має дуже специфічний підпис методу - він не відповідає методу підпису ExitWindows.
Реймонд ЧЕН написав:
Підпис функції, необхідний для функцій, викликаних rundll32.exe:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Це не заважало людям використовувати rundll32для виклику випадкових функцій, які не були призначені для виклику rundll32, як-от user32 LockWorkStationабо user32 ExitWindowsEx.
(ой)
Фактична підпис функції для ExitWindowsEx:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
І щоб він став кристально чистим:
Rundll32 є залишком з Windows 95, і він був застарілий ще щонайменше з Windows Vista, оскільки порушує безліч сучасних технічних рекомендацій.