]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/DeferredImageLoad.h
MdePkg: Clean up source files
[mirror_edk2.git] / MdePkg / Include / Protocol / DeferredImageLoad.h
CommitLineData
2832b228 1/** @file\r
2 UEFI 2.2 Deferred Image Load Protocol definition.\r
3\r
9095d37b
LG
4 This protocol returns information about images whose load was denied because of security\r
5 considerations. This information can be used by the Boot Manager or another agent to reevaluate the\r
6 images when the current security profile has been changed, such as when the current user profile\r
2832b228 7 changes. There can be more than one instance of this protocol installed.\r
8\r
9095d37b
LG
9 Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
10 This program and the accompanying materials\r
11 are licensed and made available under the terms and conditions of the BSD License\r
12 which accompanies this distribution. The full text of the license may be found at\r
13 http://opensource.org/licenses/bsd-license.php\r
2832b228 14\r
9095d37b
LG
15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
2832b228 17\r
18**/\r
19\r
20#ifndef __DEFERRED_IMAGE_LOAD_H__\r
21#define __DEFERRED_IMAGE_LOAD_H__\r
22\r
23///\r
24/// Global ID for the Deferred Image Load Protocol\r
25///\r
26#define EFI_DEFERRED_IMAGE_LOAD_PROTOCOL_GUID \\r
27 { \\r
28 0x15853d7c, 0x3ddf, 0x43e0, { 0xa1, 0xcb, 0xeb, 0xf8, 0x5b, 0x8f, 0x87, 0x2c } \\r
29 };\r
30\r
31typedef struct _EFI_DEFERRED_IMAGE_LOAD_PROTOCOL EFI_DEFERRED_IMAGE_LOAD_PROTOCOL;\r
32\r
33/**\r
34 Returns information about a deferred image.\r
35\r
9095d37b
LG
36 This function returns information about a single deferred image. The deferred images are numbered\r
37 consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then\r
38 EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this\r
2832b228 39 function until EFI_NOT_FOUND is returned.\r
9095d37b 40 Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because\r
2832b228 41 of the location of the executable image rather than its actual contents. record handle until\r
9095d37b 42 there are no more, at which point UserInfo will point to NULL.\r
2832b228 43\r
7fedcf9d 44 @param[in] This Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL.\r
45 @param[in] ImageIndex Zero-based index of the deferred index.\r
9095d37b
LG
46 @param[out] ImageDevicePath On return, points to a pointer to the device path of the image.\r
47 The device path should not be freed by the caller.\r
48 @param[out] Image On return, points to the first byte of the image or NULL if the\r
49 image is not available. The image should not be freed by the caller\r
50 unless LoadImage() has been called successfully.\r
7fedcf9d 51 @param[out] ImageSize On return, the size of the image, or 0 if the image is not available.\r
9095d37b
LG
52 @param[out] BootOption On return, points to TRUE if the image was intended as a boot option\r
53 or FALSE if it was not intended as a boot option.\r
54\r
7fedcf9d 55 @retval EFI_SUCCESS Image information returned successfully.\r
56 @retval EFI_NOT_FOUND ImageIndex does not refer to a valid image.\r
9095d37b 57 @retval EFI_INVALID_PARAMETER ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or\r
7fedcf9d 58 BootOption is NULL.\r
2832b228 59**/\r
60typedef\r
61EFI_STATUS\r
62(EFIAPI *EFI_DEFERRED_IMAGE_INFO)(\r
63 IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This,\r
64 IN UINTN ImageIndex,\r
65 OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath,\r
66 OUT VOID **Image,\r
67 OUT UINTN *ImageSize,\r
68 OUT BOOLEAN *BootOption\r
69 );\r
70\r
71///\r
72/// This protocol returns information about a deferred image.\r
73///\r
74struct _EFI_DEFERRED_IMAGE_LOAD_PROTOCOL {\r
75 EFI_DEFERRED_IMAGE_INFO GetImageInfo;\r
76};\r
77\r
78extern EFI_GUID gEfiDeferredImageLoadProtocolGuid;\r
79\r
80#endif\r