PopPolicyDeviceRemove

VOID __stdcall PopPolicyDeviceRemove(_POP_POLICY_DEVICE *PolicyDevice){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 
  __int64 DeviceType; 

  Flink = PolicyDevice->Link.Flink;
  if( PolicyDevice->Link.Flink )
  {
    if( (_POP_POLICY_DEVICE *)Flink->Blink != PolicyDevice
      || (Blink = PolicyDevice->Link.Blink, (_POP_POLICY_DEVICE *)Blink->Flink != PolicyDevice) )
    {
      __fastfail(3u);
    }
    Blink->Flink = Flink;
    Flink->Blink = Blink;
    DeviceType = PolicyDevice->DeviceType;
    PolicyDevice->Link.Flink = 0i64;
    (*((void(__fastcall **)(_POP_POLICY_DEVICE *))&unk_140C03278 + 4 * DeviceType))(PolicyDevice);
    IoFreeIrp(PolicyDevice->Irp);
    ObfDereferenceObjectWithTag(PolicyDevice->Device, 0x64506F50ui64);
  }
}

Referenced by:

PopPolicyDeviceTargetChange