IDE_BLK_IO_DEV *IdeBlkIoDevice;\r
\r
//\r
- // Get the controller context\r
+ // Make sure this driver is currently managing ControllHandle\r
//\r
- Status = gBS->OpenProtocol (\r
- ControllerHandle,\r
- &gEfiCallerIdGuid,\r
- NULL,\r
- gIDEBusDriverBinding.DriverBindingHandle,\r
- ControllerHandle,\r
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL\r
- );\r
+ Status = EfiTestManagedDevice (\r
+ ControllerHandle,\r
+ gIDEBusDriverBinding.DriverBindingHandle,\r
+ &gEfiIdeControllerInitProtocolGuid\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
);\r
}\r
\r
+ Status = EfiTestChildHandle (\r
+ ControllerHandle,\r
+ ChildHandle,\r
+ &gEfiPciIoProtocolGuid\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
//\r
// Get the child context\r
//\r