// Close the bus driver\r
//\r
if (ScsiBusDev->ExtScsiSupport) {\r
+ //\r
+ // Close ExtPassThru Protocol from this controller handle\r
+ //\r
gBS->CloseProtocol (\r
Controller,\r
&gEfiExtScsiPassThruProtocolGuid,\r
This->DriverBindingHandle,\r
Controller\r
);\r
+ //\r
+ // When Start() succeeds to open ExtPassThru, it always tries to open PassThru BY_DRIVER.\r
+ // Its intent is to prevent another SCSI Bus Driver from woking on the same host handle. \r
+ // So Stop() needs to try to close PassThru if present here.\r
+ //\r
+ gBS->CloseProtocol (\r
+ Controller,\r
+ &gEfiScsiPassThruProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
} else {\r
gBS->CloseProtocol (\r
Controller,\r