1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 LoadPe32Image.h 15 16 Abstract: 17 18 Load PE32 Image Protocol 19 20 --*/ 21 22 #ifndef _LOAD_PE32_IMAGE_H_ 23 #define _LOAD_PE32_IMAGE_H_ 24 25 #define PE32_IMAGE_PROTOCOL_GUID \ 26 {0x5cb5c776,0x60d5,0x45ee,{0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f} } 27 28 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE 0x00 29 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION 0x01 30 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION 0x02 31 32 EFI_FORWARD_DECLARATION (EFI_PE32_IMAGE_PROTOCOL); 33 34 typedef 35 EFI_STATUS 36 (EFIAPI *LOAD_PE_IMAGE) ( 37 IN EFI_PE32_IMAGE_PROTOCOL *This, 38 IN EFI_HANDLE ParentImageHandle, 39 IN EFI_DEVICE_PATH_PROTOCOL *FilePath, 40 IN VOID *SourceBuffer OPTIONAL, 41 IN UINTN SourceSize, 42 IN EFI_PHYSICAL_ADDRESS DstBuffer OPTIONAL, 43 OUT UINTN *NumberOfPages OPTIONAL, 44 OUT EFI_HANDLE *ImageHandle, 45 OUT EFI_PHYSICAL_ADDRESS *EntryPoint OPTIONAL, 46 IN UINT32 Attribute 47 ); 48 49 typedef 50 EFI_STATUS 51 (EFIAPI *UNLOAD_PE_IMAGE) ( 52 IN EFI_PE32_IMAGE_PROTOCOL *This, 53 IN EFI_HANDLE ImageHandle 54 ); 55 56 struct _EFI_PE32_IMAGE_PROTOCOL { 57 LOAD_PE_IMAGE LoadPeImage; 58 UNLOAD_PE_IMAGE UnLoadPeImage; 59 }; 60 61 extern EFI_GUID gEfiLoadPeImageGuid; 62 63 #endif 64 65