IopCancelIrpsInThreadListForCurrentProcess
UINT64 __stdcall IopCancelIrpsInThreadListForCurrentProcess(
_FILE_OBJECT *FileObject,
_IO_STATUS_BLOCK *IoRequestToCancel,
_IO_STATUS_BLOCK *ptr32){
unsigned int v5;
_EPROCESS *Process;
_ETHREAD *i;
_LIST_ENTRY **NextProcessThread;
_ETHREAD *v9;
int v10;
_BYTE ApcContext[136];
v5 = 0;
Process = KeGetCurrentThread()->ApcState.Process;
memset(ApcContext, 0i64, sizeof(ApcContext));
*(_QWORD *)&ApcContext[88] = FileObject;
*(_QWORD *)&ApcContext[96] = IoRequestToCancel;
ApcContext[128] = 0;
KeInitializeEvent((INT64)&ApcContext[104], 0, 0);
for( i = 0i64; ; i = v9 )
{
NextProcessThread = PsGetNextProcessThread(Process, i);
v9 = (_ETHREAD *)NextProcessThread;
if( !NextProcessThread )
break;
IopCancelApcRequired((_ETHREAD *)NextProcessThread, FileObject, IoRequestToCancel);
if( v10 )
v5 |= IopCancelIrpsInThreadList(v9, (_KAPC *)ApcContext);
}
return v5;
}Referenced by:
IopRevokeFileObjectForProcess
NtCancelIoFileEx