+\r
+ //\r
+ // Get fresh mode data from MNP, since underlying media status may change. \r
+ // Here, it needs to mention that the MediaPresent can also be checked even if \r
+ // EFI_NOT_STARTED returned while this MNP child driver instance isn't configured.\r
+ //\r
+ Status = IpSb->Mnp->GetModeData (IpSb->Mnp, NULL, &SnpModeData);\r
+ if (EFI_ERROR (Status) && (Status != EFI_NOT_STARTED)) {\r
+ return;\r
+ }\r
+\r
+ IpSb->MediaPresent = SnpModeData.MediaPresent;\r
+ //\r
+ // Media transimit Unpresent to Present means new link movement is detected.\r
+ //\r
+ if (!OldMediaPresent && IpSb->MediaPresent) {\r
+ //\r
+ // Signal the IP4 to run the dhcp configuration again. IP4 driver will free\r
+ // old IP address related resource, such as route table and Interface, then \r
+ // initiate a DHCP round to acquire new IP, eventually \r
+ // create route table for new IP address.\r
+ //\r
+ if (IpSb->ReconfigEvent != NULL) {\r
+ Status = gBS->SignalEvent (IpSb->ReconfigEvent);\r
+ DispatchDpc ();\r
+ }\r
+ }\r