Hello,

Yes.  It is possible to implement a filter driver for any UEFI Protocol for I/O 
services.  The basic algorithm is to implement a driver that follows the UEFI 
Driver Model and produces the Driver Binding Protocol.  The driver type is a 
bus driver because it must to create a new child handle to install protocol 
that provides the filter.  The Start() function opens the parent protocol being 
filtered BY_DRIVER and creates a child handle with a Device Path Protocol and 
the protocol that provide the filter of the opened protocol on the parent 
handle.  The Device Path Protocol is generated by appending a VenHw() device 
path node to the parent handle's device path.  You can just use 
gEfiCallerIdGuid in the VenHw() node.  You also need to install a tag GUID (can 
use gEfiCallerIdGuid again) onto the child handle and your Start() function 
should return EFI_UNSUPPORTED if the tag GUID is present.  This is required so 
your filter driver does not do an infinite recursion of adding the filter on 
top of a filter on top of a filter.

As noted below, if you soft load your filter driver from the shell, then you 
may need to use the "reconnect" command to get your filter driver to get added 
to the I/O driver stacks correctly if the protocol you want to filter is 
already opened BY_DRIVER by another driver.  If your driver is loaded as part 
of the Driver#### options with the reconnect flag set, then the UEFI Boot 
Manager will take care of getting it loaded and connected correctly.

Best regards,

Mike

From: Rafael Machado [mailto:rafaelrodrigues.mach...@gmail.com]
Sent: Tuesday, October 08, 2013 8:51 AM
To: edk2-devel
Subject: Re: [edk2] Doubt about drivers at UEFI

Is it possible to do this in a uefi script (startup.nsh)?

Att.
Rafael R. Machado

2013/10/8 Carsey, Jaben <jaben.car...@intel.com<mailto:jaben.car...@intel.com>>
The hard part is about repeating the process.  You would have to manually do it 
each time based on this method.

-Jaben

From: Rafael Machado 
[mailto:rafaelrodrigues.mach...@gmail.com<mailto:rafaelrodrigues.mach...@gmail.com>]
Sent: Tuesday, October 08, 2013 6:59 AM
To: edk2-devel

Subject: Re: [edk2] Doubt about drivers at UEFI

Jarben
So the idea would be, using the uefi shell, disconnect a driver from a device 
and load a new driver from the usb stick.
Sorry, but I didn't see what is the hard part of loading the driver from the 
usb stick.
Could you please explain me what is the difficult of this ? As far as I know 
I'd just need to load the new driver and run the connect -r from a UEFI shell. 
Right ?

Thanks everyone
Rafael R. Machado




2013/10/7 Carsey, Jaben <jaben.car...@intel.com<mailto:jaben.car...@intel.com>>
You could actually write a driver that would meet the original request.  You'd 
have to disconnect the drive stack partially and then add yours and then 
reconnect the stack.

The adding to the platform via USB seems a bigger challenge since that feature 
may or may not be available.

-Jaben

From: Deric Cole [mailto:deric_c...@phoenix.com<mailto:deric_c...@phoenix.com>]
Sent: Monday, October 07, 2013 2:09 PM

To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: Re: [edk2] Doubt about drivers at UEFI

You could write a driver that replaces the original driver in order to add 
value - but that means you would have to duplicate all of the original 
functionality in your driver.

Deric Cole
Sr. Customer Engineer
Phoenix Technologies Ltd.

From: Igor Sharovar [mailto:igor.sharo...@gmail.com]
Sent: Monday, October 07, 2013 1:43 PM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: Re: [edk2] Doubt about drivers at UEFI

No, it is not possible. There is not a filter driver in UEFI like Windows has.
Igor Sharovar

On Sat, Oct 5, 2013 at 1:05 PM, Rafael Machado 
<rafaelrodrigues.mach...@gmail.com<mailto:rafaelrodrigues.mach...@gmail.com>> 
wrote:
Hi everyone

I've being studied uefi for some time and I'd like to know, if is it possible 
to create something like a windows filter driver at UEFI.
For example, create a keyboard filter driver, that will log everything that was 
typed to a logfile.
I think this because at UDK2010 there are some drivers, and I'd like to know if 
is it possible to change some of these drivers, and load them on a system from 
a USB stick.
Is it possible ?

Thanks everyone
Rafael R. Machado

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/edk2-devel


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/edk2-devel


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to