IopFreePoDeviceNotifyListHead

VOID __stdcall IopFreePoDeviceNotifyListHead(LIST_ENTRY *ListHead){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v3; 
  _LIST_ENTRY *Blink; 
  _LIST_ENTRY *v5; 
  while( 1 )
  {
    Flink = ListHead->Flink;
    if( ListHead->Flink == ListHead )
      break;
    if( Flink->Blink != ListHead || (v3 = Flink->Flink, Flink->Flink->Blink != Flink) )
      __fastfail(3u);
    ListHead->Flink = v3;
    v3->Blink = ListHead;
    HalPutDmaAdapter((PADAPTER_OBJECT)Flink[4].Flink);
    HalPutDmaAdapter((PADAPTER_OBJECT)Flink[3].Flink);
    Blink = Flink[4].Blink;
    if( Blink )
      ExFreePoolWithTag(Blink, 0x72775044u);
    v5 = Flink[5].Flink;
    if( v5 )
      ExFreePoolWithTag(v5, 0x72775044u);
  }
}

Referenced by:

IoBuildPoDeviceNotifyList
IoFreePoDeviceNotifyList