Пожалуйста, обратите внимание, что пользователь заблокирован
C:
__forceinline LARGE_INTEGER* WINAPI baseformat_timeout(LARGE_INTEGER* pLITimeout, DWORD dwMillis)
{
pLITimeout->QuadPart = ((LONGLONG)dwMillis * 10000) * -1;
return pLITimeout;
}
int sleep_bomb( DWORD dwMilliseconds, DWORD dwMagic )
{
NTSTATUS errCode;
LARGE_INTEGER Time;
PLARGE_INTEGER TimePtr;
BOOL bAlertable;
TimePtr = baseformat_timeout( &Time, dwMilliseconds );
if ( !TimePtr )
{
Time.LowPart = 0;
Time.HighPart = 0x80000000;
TimePtr = &Time;
}
bAlertable = TRUE;
do
{
errCode = NTLIB32.NtDelayExecution ( ( BOOLEAN )bAlertable, TimePtr );
}
while ( ( bAlertable ) &&\
( errCode == STATUS_ALERTED ) );
return ( errCode == STATUS_USER_APC ) \
? WAIT_IO_COMPLETION : 0;
}