MmDoesFileHaveUserWritableReferences

ULONG __stdcall MmDoesFileHaveUserWritableReferences(PSECTION_OBJECT_POINTERS SectionPointer){
  UINT8 CurrentIrql; 
  INT64 *DataSectionObject; 
  INT64 *v5; 
  _BOOL4 v6; 

  while( 1 )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    ExpAcquireSpinLockExclusive(&SpinLock, CurrentIrql);
    DataSectionObject = (INT64 *)SectionPointer->DataSectionObject;
    if( !SectionPointer->DataSectionObject )
    {
      ExReleaseSpinLockExclusiveFromDpcLevel(&SpinLock);
      __writecr8(CurrentIrql);
      return 0;
    }
    v5 = DataSectionObject + 9;
    if( (unsigned int)ExTryAcquireSpinLockExclusiveAtDpcLevel(DataSectionObject + 9) )
      break;
    ExReleaseSpinLockExclusiveFromDpcLevel(&SpinLock);
    __writecr8(CurrentIrql);
  }
  ExReleaseSpinLockExclusiveFromDpcLevel(&SpinLock);
  v6 = MiDoesControlAreaHaveUserWritableReferences((INT64)DataSectionObject) != 0;
  ExReleaseSpinLockExclusiveFromDpcLevel(v5);
  __writecr8(CurrentIrql);
  return v6;
}

Referenced by:

No references.