]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkNt32Pkg/Dxe/WinNtThunk/Bus/WinNtBusDriver/ComponentName.c
Fix component name bugs when input Controller Name is invalid
[mirror_edk2.git] / EdkNt32Pkg / Dxe / WinNtThunk / Bus / WinNtBusDriver / ComponentName.c
index 7dee4bd9a4cb0f10f2fe209120a2636d8d863a45..b03fc8b2649ce0453282119be454b32bb6ac9bc3 100644 (file)
@@ -154,6 +154,18 @@ WinNtBusDriverComponentNameGetControllerName (
   EFI_WIN_NT_IO_PROTOCOL  *WinNtIo;\r
   WIN_NT_IO_DEVICE        *Private;\r
 \r
+  //\r
+  // Make sure this driver is currently managing ControllHandle\r
+  //\r
+  Status = EfiTestManagedDevice (\r
+             ControllerHandle,\r
+             gWinNtBusDriverBinding.DriverBindingHandle,\r
+             &gEfiWinNtThunkProtocolGuid\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
   //\r
   // This is a bus driver, so ChildHandle can not be NULL.\r
   //\r
@@ -161,6 +173,15 @@ WinNtBusDriverComponentNameGetControllerName (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
+  Status = EfiTestChildHandle (\r
+             ControllerHandle,\r
+             ChildHandle,\r
+             &gEfiWinNtThunkProtocolGuid\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
   //\r
   // Get our context back\r
   //\r