FsRtlpOplockUpperLowerCompatible

UINT8 __stdcall FsRtlpOplockUpperLowerCompatible(UINT64 UpperOplockLevel, UINT64 LowerOplockLevel){
  int v2; 
  UINT8 result; 

  v2 = UpperOplockLevel & 0x1701E;
  result = 1;
  if( (v2 & 0xFFFEFFFF) == 0 )
    return result;
  switch( (_DWORD)LowerOplockLevel )
  {
    case 0:
      return 0;
    case 0x1000:
      goto LABEL_13;
    case 0x3000:
      if( v2 == 12288 )
        return result;
LABEL_13:
      if( v2 != 4096 && v2 != 16 )
        return 0;
      return result;
  }
  if( (_DWORD)LowerOplockLevel == 20480 && (v2 == 28672 || v2 == 12288 || v2 == 4) )
    return 0;
  return result;
}

Referenced by:

FsRtlCheckUpperOplock
FsRtlUpperOplockFsctrl
FsRtlpAcknowledgeOplockBreak
FsRtlpAcknowledgeOplockBreakByCacheFlags
FsRtlpRequestExclusiveOplock
FsRtlpRequestShareableOplock