public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: GN Keshava <keshava.gn@gmail.com>
To: "Carsey, Jaben" <jaben.carsey@intel.com>,
	 "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: LocateHandle for gEfiShellProtocolGuid is failing in my application
Date: Fri, 23 Dec 2016 04:06:48 +0000	[thread overview]
Message-ID: <CABKwMdu7Phf2RhiXRcGCZks8OWr5tq85Zzga8-NvCS1-9EbRNA@mail.gmail.com> (raw)
In-Reply-To: <CB6E33457884FA40993F35157061515C54B2F26C@FMSMSX103.amr.corp.intel.com>

Hi Jaben,

Version is 2.31... Revision is 4.653

Thanks.
Regards,
Keshava

On Thu, 22 Dec 2016 at 22:26 Carsey, Jaben <jaben.carsey@intel.com> wrote:

> That function is not in the shell library.
>
>
>
> LocateHandle would be useful is you wanted to find the image handle for
> the shell binary whereas LocaetProtocol would be just getting a pointer to
> the protocol.
>
>
>
> Which version of the UEFI Shell are you using?  (what does “ver” command
> say)
>
>
>
> -Jaben
>
>
>
> *From:* GN Keshava [mailto:keshava.gn@gmail.com]
> *Sent:* Thursday, December 22, 2016 2:07 AM
> *To:* Carsey, Jaben <jaben.carsey@intel.com>; edk2-devel@lists.01.org
> *Subject:* Re: [edk2] LocateHandle for gEfiShellProtocolGuid is failing
> in my application
> *Importance:* High
>
>
>
> Hi Jaben and Andrew, Thanks for the replies. Here's a small update.
>
>
>
> I tried using *LocateProtocol*, and I get "*Status Not Found*" (%r would
> print "Status Not Found").
>
> I'm getting the same error status for *LocateHandle *too. I'm using
> *BufferSize=0* and *Buffer=NULL* for getting the BufferSize.
>
> What this would mean? Is there any specific requirement my application
> should meet, to use ShellProtocol? Or, as I mentioned in previous mail, I
> want to use GetMapFromDevicePath function. Is there any alternate way to do
> it?
>
>
>
> Thanks for your help.
>
> Regards,
>
> Keshava
>
>
>
> On Thu, 22 Dec 2016 at 15:01 GN Keshava <keshava.gn@gmail.com> wrote:
>
> Hi Jaben,
>
>
>
> *>> Is there a reason that you are not using ShellLib to facilitate your
> app functionality?  That library makes lots of things a lot easier.*
>
>
>
> I want to use EFI_SHELL_PROTOCOL->*GetMapFromDevicePath* in my app. Is
> there any way to use it using ShellLib ?
>
>
>
> *>> Why do you use LocateHandle and not LocateProtocol?*
>
>
>
> Got LocateHandle in my reference. I would like to know more about
> difference and usage of these in different scenario.
>
>
>
> *>> Are you running the UEFI Shell and then your application?*
>
>
>
> Yes. I'm running my application from UEFI shell as :
>
>
>
> *fs1:\> MyApp.exe Arg1 Arg2*
>
>
>
> Thanks for the help..
>
>
>
> Regards,
>
> Keshava
>
>
>
> On Thu, 22 Dec 2016 at 00:06 Carsey, Jaben <jaben.carsey@intel.com> wrote:
>
> Hi Keshava,
>
> few questions:
> Is there a reason that you are not using ShellLib to facilitate your app
> functionality?  That library makes lots of things a lot easier.
> Why do you use LocateHandle and not LocateProtocol?
> Are you sure about that return code?  Usually most-sig-bit is set for
> error returns.
>
> Does the following snippet of code find a valid instance?
>
>     Status = gBS->LocateProtocol(
>       &gEfiShellProtocolGuid,
>       NULL,
>       (VOID **)&gEfiShellProtocol
>      );
>     if (EFI_ERROR(Status)) {
>       gEfiShellProtocol = NULL;
>     }
>
> Are you running the UEFI Shell and then your application?
>
>
> -Jaben
>
>
>
>
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> > GN Keshava
> > Sent: Tuesday, December 20, 2016 11:32 PM
> > To: edk2-devel@lists.01.org
> > Subject: [edk2] LocateHandle for gEfiShellProtocolGuid is failing in my
> > application
> > Importance: High
> >
> > Hi,
> >
> > I'm developing a shell application. A call to LocateHandle for
> > gEfiShellProtocolGuid is failing with Status 0x0E.
> >
> > Below is my code. Please let me know what I'm doing wrong.
> >
> > Status = gBS->LocateHandle(ByProtocol, &gEfiShellProtocolGuid, NULL,
> > &BufferSize, Buffer); // Get BufferSize
> > if (EFI_ERROR(Status))
> > Print(L"LocateHandle Status 0x%x\n",Status);
> >
> > Status = gBS->AllocatePool(EfiBootServicesData, BufferSize,
> > (void**)&Buffer);
> > if (EFI_ERROR(Status))
> > Print(L"AllocatePool Status 0x%x\n",Status);
> >
> > Status = gBS->LocateHandle(ByProtocol, &gEfiShellProtocolGuid, NULL,
> > &BufferSize, Buffer);
> > if (EFI_ERROR(Status))
> > Print(L"LocateHandle Status 0x%x\n",Status);
> >
> > All calls failing with Status being 0x0E. Please help me to solve this.
> Is
> > there any special requirement for using this protocol?
> >
> > Thanks.
> > Regards,
> > Keshava
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
>
>


  reply	other threads:[~2016-12-23  4:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-21  7:32 LocateHandle for gEfiShellProtocolGuid is failing in my application GN Keshava
2016-12-21 18:36 ` Carsey, Jaben
2016-12-22  9:35   ` GN Keshava
2016-12-22 10:07     ` GN Keshava
2016-12-22 16:56       ` Carsey, Jaben
2016-12-23  4:06         ` GN Keshava [this message]
2016-12-27 23:28           ` Carsey, Jaben
2016-12-28  4:16             ` GN Keshava
2016-12-28 14:56               ` Carsey, Jaben
2016-12-21 18:59 ` Andrew Fish
2016-12-21 19:13 ` Andrew Fish
2016-12-22  2:00   ` GN Keshava

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABKwMdu7Phf2RhiXRcGCZks8OWr5tq85Zzga8-NvCS1-9EbRNA@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox