CmpVolumeContextSendDeviceUsageNotification

INT64 __fastcall CmpVolumeContextSendDeviceUsageNotification(INT64 a1){
  NTSTATUS v2; 
  char v4; 

  if( *(_QWORD *)(a1 + 48) )
  {
    CmpVolumeContextLockShared(a1);
    if( *(_BYTE *)(a1 + 64) )
    {
      v2 = 0;
      CmpVolumeContextUnlockShared(a1);
    }
    else
    {
      CmpVolumeContextUnlockShared(a1);
      v2 = PpPagePathAssign(*(_FILE_OBJECT **)(a1 + 48));
      if( v2 >= 0 )
      {
        v4 = 1;
        ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)(a1 + 56), 0i64);
        if( !*(_BYTE *)(a1 + 64) )
        {
          *(_BYTE *)(a1 + 64) = 1;
          v4 = 0;
        }
        CmpVolumeContextUnlockExclusive(a1);
        v2 = 0;
        if( v4 )
          PpPagePathRelease(*(_FILE_OBJECT **)(a1 + 48));
      }
    }
  }
  else
  {
    return(unsigned int)-1073741637;
  }
  return(unsigned int)v2;
}

Referenced by:

CmpHandlePageFileOpenNotification