Load/Eject?
------------------
        Status = gBS->HandleProtocol(DeviceHandle, &gEfiScsiIoProtocolGuid, 
(VOID **) &ScsiIo);
        if (ScsiIo) {
                Target = &TargetArray[0];
                ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);
                
                
                Cdb[0]  = EFI_SCSI_OP_START_STOP_UNIT;
                Cdb[1]  = (UINT8) (LShiftU64 (Lun, 5) & 
EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK);
                Cdb[1] |= 0x01;
                Cdb[4]  = ATA_CMD_SUBOP_EJECT_DISC;  
                CommandPacket.Timeout = EFI_TIMER_PERIOD_SECONDS (3);
                CommandPacket.Cdb = Cdb;
                CommandPacket.CdbLength = (UINT8) sizeof (Cdb);
    
                Status = ScsiIo->ExecuteScsiCommand (ScsiIo, &CommandPacket, 
NULL);
        }
------------------
As you previously found a DeviceHandle that correspond to your controller.

On 06.09.2013, at 19:17, David F. <[email protected]> wrote:

> but want the actual device name, also at minimum need load/eject and 
> prevent/allow removal support, but really able to send any command to the 
> devices.  Not the controller info...
> 
> 
> On Fri, Sep 6, 2013 at 4:59 AM, Sergey Isakov <[email protected]> wrote:
> May be this part of codes helps you
> ----------------
>   // Scan PCI handles 
>   Status = gBS->LocateHandleBuffer (
>                                     ByProtocol,
>                                     &gEfiPciIoProtocolGuid,
>                                     NULL,
>                                     &HandleCount,
>                                     &HandleArray
>                                     );
>   if (!EFI_ERROR (Status)) {
>     for (Index = 0; Index < HandleCount; Index++) {
>       Status = gBS->HandleProtocol (
>                                     HandleArray[Index],
>                                     &gEfiPciIoProtocolGuid,
>                                     (VOID **)&PciIo
>                                     );
>       if (!EFI_ERROR (Status)) {
>         // Read PCI BUS 
>         Status = PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, 
> &Function);
>         Status = PciIo->Pci.Read (
>                                   PciIo,
>                                   EfiPciIoWidthUint32,
>                                   0,
>                                   sizeof (Pci) / sizeof (UINT32),
>                                   &Pci
>                                   );
>         Print(L"PCI (%02x|%02x:%02x.%02x) : %04x %04x class=%02x%02x%02x\n",
>             Segment, Bus, Device, Function,
>             Pci.Hdr.VendorId, Pci.Hdr.DeviceId,
>             Pci.Hdr.ClassCode[2], Pci.Hdr.ClassCode[1], Pci.Hdr.ClassCode[0]);
> 
> ----------------
> The same is possible for ExtScsiPassTru protocol
> 
> Regards,
> Sergey
> 
> On 06.09.2013, at 9:40, David F. <[email protected]> wrote:
> 
>> Yes, but to do it right you really need the SCSI Pass Through Interface to 
>> talk directly with the device as you may need to send setup or blank 
>> commands, etc...  Also for ATA devices, be nice for the various commands 
>> dealing with their command set.
>> 
>> 
>> 
>> 
>> 
>> On Thu, Sep 5, 2013 at 7:42 PM, Sergey Isakov <[email protected]> wrote:
>> Hi David,
>> I am not understanding what are you going to do. How did you propose to burn 
>> DVD in UEFI mode? Do you have such UEFI application to burn DVD?
>> Sergey.
>> 
>> On 06.09.2013, at 6:22, David F. <[email protected]> wrote:
>> 
>> > Well, without any passthru support, I'm not sure how I'm, as an 
>> > application, supposed to get the device names of the various hard drives 
>> > and dvd drives in the system? Also, how you would be able to burn a CD/DVD 
>> > and send the various commands to setup for the burn.   I see the Visual 
>> > BIOS on the system has all the name, so there must be a way without 
>> > essentially turning off all UEFI services and writing a raw DOS like 
>> > program to directly program the SATA/PATA controllers like the old days?  
>> > Strange?
>> >
>> > Does anyone have the answer??
>> >
>> > TIA!!
>> >
>> > ------------------------------------------------------------------------------
>> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> > Discover the easy way to master current and previous Microsoft technologies
>> > and advance your career. Get an incredible 1,500+ hours of step-by-step
>> > tutorial videos with LearnDevNow. Subscribe today and save!
>> > http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk_______________________________________________
>> > edk2-devel mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk_______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to