I think you are on to something, I am using UEFI not the EDK shell. That would 
explain why ShellExecute is crashing.

I'm seeing a compile error though:
Error LNK2001: unresolved external symbol _EfiShellExecute

I tried including various header files and libraries but I'm not sure if the 
below references are correct. 
There are no sample apps that use EfiShellExecute and google came up with 
nothing so I'm at a bit of a loss on how to reference EfiShellExecute into my 
app correctly.


Project H File
#include <Protocol/EfiShell.h>
-----------------
Project INF File
[LibraryClasses]
UefiShellLib
-----------------
MdeModulePkg.dsc
[LibraryClasses]
  UefiShellLib|ShellPkg\Library\UefiShellLib/UefiShellLib.inf



From: [email protected]
To: [email protected]
Date: Fri, 19 Sep 2014 16:30:18 +0000
Subject: Re: [edk2] ShellExecute crashing in NT emulator









It appears you are using the EDK Shell (not the UEFI shell) since you are using 
ShellEnvironment2. Is that your intention?
 
In the UEFI shell, this would be ShellPkg/Include/Protocol/EfiShell.h and the 
corresponding function is:
 
typedef
EFI_STATUS
(EFIAPI *EFI_SHELL_EXECUTE) (
  IN EFI_HANDLE                 *ParentImageHandle,
  IN CHAR16                     *CommandLine OPTIONAL,
  IN CHAR16                     **Environment OPTIONAL,
  OUT EFI_STATUS                *StatusCode OPTIONAL
  );
 
Tim
 


From: J. E. [mailto:[email protected]]


Sent: Thursday, September 18, 2014 10:22 PM

To: [email protected]

Subject: Re: [edk2] ShellExecute crashing in NT emulator


 

Yep thats the first thing I did, search all of UDK for SHELLENV_GET_ENV using 
Agent Ransack which searches binary and unicode as well.

I found nothing except for the EfiShellEnvironment2.h and UefiShellLib.lib 
files.

No idea where SHELLENV_GET_ENV is defined, it doesnt make sense.



If I boot and run the app in the proper EFI Shell, ShellExecute doesn't hang, 
but execution fails. Status is always EFI_SUCCESS

The echo commands in the NSH file do not output text onscreen, and the efi file 
in the NSH doesn't launch.



    Status = ShellExecute(ImageHandle, L"fs1:", TRUE, NULL, NULL);

    Status = ShellExecute(ImageHandle, L"cd fs1:\\TEST", TRUE, NULL, NULL);

    Status = ShellExecute(ImageHandle, L"run.nsh", TRUE, NULL, NULL);



The above commands work fine if I type them in manually in the EFI shell.

ShellExecute just seems broken, I can find the code so I cant debug it. 
Everything compiles ok.

Maybe I should download the latest source instead of using the UDK2014 release, 
or change the compiler to GCC or Intel.




From:
[email protected]

Date: Thu, 18 Sep 2014 18:48:25 -0700

To: [email protected]

Subject: Re: [edk2] ShellExecute crashing in NT emulator





Sent from my iPhone




On Sep 18, 2014, at 6:01 PM, J. E. <[email protected]> wrote:




It is crashing in SHELLENV_EXECUTE but I cant seem to find the c source for 
this function in


UDK\ShellPkg\Include\Protocol\EfiShellEnvironment2.h



typedef

EFI_STATUS

(EFIAPI *SHELLENV_EXECUTE) (

  IN EFI_HANDLE   *ParentImageHandle,

  IN CHAR16       *CommandLine,

  IN BOOLEAN      DebugOutput

  );



Which c file has the actual source code?




 


For protocols look at the global, EFI_GUID. Grep for that global. The producer 
will pass it as an argument to install protocol boot service.


 


Thanks,


 


Andrew Fish


 

 



 




From:
[email protected]

Date: Thu, 18 Sep 2014 16:38:51 -0700

To: [email protected]

Subject: Re: [edk2] ShellExecute crashing in NT emulator






On Sep 18, 2014, at 4:24 PM, J. E. <[email protected]> wrote:

 



I am compiling and running secmain from the command line with no debugger, 
compiler is VS2005.

Perhaps there is a way to dump the exception to file?




 


Not sure as I don’t use VC++. 

 



It happens in Windows 7 64 as well.



I'll see if I can debug the ShellExecute function directly to find out which 
line is crashing out




 


Look at: 
http://tianocore.sourceforge.net/wiki/NT32


 


Thanks,


 


Andrew Fish

 







From:
[email protected]

Date: Thu, 18 Sep 2014 10:25:30 -0700

To: [email protected]

Subject: Re: [edk2] ShellExecute crashing in NT emulator






On Sep 18, 2014, at 6:22 AM, J. E. <[email protected]> wrote:

 



The below code is crashing the emulator, any ideas?




 


Do you get a stack trace and error messages from the crash?


 


Thanks,


 


Andrew Fish

 




Is it a Windows 8 thing? (can't test a Win7 system or via proper EFI shell 
right now)


 


 



EFI_STATUS


EFIAPI


UefiMain (


  IN EFI_HANDLE        ImageHandle,


  IN EFI_SYSTEM_TABLE  *SystemTable


  )


{


    EFI_STATUS Status;



    Status = ShellExecute(ImageHandle, L"startup.nsh", FALSE, NULL, NULL);  
// Crash dxecore.dll


    Status = ShellExecute(ImageHandle, NULL, FALSE, NULL, NULL);
// Crash dxecore.dll


 


}


 


 


UDK2014


Win8.1 64bit


UEFI Mode


 


 


 


------------------------------------------------------------------------------

Want excitement?

Manually upgrade your production database.

When you want reliability, choose Perforce

Perforce version control. Predictably reliable.

http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk_______________________________________________

edk2-devel mailing list

[email protected]

https://lists.sourceforge.net/lists/listinfo/edk2-devel







------------------------------------------------------------------------------ 
Slashdot TV. Video for Nerds. Stuff that Matters.

http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk

_______________________________________________ edk2-devel mailing list 
[email protected] 
https://lists.sourceforge.net/lists/listinfo/edk2-devel


------------------------------------------------------------------------------

Slashdot TV.  Video for Nerds.  Stuff that Matters.

http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk_______________________________________________

edk2-devel mailing list

[email protected]

https://lists.sourceforge.net/lists/listinfo/edk2-devel







------------------------------------------------------------------------------ 
Slashdot TV. Video for Nerds. Stuff that Matters.

http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk

_______________________________________________ edk2-devel mailing list 
[email protected] 
https://lists.sourceforge.net/lists/listinfo/edk2-devel






------------------------------------------------------------------------------

Slashdot TV.  Video for Nerds.  Stuff that Matters.

http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk




_______________________________________________

edk2-devel mailing list

[email protected]

https://lists.sourceforge.net/lists/listinfo/edk2-devel




------------------------------------------------------------------------------ 
Slashdot TV. Video for Nerds. Stuff that Matters.

http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk

_______________________________________________ edk2-devel mailing list 
[email protected] 
https://lists.sourceforge.net/lists/listinfo/edk2-devel






------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel                         
                  
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to