IopCancelIrpsInThreadList
INT64 __fastcall IopCancelIrpsInThreadList(INT64 a1, INT64 a2){
_ETHREAD *CurrentThread;
UINT64 v6;
UINT8 v7;
UINT8 v8;
UINT64 v9;
UINT8 v10;
UINT8 v11;
IRP *v12;
IRP *v13;
char SystemArgument1;
SystemArgument1 = 0;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
if( (_ETHREAD *)a1 == CurrentThread )
return IopCancelIrpsInCurrentThreadList(
*(_FILE_OBJECT **)(a2 + 88),
CurrentThread,
*(_IO_STATUS_BLOCK **)(a2 + 96),
*(_BYTE *)(a2 + 128));
KeInitializeApc(a2, a1, 0i64, (INT64)IopCancelIrpsInCurrentThreadListSpecialApc, 0i64, 0i64, 0, 0i64);
if( KeInsertQueueApc((_KAPC *)a2, &SystemArgument1, 0i64, 0i64) )
{
KeWaitForSingleObject((PVOID)(a2 + 104), Executive, 0, 0, 0i64);
KeResetEvent((VOID *)(a2 + 104), v6, v7, v8, v12);
if( SystemArgument1 )
{
KeInitializeEvent((_KEVENT *)(a2 + 104), NotificationEvent, 0);
KeInitializeApc(
a2,
a1,
0i64,
(INT64)AlpcMessageDeleteProcedure,
0i64,
(INT64)IopCancelIrpsInCurrentThreadListApcRoutine,
0,
a2);
if( KeInsertQueueApc((_KAPC *)a2, 0i64, 0i64, 0i64) )
{
KeWaitForSingleObject((PVOID)(a2 + 104), Executive, 0, 0, 0i64);
KeResetEvent((VOID *)(a2 + 104), v9, v10, v11, v13);
}
}
}
return *(unsigned int *)(a2 + 132);
}Referenced by:
IopCancelIrpsInThreadListForCurrentProcess
IopCancelSynchronousIrpsForThread