IopCheckDeviceFlags

UINT8 __stdcall IopCheckDeviceFlags(PO_DEVICE_NOTIFY *Notify, UINT64 Flags){
  _DEVICE_OBJECT *TargetDevice; 
  int v3; 
  UINT8 v4; 
  _DEVICE_OBJECT *LowerDeviceObjectWithTag; 

  TargetDevice = Notify->TargetDevice;
  v3 = Flags;
  v4 = 0;
  ObfReferenceObjectWithTag(TargetDevice, 0x70506F50ui64);
  if( TargetDevice )
  {
    while( (v3 & TargetDevice->Flags) == 0 )
    {
      LowerDeviceObjectWithTag = (_DEVICE_OBJECT *)IoGetLowerDeviceObjectWithTag((INT64)TargetDevice, 0x70506F50ui64);
      ObfDereferenceObjectWithTag(TargetDevice, 0x70506F50ui64);
      TargetDevice = LowerDeviceObjectWithTag;
      if( !LowerDeviceObjectWithTag )
        return v4;
    }
    v4 = 1;
    ObfDereferenceObjectWithTag(TargetDevice, 0x70506F50ui64);
  }
  return v4;
}

Referenced by:

IoBuildPoDeviceNotifyList