> 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

Reply via email to