> On Jun 1, 2017, at 9:46 AM, Amit kumar <[email protected]> wrote: > > Hi, > I am trying to open PciIoProtocol and facing some issue. > > below is the code > > EFI_PCI_IO_PROTOCOL *PciIo=NULL; > EFI_STATUS Status; > > Status = gBS->OpenProtocol ( > Controller, > &gEfiPciIoProtocolGuid, > (VOID **) &PciIo, > This->DriverBindingHandle, > Controller, > EFI_OPEN_PROTOCOL_BY_DRIVER > ); > > it returns Status = EFI_ALREADY_STARTED, but PciIo is not NULL. > Is it not supposed to return PciIo as NULL ? > As per UEFI 2.6 Spec Section 6.3 page 182. >
Amit, Look at the Status Codes Returned section at the end of that section. Attributes is BY_DRIVER and there is an item on the open list with an attribute of BY_DRIVER whose agent handle is the same as AgentHandle. Attributes is BY_DRIVER|EXCLUSIVE and there is an item on the open list with an attribute of BY_DRIVER|EXCLUSIVE whose agent handle is the same as AgentHandle. Thanks, Andrew Fish > There are a number of reasons that this function call can return an error. If > an error is returned, then > AgentHandle, ControllerHandle, and Attributes are not added to the list of > agents > consuming the protocol interface specified by Handle and Protocol, and > Interface is > returned unmodified. > > Thanks And Regards > Amit > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

