4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Platform Driver Override protocol as defined in the UEFI 2.1 specification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Global ID for the Platform Driver Override Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x6b30c738, 0xa391, 0x11d4, {0x9a, 0x3b, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Prototypes for the Platform Driver Override Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieves the image handle of the platform override driver for a controller in the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ControllerHandle The device handle of the controller to check if a driver override
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DriverImageHandle On input, a pointer to the previous driver image handle returned
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by GetDriver(). On output, a pointer to the next driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync image handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The driver override for ControllerHandle was returned in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DriverImageHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND A driver override for ControllerHandle was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The handle specified by ControllerHandle is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER DriverImageHandle is not a handle that was returned on a
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync previous call to GetDriver().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieves the device path of the platform override driver for a controller in the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ControllerHandle The device handle of the controller to check if a driver override
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DriverImagePath On input, a pointer to the previous driver device path returned by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GetDriverPath(). On output, a pointer to the next driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync device path. Passing in a pointer to NULL will return the first
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync driver device path for ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The driver override for ControllerHandle was returned in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DriverImageHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The operation is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND A driver override for ControllerHandle was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The handle specified by ControllerHandle is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER DriverImagePath is not a device path that was returned on a
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync previous call to GetDriverPath().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Used to associate a driver image handle with a device path that was returned on a prior call to the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GetDriverPath() service. This driver image handle will then be available through the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GetDriver() service.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ControllerHandle The device handle of the controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DriverImagePath A pointer to the driver device path that was returned in a prior
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync call to GetDriverPath().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DriverImageHandle The driver image handle that was returned by LoadImage()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync when the driver specified by DriverImagePath was loaded
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync into memory.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The association between DriverImagePath and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DriverImageHandle was established for the controller specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The operation is not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND DriverImagePath is not a device path that was returned on a prior
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync call to GetDriverPath() for the controller specified by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER DriverImagePath is not a valid device path.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER DriverImageHandle is not a valid image handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// This protocol matches one or more drivers to a controller. A platform driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// produces this protocol, and it is installed on a separate handle. This protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// is used by the ConnectController() boot service to select the best driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// for a controller. All of the drivers returned by this protocol have a higher
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// precedence than drivers found from an EFI Bus Specific Driver Override Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// or drivers found from the general UEFI driver Binding search algorithm. If more
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// than one driver is returned by this protocol, then the drivers are returned in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// order from highest precedence to lowest precedence.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED DriverLoaded;