RawClose

__int64 __fastcall RawClose(PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader, PIRP Irp, __int64 a3){
  _FAST_MUTEX *p_PagingIoResource; 
  if( (*(_DWORD *)(*(_QWORD *)(a3 + 48) + 80i64) & 0x100) == 0 )
  {
    p_PagingIoResource = (_FAST_MUTEX *)&AdvancedHeader[2].PagingIoResource;
    ExAcquireFastMutex((FAST_MUTEX *)&AdvancedHeader[2].PagingIoResource);
    --*(_DWORD *)&AdvancedHeader[1].Flags;
    --LODWORD(AdvancedHeader[1].Resource);
    if( *(_DWORD *)&AdvancedHeader[1].Flags || !RawInitiateDeleteVolume((INT64)AdvancedHeader, 0i64, 0i64) )
      KeReleaseGuardedMutex(p_PagingIoResource);
  }
  *((_DWORD *)Irp + 12) = 0;
  IofCompleteRequest(Irp, 1);
  return 0i64;
}

Referenced by:

RawDispatch