IopIrpHasValidCombinationOfExtensionTypes

UINT8 __stdcall IopIrpHasValidCombinationOfExtensionTypes(_IRP *Irp, UINT64 Type){
  int v2; 
  _WORD *IrpExtension; 
  int v4; 
  __int16 v5; 

  v2 = Type;
  if( (Irp->AllocationFlags & 0x80u) != 0 )
    return 1;
  IrpExtension = Irp->Tail.IrpExtension;
  if( !IrpExtension )
    return 1;
  v4 = 1 << Type;
  if( (v4 & 0xB2) == 0 )
    return 1;
  v5 = IrpExtension[1];
  if( (v5 & 0xB2) == 0 || (v5 & 0xB2) == v4 )
    return 1;
  if( v2 != 1 && (v5 & 2) != 0 )
  {
    *((_QWORD *)IrpExtension + 5) = 0i64;
    IrpExtension[1] = v5 & 0xFFFE;
    return 1;
  }
  return 0;
}

Referenced by:

IoSetAdapterCryptoEngineExtension
IoSetFsTrackOffsetState
IoSetFsZeroingOffsetRequired
IopPerfCallDriver