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