Всем приветы. Не могу понять, почему AdjustTokenPrivileges возвращает ноль. последняя ошибка 988 (вроде не может получить доступ к памяти) Структуры определяю так: struc LUID_AND_ATTRIBUTES { .Luid dd 0,0 .Attributes dd 2 };LUID_AND_ATTRIBUTES ;ends struc TOKEN_PRIVILEGES { .PrivilegeCount dd 1 .Privileges LUID_AND_ATTRIBUTES .size = $ - .PrivilegeCount };TOKEN_PRIVILEGES ;ends ........ SE_SHUTDOWN_NAME db "SeShutdownPrivilege",0 invoke GetCurrentProcess mov [prH],eax invoke OpenProcessToken,eax,0,hT invoke LookupPrivilegeValue,0,SE_SHUTDOWN_NAME,rtp.Privileges.Luid invoke AdjustTokenPrivileges,[hT],0,rtp,0,0,0 invoke GetLastError stdcall IntToString,nd,eax invoke MessageBox,0,nd,nd,MB_OK invoke ExitProcess,[msg.wParam] Написано под Фасм. Прога консольная. Win2000
Кажется так: Код (Text): TOKEN_QUERY = 0x08 TOKEN_ADJUST_PRIVILEGES = 0x20 invoke OpenProcessToken,eax,TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY,hT
Спасибо, но результат тот же. Ошибка на AdjustTokenPrivileges. Остальные (до нее) возвращают не ноль.