RawCompletionRoutine
NTSTATUS __stdcall RawCompletionRoutine(DEVICE_OBJECT *DeviceObject, IRP *Irp, PVOID Context){
__int64 v3;
__int64 v5;
v3 = *((_QWORD *)Irp + 23);
if( (unsigned __int8)(*(_BYTE *)v3 - 3) <= 1u )
{
v5 = *(_QWORD *)(v3 + 48);
if( v5 )
{
if( (*(_DWORD *)(v5 + 80) & 2) != 0 && *((int *)Irp + 12) >= 0 )
*(_QWORD *)(v5 + 104) += *((_QWORD *)Irp + 7);
}
}
if( *((_BYTE *)Irp + 65) )
*(_BYTE *)(*((_QWORD *)Irp + 23) + 3i64) |= 1u;
RawEndOperation((INT64)Context, *(_QWORD *)(v3 + 48));
if( *(_BYTE *)v3 == 27 )
{
ExAcquireFastMutex((FAST_MUTEX *)Context + 4);
--*((_DWORD *)Context + 28);
if( *((_DWORD *)Context + 27) || !RawInitiateDeleteVolume((INT64)Context, 0i64, 0i64) )
KeReleaseGuardedMutex((_FAST_MUTEX *)Context + 4);
}
return 0;
}Referenced by:
No references.