ReactOS  0.4.13-dev-551-gf37fb1f
bl.h File Reference
#include <stdlib.h>
#include <stdio.h>
#include <wchar.h>
#include <ntifs.h>
#include <ntndk.h>
#include <ntintsafe.h>
#include <ntimage.h>
#include <drivers/acpi/acpi.h>
#include <Uefi.h>
#include <DevicePath.h>
#include <LoadedImage.h>
#include <GraphicsOutput.h>
#include <UgaDraw.h>
#include <BlockIo.h>
#include <Acpi.h>
#include <GlobalVariable.h>
#include <cmlib.h>
Include dependency graph for bl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _BL_LIBRARY_PARAMETERS
 
struct  _BOOT_APPLICATION_PARAMETER_BLOCK
 
struct  _BL_MEMORY_DATA
 
struct  _BL_FIRMWARE_DESCRIPTOR
 
struct  _BL_RETURN_ARGUMENTS
 
struct  _BL_MEMORY_DESCRIPTOR
 
struct  _BL_BCD_OPTION
 
struct  _BL_APPLICATION_ENTRY
 
struct  _BL_LOADED_APPLICATION_ENTRY
 
struct  _BL_MENU_STATUS
 
struct  _BL_HARDDISK_DEVICE
 
struct  _BL_LOCAL_DEVICE
 
struct  _BL_DEVICE_DESCRIPTOR
 
struct  _BL_FILE_PATH_DESCRIPTOR
 
struct  _BL_WINDOWS_LOAD_OPTIONS
 
struct  _BL_ARCH_CONTEXT
 
struct  _BL_MEMORY_DESCRIPTOR_LIST
 
struct  _BL_ADDRESS_RANGE
 
struct  _BL_FILE_INFORMATION
 
struct  _BL_FILE_CALLBACKS
 
struct  _BL_FILE_ENTRY
 
struct  _BL_FILE_SYSTEM_ENTRY
 
struct  _BL_FILE_SYSTEM_REGISTRATION_TABLE
 
struct  _BL_DISPLAY_STATE
 
struct  _BL_DISPLAY_MODE
 
struct  _BL_TEXT_CONSOLE_VTABLE
 
struct  _BL_GRAPHICS_CONSOLE_VTABLE
 
struct  _BL_TEXT_CONSOLE
 
struct  _BL_INPUT_CONSOLE_VTABLE
 
struct  _BL_INPUT_CONSOLE
 
struct  _BL_GRAPHICS_CONSOLE
 
struct  _BL_REMOTE_CONSOLE
 
struct  _BL_HASH_TABLE
 
struct  _BL_HASH_ENTRY
 
struct  _BL_HASH_VALUE
 
struct  _BL_HASH_NODE
 
struct  _BL_BLOCK_DEVICE_INFORMATION
 
struct  _BL_DEVICE_INFORMATION
 
struct  _BL_BLOCK_DEVICE
 
struct  _BL_PROTOCOL_HANDLE
 
struct  _BL_DEVICE_CALLBACKS
 
struct  _BL_DEVICE_ENTRY
 
struct  _BL_IMG_FILE
 
struct  _BL_IMAGE_APPLICATION_ENTRY
 
struct  _BL_BUFFER_DESCRIPTOR
 
struct  _BL_DEFERRED_FONT_FILE
 
struct  _BMP_HEADER
 
struct  _DIB_HEADER
 
struct  _BITMAP
 
struct  _COORD
 
struct  _BL_PD_DATA_BLOB
 

Macros

#define __FREELDR_H
 
#define BL_APPLICATION_FLAG_CONVERTED_FROM_EFI   0x01
 
#define BL_APP_ENTRY_SIGNATURE   "BTAPENT"
 
#define BOOT_APPLICATION_SIGNATURE_1   'TOOB'
 
#define BOOT_APPLICATION_SIGNATURE_2   ' PPA'
 
#define BOOT_MEMORY_TRANSLATION_TYPE_PHYSICAL   0
 
#define BOOT_MEMORY_TRANSLATION_TYPE_VIRTUAL   1
 
#define BOOT_APPLICATION_VERSION   2
 
#define BL_MEMORY_DATA_VERSION   1
 
#define BL_RETURN_ARGUMENTS_VERSION   1
 
#define BL_FIRMWARE_DESCRIPTOR_VERSION   2
 
#define BL_RETURN_ARGUMENTS_NO_PAE_FLAG   0x40
 
#define BL_APPLICATION_ENTRY_FLAG_NO_GUID   0x01
 
#define BL_APPLICATION_ENTRY_BCD_OPTIONS_INTERNAL   0x02
 
#define BL_APPLICATION_ENTRY_WINLOAD   0x04
 
#define BL_APPLICATION_ENTRY_STARTUP   0x08
 
#define BL_APPLICATION_ENTRY_REBOOT_ON_ERROR   0x20
 
#define BL_APPLICATION_ENTRY_NTLDR   0x40
 
#define BL_APPLICATION_ENTRY_BCD_OPTIONS_EXTERNAL   0x80
 
#define BL_APPLICATION_ENTRY_WINRESUME   0x100
 
#define BL_APPLICATION_ENTRY_SETUPLDR   0x200
 
#define BL_APPLICATION_ENTRY_BOOTSECTOR   0x400
 
#define BL_APPLICATION_ENTRY_BOOTMGR   0x1000
 
#define BL_APPLICATION_ENTRY_DISPLAY_ORDER   0x800000
 
#define BL_APPLICATION_ENTRY_FIXED_SEQUENCE   0x20000000
 
#define BL_APPLICATION_ENTRY_RECOVERY   0x40000000
 
#define BL_CONTEXT_PAGING_ON   1
 
#define BL_CONTEXT_INTERRUPTS_ON   2
 
#define BL_MM_FLAG_USE_FIRMWARE_FOR_MEMORY_MAP_BUFFERS   0x01
 
#define BL_MM_FLAG_REQUEST_COALESCING   0x02
 
#define BL_MM_ADD_DESCRIPTOR_COALESCE_FLAG   0x01
 
#define BL_MM_ADD_DESCRIPTOR_TRUNCATE_FLAG   0x02
 
#define BL_MM_ADD_DESCRIPTOR_NEVER_COALESCE_FLAG   0x10
 
#define BL_MM_ADD_DESCRIPTOR_NEVER_TRUNCATE_FLAG   0x20
 
#define BL_MM_ADD_DESCRIPTOR_ALLOCATE_FLAG   0x1000
 
#define BL_MM_ADD_DESCRIPTOR_UPDATE_LIST_POINTER_FLAG   0x2000
 
#define BL_MM_INCLUDE_MAPPED_ALLOCATED   0x01
 
#define BL_MM_INCLUDE_MAPPED_UNALLOCATED   0x02
 
#define BL_MM_INCLUDE_UNMAPPED_ALLOCATED   0x04
 
#define BL_MM_INCLUDE_UNMAPPED_UNALLOCATED   0x08
 
#define BL_MM_INCLUDE_RESERVED_ALLOCATED   0x10
 
#define BL_MM_INCLUDE_BAD_MEMORY   0x20
 
#define BL_MM_INCLUDE_FIRMWARE_MEMORY   0x40
 
#define BL_MM_INCLUDE_TRUNCATED_MEMORY   0x80
 
#define BL_MM_INCLUDE_PERSISTENT_MEMORY   0x100
 
#define BL_MM_INCLUDE_FIRMWARE_MEMORY_2   0x200
 
#define BL_MM_INCLUDE_NO_FIRMWARE_MEMORY
 
#define BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY
 
#define BL_MM_REQUEST_DEFAULT_TYPE   1
 
#define BL_MM_REQUEST_TOP_DOWN_TYPE   2
 
#define BL_MM_REMOVE_PHYSICAL_REGION_FLAG   0x40000000
 
#define BL_MM_REMOVE_VIRTUAL_REGION_FLAG   0x80000000
 
#define BL_LIBRARY_FLAG_NO_DISPLAY   0x01
 
#define BL_LIBRARY_FLAG_REINITIALIZE   0x02
 
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL   0x04
 
#define BL_LIBRARY_FLAG_ZERO_HEAP_ALLOCATIONS_ON_FREE   0x10
 
#define BL_LIBRARY_FLAG_INITIALIZATION_COMPLETED   0x20
 
#define BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE   0x800
 
#define BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG   0x01
 
#define BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG   0x02
 
#define BL_HT_VALUE_IS_INLINE   0x01
 
#define BL_FS_REGISTER_AT_HEAD_FLAG   1
 
#define BL_BLOCK_DEVICE_REMOVABLE_FLAG   0x01
 
#define BL_BLOCK_DEVICE_PRESENT_FLAG   0x02
 
#define BL_BLOCK_DEVICE_VIRTUAL_FLAG   0x04
 
#define BL_MEMORY_CLASS_SHIFT   28
 
#define BL_FILE_READ_ACCESS   0x01
 
#define BL_FILE_WRITE_ACCESS   0x02
 
#define BL_DIRECTORY_ACCESS   0x04
 
#define BL_UNKNOWN_ACCESS   0x10
 
#define BL_DEVICE_READ_ACCESS   0x01
 
#define BL_DEVICE_WRITE_ACCESS   0x02
 
#define BL_DEVICE_ENTRY_OPENED   0x01
 
#define BL_DEVICE_ENTRY_READ_ACCESS   0x02
 
#define BL_DEVICE_ENTRY_WRITE_ACCESS   0x04
 
#define BL_FILE_ENTRY_OPENED   0x01
 
#define BL_FILE_ENTRY_READ_ACCESS   0x02
 
#define BL_FILE_ENTRY_WRITE_ACCESS   0x04
 
#define BL_FILE_ENTRY_UNKNOWN_ACCESS   0x10
 
#define BL_FILE_ENTRY_DIRECTORY   0x10000
 
#define BL_ETFS_FILE_ENTRY_DIRECTORY   0x01
 
#define BL_IMG_VALID_FILE   0x01
 
#define BL_IMG_MEMORY_FILE   0x02
 
#define BL_IMG_REMOTE_FILE   0x04
 
#define BL_LOAD_IMG_VIRTUAL_BUFFER   0x01
 
#define BL_LOAD_IMG_EXISTING_BUFFER   0x04
 
#define BL_LOAD_IMG_UNKNOWN_BUFFER_FLAG   0x08
 
#define BL_LOAD_IMG_COMPUTE_SIGNATURE   0x10
 
#define BL_LOAD_IMG_COMPUTE_HASH   0x40000
 
#define BL_LOAD_PE_IMG_VIRTUAL_BUFFER   BL_LOAD_IMG_VIRTUAL_BUFFER
 
#define BL_LOAD_PE_IMG_CHECK_MACHINE   0x02
 
#define BL_LOAD_PE_IMG_EXISTING_BUFFER   BL_LOAD_IMG_EXISTING_BUFFER
 
#define BL_LOAD_PE_IMG_COMPUTE_HASH   0x10
 
#define BL_LOAD_PE_IMG_CHECK_SUBSYSTEM   0x80
 
#define BL_LOAD_PE_IMG_SKIP_RELOCATIONS   0x100
 
#define BL_LOAD_PE_IMG_CHECK_FORCED_INTEGRITY   0x200
 
#define BL_LOAD_PE_IMG_IGNORE_CHECKSUM_MISMATCH   0x10000
 
#define BL_LOAD_PE_IMG_VALIDATE_ORIGINAL_FILENAME   0x400000
 
#define BL_UTL_CHECKSUM_COMPLEMENT   0x10000
 
#define BL_UTL_CHECKSUM_ROTATE   0x20000
 
#define BL_UTL_CHECKSUM_NEGATE   0x40000
 
#define BL_UTL_CHECKSUM_UCHAR_BUFFER   0x01
 
#define BL_UTL_CHECKSUM_USHORT_BUFFER   0x02
 

Typedefs

typedef enum _BL_COLOR BL_COLOR
 
typedef enum _BL_COLORPBL_COLOR
 
typedef enum _BL_MENU_POLICY BL_MENU_POLICY
 
typedef enum _BL_MEMORY_DESCRIPTOR_TYPE BL_MEMORY_DESCRIPTOR_TYPE
 
typedef enum _BL_TRANSLATION_TYPE BL_TRANSLATION_TYPE
 
typedef enum _BL_ARCH_MODE BL_ARCH_MODE
 
typedef enum _BL_DEVICE_TYPE BL_DEVICE_TYPE
 
typedef enum _BL_LOCAL_DEVICE_TYPE BL_LOCAL_DEVICE_TYPE
 
typedef enum _BL_PARTITION_TYPE BL_PARTITION_TYPE
 
typedef enum _BL_PATH_TYPE BL_PATH_TYPE
 
typedef enum _BL_MEMORY_CLASS BL_MEMORY_CLASS
 
typedef enum _BL_MEMORY_TYPE BL_MEMORY_TYPE
 
typedef enum _BL_MEMORY_ATTR BL_MEMORY_ATTR
 
typedef NTSTATUS(* PBL_FILE_OPEN) (_In_ struct _BL_FILE_ENTRY *Directory, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ struct _BL_FILE_ENTRY **FileEntry)
 
typedef NTSTATUS(* PBL_FILE_CLOSE) (_In_ struct _BL_FILE_ENTRY *FileEntry)
 
typedef NTSTATUS(* PBL_FILE_READ) (_In_ struct _BL_FILE_ENTRY *FileEntry, _In_ PVOID Buffer, _In_ ULONG Size, _Out_opt_ PULONG BytesRead)
 
typedef NTSTATUS(* PBL_FILE_WRITE) (VOID)
 
typedef NTSTATUS(* PBL_FILE_GET_NEXT) (VOID)
 
typedef NTSTATUS(* PBL_FILE_GET_INFO) (_In_ struct _BL_FILE_ENTRY *FileEntry, _Out_ struct _BL_FILE_INFORMATION *FileInfo)
 
typedef NTSTATUS(* PBL_FILE_SET_INFO) (_In_ struct _BL_FILE_ENTRY *FileEntry, _In_ struct _BL_FILE_INFORMATION *FileInfo)
 
typedef NTSTATUS(* PBL_FS_INIT_CALLBACK) (VOID)
 
typedef NTSTATUS(* PBL_FS_DESTROY_CALLBACK) (VOID)
 
typedef NTSTATUS(* PBL_FS_MOUNT_CALLBACK) (_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ struct _BL_FILE_ENTRY **FileEntry)
 
typedef NTSTATUS(* PBL_FS_PURGE_CALLBACK) (VOID)
 
typedef NTSTATUS(* PBL_FILE_DESTROY_CALLBACK) (_In_ PVOID Entry)
 
typedef VOID(* PCONSOLE_DESTRUCT) (_In_ struct _BL_TEXT_CONSOLE *Console)
 
typedef NTSTATUS(* PCONSOLE_REINITIALIZE) (_In_ struct _BL_TEXT_CONSOLE *Console)
 
typedef NTSTATUS(* PCONSOLE_GET_TEXT_STATE) (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ struct _BL_DISPLAY_STATE *TextState)
 
typedef NTSTATUS(* PCONSOLE_SET_TEXT_STATE) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG Flags, _In_ struct _BL_DISPLAY_STATE *TextState)
 
typedef NTSTATUS(* PCONSOLE_GET_TEXT_RESOLUTION) (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PULONG TextResolution)
 
typedef NTSTATUS(* PCONSOLE_SET_TEXT_RESOLUTION) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG NewTextResolution, _Out_ PULONG OldTextResolution)
 
typedef NTSTATUS(* PCONSOLE_CLEAR_TEXT) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ BOOLEAN LineOnly)
 
typedef BOOLEAN(* PCONSOLE_IS_ENABLED) (_In_ struct _BL_GRAPHICS_CONSOLE *Console)
 
typedef NTSTATUS(* PCONSOLE_GET_GRAPHICAL_RESOLUTION) (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _Out_ struct _BL_DISPLAY_MODE *DisplayMode)
 
typedef NTSTATUS(* PCONSOLE_SET_GRAPHICAL_RESOLUTION) (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ struct _BL_DISPLAY_MODE DisplayMode)
 
typedef NTSTATUS(* PCONSOLE_ENABLE) (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ BOOLEAN Enable)
 
typedef NTSTATUS(* PCONSOLE_WRITE_TEXT) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ PCHAR Text, _In_ ULONG Attribute)
 
typedef BOOLEAN(* PBL_TBL_LOOKUP_ROUTINE) (_In_ PVOID Entry, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
 
typedef NTSTATUS(* PBL_TBL_MAP_ROUTINE) (_In_ PVOID Entry, _In_ ULONG EntryIndex)
 
typedef NTSTATUS(* PBL_TBL_SET_ROUTINE) (_In_ PVOID Entry)
 
typedef NTSTATUS(* PBL_IO_DESTROY_ROUTINE) (VOID)
 
typedef BOOLEAN(* PBL_HASH_TABLE_COMPARE_FUNCTION) (_In_ struct _BL_HASH_ENTRY *Entry1, _In_ struct _BL_HASH_ENTRY *Entry2)
 
typedef ULONG(* PBL_HASH_TABLE_HASH_FUNCTION) (_In_ struct _BL_HASH_ENTRY *Entry, _In_ ULONG TableSize)
 
typedef NTSTATUS(* PBL_DEVICE_ENUMERATE_DEVICE_CLASS) (VOID)
 
typedef NTSTATUS(* PBL_DEVICE_OPEN) (_In_ struct _BL_DEVICE_DESCRIPTOR *Device, _In_ struct _BL_DEVICE_ENTRY *DeviceEntry)
 
typedef NTSTATUS(* PBL_DEVICE_CLOSE) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry)
 
typedef NTSTATUS(* PBL_DEVICE_READ) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ PVOID Buffer, _In_ ULONG Size, _Out_ PULONG BytesRead)
 
typedef NTSTATUS(* PBL_DEVICE_WRITE) (VOID)
 
typedef NTSTATUS(* PBL_DEVICE_GET_INFORMATION) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _Out_ struct _BL_DEVICE_INFORMATION *DeviceInformation)
 
typedef NTSTATUS(* PBL_DEVICE_SET_INFORMATION) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ struct _BL_DEVICE_INFORMATION *DeviceInformation)
 
typedef NTSTATUS(* PBL_DEVICE_RESET) (VOID)
 
typedef NTSTATUS(* PBL_DEVICE_FLUSH) (VOID)
 
typedef NTSTATUS(* PBL_DEVICE_CREATE) (VOID)
 
typedef VOID(* PBL_MM_FLUSH_TLB) (VOID)
 
typedef VOID(* PBL_MM_RELOCATE_SELF_MAP) (VOID)
 
typedef NTSTATUS(* PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE) (_In_ PVOID DestinationAddress, _In_ PVOID SourceAddress, _In_ ULONGLONG Size)
 
typedef NTSTATUS(* PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE) (_In_ PVOID DestinationAddress, _In_ ULONGLONG Size)
 
typedef VOID(* PBL_MM_DESTROY_SELF_MAP) (VOID)
 
typedef VOID(* PBL_MM_FLUSH_TLB_ENTRY) (_In_ PVOID VirtualAddress)
 
typedef NTSTATUS(* PBL_MM_UNMAP_VIRTUAL_ADDRESS) (_In_ PVOID VirtualAddress, _In_ ULONG Size)
 
typedef NTSTATUS(* PBL_MM_REMAP_VIRTUAL_ADDRESS) (_In_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)
 
typedef NTSTATUS(* PBL_MM_MAP_PHYSICAL_ADDRESS) (_In_ PHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)
 
typedef BOOLEAN(* PBL_MM_TRANSLATE_VIRTUAL_ADDRESS) (_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CacheAttributes)
 
typedef NTSTATUS(* PBL_STATUS_ERROR_HANDLER) (_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
 
typedef struct _BL_LIBRARY_PARAMETERS BL_LIBRARY_PARAMETERS
 
typedef struct _BL_LIBRARY_PARAMETERSPBL_LIBRARY_PARAMETERS
 
typedef struct _BOOT_APPLICATION_PARAMETER_BLOCK BOOT_APPLICATION_PARAMETER_BLOCK
 
typedef struct _BOOT_APPLICATION_PARAMETER_BLOCKPBOOT_APPLICATION_PARAMETER_BLOCK
 
typedef struct _BL_MEMORY_DATA BL_MEMORY_DATA
 
typedef struct _BL_MEMORY_DATAPBL_MEMORY_DATA
 
typedef struct _BL_FIRMWARE_DESCRIPTOR BL_FIRMWARE_DESCRIPTOR
 
typedef struct _BL_FIRMWARE_DESCRIPTORPBL_FIRMWARE_DESCRIPTOR
 
typedef struct _BL_RETURN_ARGUMENTS BL_RETURN_ARGUMENTS
 
typedef struct _BL_RETURN_ARGUMENTSPBL_RETURN_ARGUMENTS
 
typedef struct _BL_MEMORY_DESCRIPTOR BL_MEMORY_DESCRIPTOR
 
typedef struct _BL_MEMORY_DESCRIPTORPBL_MEMORY_DESCRIPTOR
 
typedef struct _BL_BCD_OPTION BL_BCD_OPTION
 
typedef struct _BL_BCD_OPTIONPBL_BCD_OPTION
 
typedef struct _BL_APPLICATION_ENTRY BL_APPLICATION_ENTRY
 
typedef struct _BL_APPLICATION_ENTRYPBL_APPLICATION_ENTRY
 
typedef struct _BL_LOADED_APPLICATION_ENTRY BL_LOADED_APPLICATION_ENTRY
 
typedef struct _BL_LOADED_APPLICATION_ENTRYPBL_LOADED_APPLICATION_ENTRY
 
typedef struct _BL_MENU_STATUS BL_MENU_STATUS
 
typedef struct _BL_MENU_STATUSPL_MENU_STATUS
 
typedef enum _BL_BOOT_ERROR_STATUS BL_BOOT_ERROR_STATUS
 
typedef struct _BL_HARDDISK_DEVICE BL_HARDDISK_DEVICE
 
typedef struct _BL_LOCAL_DEVICE BL_LOCAL_DEVICE
 
typedef struct _BL_LOCAL_DEVICEPBL_LOCAL_DEVICE
 
typedef struct _BL_DEVICE_DESCRIPTOR BL_DEVICE_DESCRIPTOR
 
typedef struct _BL_DEVICE_DESCRIPTORPBL_DEVICE_DESCRIPTOR
 
typedef struct _BL_FILE_PATH_DESCRIPTOR BL_FILE_PATH_DESCRIPTOR
 
typedef struct _BL_FILE_PATH_DESCRIPTORPBL_FILE_PATH_DESCRIPTOR
 
typedef struct _BL_WINDOWS_LOAD_OPTIONS BL_WINDOWS_LOAD_OPTIONS
 
typedef struct _BL_WINDOWS_LOAD_OPTIONSPBL_WINDOWS_LOAD_OPTIONS
 
typedef struct _BL_ARCH_CONTEXT BL_ARCH_CONTEXT
 
typedef struct _BL_ARCH_CONTEXTPBL_ARCH_CONTEXT
 
typedef struct _BL_MEMORY_DESCRIPTOR_LIST BL_MEMORY_DESCRIPTOR_LIST
 
typedef struct _BL_MEMORY_DESCRIPTOR_LISTPBL_MEMORY_DESCRIPTOR_LIST
 
typedef struct _BL_ADDRESS_RANGE BL_ADDRESS_RANGE
 
typedef struct _BL_ADDRESS_RANGEPBL_ADDRESS_RANGE
 
typedef struct _BL_FILE_INFORMATION BL_FILE_INFORMATION
 
typedef struct _BL_FILE_INFORMATIONPBL_FILE_INFORMATION
 
typedef struct _BL_FILE_CALLBACKS BL_FILE_CALLBACKS
 
typedef struct _BL_FILE_CALLBACKSPBL_FILE_CALLBACKS
 
typedef struct _BL_FILE_ENTRY BL_FILE_ENTRY
 
typedef struct _BL_FILE_ENTRYPBL_FILE_ENTRY
 
typedef struct _BL_FILE_SYSTEM_ENTRY BL_FILE_SYSTEM_ENTRY
 
typedef struct _BL_FILE_SYSTEM_ENTRYPBL_FILE_SYSTEM_ENTRY
 
typedef struct _BL_FILE_SYSTEM_REGISTRATION_TABLE BL_FILE_SYSTEM_REGISTRATION_TABLE
 
typedef struct _BL_DISPLAY_STATE BL_DISPLAY_STATE
 
typedef struct _BL_DISPLAY_STATEPBL_DISPLAY_STATE
 
typedef struct _BL_DISPLAY_MODE BL_DISPLAY_MODE
 
typedef struct _BL_DISPLAY_MODEPBL_DISPLAY_MODE
 
typedef struct _BL_TEXT_CONSOLE_VTABLE BL_TEXT_CONSOLE_VTABLE
 
typedef struct _BL_TEXT_CONSOLE_VTABLEPBL_TEXT_CONSOLE_VTABLE
 
typedef struct _BL_GRAPHICS_CONSOLE_VTABLE BL_GRAPHICS_CONSOLE_VTABLE
 
typedef struct _BL_GRAPHICS_CONSOLE_VTABLEPBL_GRAPHICS_CONSOLE_VTABLE
 
typedef struct _BL_TEXT_CONSOLE BL_TEXT_CONSOLE
 
typedef struct _BL_TEXT_CONSOLEPBL_TEXT_CONSOLE
 
typedef struct _BL_INPUT_CONSOLE_VTABLE BL_INPUT_CONSOLE_VTABLE
 
typedef struct _BL_INPUT_CONSOLE_VTABLEPBL_INPUT_CONSOLE_VTABLE
 
typedef struct _BL_INPUT_CONSOLE BL_INPUT_CONSOLE
 
typedef struct _BL_INPUT_CONSOLEPBL_INPUT_CONSOLE
 
typedef enum _BL_GRAPHICS_CONSOLE_TYPE BL_GRAPHICS_CONSOLE_TYPE
 
typedef struct _BL_GRAPHICS_CONSOLE BL_GRAPHICS_CONSOLE
 
typedef struct _BL_GRAPHICS_CONSOLEPBL_GRAPHICS_CONSOLE
 
typedef struct _BL_REMOTE_CONSOLE BL_REMOTE_CONSOLE
 
typedef struct _BL_REMOTE_CONSOLEPBL_REMOTE_CONSOLE
 
typedef struct _BL_HASH_TABLE BL_HASH_TABLE
 
typedef struct _BL_HASH_TABLEPBL_HASH_TABLE
 
typedef struct _BL_HASH_ENTRY BL_HASH_ENTRY
 
typedef struct _BL_HASH_ENTRYPBL_HASH_ENTRY
 
typedef struct _BL_HASH_VALUE BL_HASH_VALUE
 
typedef struct _BL_HASH_VALUEPBL_HASH_VALUE
 
typedef struct _BL_HASH_NODE BL_HASH_NODE
 
typedef struct _BL_HASH_NODEPBL_HASH_NODE
 
typedef struct _BL_BLOCK_DEVICE_INFORMATION BL_BLOCK_DEVICE_INFORMATION
 
typedef struct _BL_BLOCK_DEVICE_INFORMATIONPBL_BLOCK_DEVICE_INFORMATION
 
typedef struct _BL_DEVICE_INFORMATION BL_DEVICE_INFORMATION
 
typedef struct _BL_DEVICE_INFORMATIONPBL_DEVICE_INFORMATION
 
typedef struct _BL_BLOCK_DEVICE BL_BLOCK_DEVICE
 
typedef struct _BL_BLOCK_DEVICEPBL_BLOCK_DEVICE
 
typedef struct _BL_PROTOCOL_HANDLE BL_PROTOCOL_HANDLE
 
typedef struct _BL_PROTOCOL_HANDLEPBL_PROTOCOL_HANDLE
 
typedef struct _BL_DEVICE_CALLBACKS BL_DEVICE_CALLBACKS
 
typedef struct _BL_DEVICE_CALLBACKSPBL_DEVICE_CALLBACKS
 
typedef struct _BL_DEVICE_ENTRY BL_DEVICE_ENTRY
 
typedef struct _BL_DEVICE_ENTRYPBL_DEVICE_ENTRY
 
typedef struct _BL_IMG_FILE BL_IMG_FILE
 
typedef struct _BL_IMG_FILEPBL_IMG_FILE
 
typedef struct _BL_IMAGE_APPLICATION_ENTRY BL_IMAGE_APPLICATION_ENTRY
 
typedef struct _BL_IMAGE_APPLICATION_ENTRYPBL_IMAGE_APPLICATION_ENTRY
 
typedef struct _BL_BUFFER_DESCRIPTOR BL_BUFFER_DESCRIPTOR
 
typedef struct _BL_BUFFER_DESCRIPTORPBL_BUFFER_DESCRIPTOR
 
typedef struct _BL_DEFERRED_FONT_FILE BL_DEFERRED_FONT_FILE
 
typedef struct _BL_DEFERRED_FONT_FILEPBL_DEFERRED_FONT_FILE
 
typedef struct _BMP_HEADER BMP_HEADER
 
typedef struct _BMP_HEADERPBMP_HEADER
 
typedef struct _DIB_HEADER DIB_HEADER
 
typedef struct _DIB_HEADERPDIB_HEADER
 
typedef struct _BITMAP BITMAP
 
typedef struct _BITMAPPBITMAP
 
typedef struct _COORD COORD
 
typedef struct _COORDPCOORD
 
typedef struct _BL_PD_DATA_BLOB BL_PD_DATA_BLOB
 
typedef struct _BL_PD_DATA_BLOBPBL_PD_DATA_BLOB
 

Enumerations

enum  _BL_COLOR {
  Black, Blue, Green, Cyan,
  Red, Magenta, Brown, LtGray,
  Gray, LtBlue, LtGreen, LtCyan,
  LtRed, LtMagenta, Yellow, White
}
 
enum  _BL_MENU_POLICY { MenuPolicyLegacy = 0, MenuPolicyStandard = 1 }
 
enum  _BL_MEMORY_DESCRIPTOR_TYPE { BlMdPhysical, BlMdVirtual, BlMdTracker }
 
enum  _BL_TRANSLATION_TYPE { BlNone, BlVirtual, BlPae, BlMax }
 
enum  _BL_ARCH_MODE { BlProtectedMode, BlRealMode }
 
enum  _BL_DEVICE_TYPE {
  DiskDevice = 0, LegacyPartitionDevice = 2, SerialDevice = 3, UdpDevice = 4,
  BootDevice = 5, PartitionDevice = 6, LocateDevice = 8
}
 
enum  _BL_LOCAL_DEVICE_TYPE {
  LocalDevice = 0, FloppyDevice = 1, CdRomDevice = 2, RamDiskDevice = 3,
  FileDevice = 5, VirtualDiskDevice = 6
}
 
enum  _BL_PARTITION_TYPE { GptPartition, MbrPartition, RawPartition }
 
enum  _BL_PATH_TYPE { InternalPath = 3, EfiPath = 4 }
 
enum  _BL_MEMORY_CLASS { BlLoaderClass = 0xD, BlApplicationClass, BlSystemClass }
 
enum  _BL_MEMORY_TYPE {
  BlLoaderMemory = 0xD0000002, BlLoaderDeviceMemory = 0xD0000004, BlLoaderHeap = 0xD0000005, BlLoaderPageDirectory = 0xD0000006,
  BlLoaderReferencePage = 0xD0000007, BlLoaderRamDisk = 0xD0000008, BlLoaderArchData = 0xD0000009, BlLoaderData = 0xD000000A,
  BlLoaderRegistry = 0xD000000B, BlLoaderBlockMemory = 0xD000000C, BlLoaderSelfMap = 0xD000000F, BlApplicationReserved = 0xE0000001,
  BlApplicationData = 0xE0000004, BlConventionalMemory = 0xF0000001, BlUnusableMemory = 0xF0000002, BlReservedMemory = 0xF0000003,
  BlEfiBootMemory = 0xF0000004, BlConventionalZeroedMemory = 0xF000005, BlEfiRuntimeCodeMemory = 0xF0000006, BlAcpiReclaimMemory = 0xF0000008,
  BlAcpiNvsMemory = 0xF0000009, BlDeviceIoMemory = 0xF000000A, BlDevicePortMemory = 0xF000000B, BlPalMemory = 0xF000000C,
  BlEfiRuntimeDataMemory = 0xF000000E
}
 
enum  _BL_MEMORY_ATTR {
  BlMemoryUncached = 0x00000001, BlMemoryWriteCombined = 0x00000002, BlMemoryWriteThrough = 0x00000004, BlMemoryWriteBack = 0x00000008,
  BlMemoryUncachedExported = 0x00000010, BlMemoryValidCacheAttributes = BlMemoryUncached | BlMemoryWriteCombined | BlMemoryWriteThrough | BlMemoryWriteBack | BlMemoryUncachedExported, BlMemoryValidCacheAttributeMask = 0x000000FF, BlMemoryWriteProtected = 0x00000100,
  BlMemoryReadProtected = 0x00000200, BlMemoryExecuteProtected = 0x00000400, BlMemoryValidProtectionAttributes = BlMemoryWriteProtected | BlMemoryReadProtected | BlMemoryExecuteProtected, BlMemoryValidProtectionAttributeMask = 0x0000FF00,
  BlMemoryLargePages = 0x00010000, BlMemoryKernelRange = 0x00020000, BlMemoryFixed = 0x00040000, BlMemoryBelow1MB = 0x00080000,
  BlMemoryValidAllocationAttributes = BlMemoryKernelRange | BlMemoryFixed | BlMemoryBelow1MB | BlMemoryLargePages, BlMemoryValidAllocationAttributeMask = 0x00FF0000, BlMemoryRuntime = 0x01000000, BlMemoryCoalesced = 0x02000000,
  BlMemoryUpdate = 0x04000000, BlMemoryNonFirmware = 0x08000000, BlMemoryPersistent = 0x10000000, BlMemorySpecial = 0x20000000,
  BlMemoryFirmware = 0x80000000, BlMemoryValidTypeAttributes = BlMemoryRuntime | BlMemoryCoalesced | BlMemoryUpdate | BlMemoryNonFirmware | BlMemoryPersistent | BlMemorySpecial | BlMemoryFirmware, BlMemoryValidTypeAttributeMask = 0xFF000000
}
 
enum  _BL_BOOT_ERROR_STATUS {
  Reboot = 1, Recover = 2, RecoverOem = 3, OsSelection = 4,
  NextOs = 5, TryAgain = 6, AdvancedOptions = 7, BootOptions = 8
}
 
enum  _BL_GRAPHICS_CONSOLE_TYPE { BlGopConsole, BlUgaConsole }
 

Functions

 DEFINE_GUID (BadMemoryGuid, 0x54B8275B, 0xD431, 0x473F, 0xAC, 0xFB, 0xE5, 0x36, 0xA0, 0x84, 0x94, 0xA3)
 
 C_ASSERT (BL_MM_INCLUDE_NO_FIRMWARE_MEMORY==0x1BF)
 
 C_ASSERT (BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY==0x240)
 
FORCEINLINE VOID BlSetupDefaultParameters (_Out_ PBL_LIBRARY_PARAMETERS LibraryParameters)
 
FORCEINLINE VOID MmMdInitializeListHead (_In_ PBL_MEMORY_DESCRIPTOR_LIST List)
 
FORCEINLINE PVOID PhysicalAddressToPtr (_In_ PHYSICAL_ADDRESS PhysicalAddress)
 
NTSTATUS BlInitializeLibrary (_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
 
NTSTATUS BlpArchInitialize (_In_ ULONG Phase)
 
NTSTATUS BlpFwInitialize (_In_ ULONG Phase, _In_ PBL_FIRMWARE_DESCRIPTOR FirmwareParameters)
 
NTSTATUS BlpMmInitialize (_In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
 
NTSTATUS MmBaInitialize (VOID)
 
NTSTATUS MmPaInitialize (_In_ PBL_MEMORY_DATA MemoryData, _In_ ULONG MinimumPages)
 
NTSTATUS MmArchInitialize (_In_ ULONG Phase, _In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ BL_TRANSLATION_TYPE LibraryTranslationType)
 
NTSTATUS MmHaInitialize (_In_ ULONG HeapSize, _In_ ULONG HeapAttributes)
 
VOID MmMdInitialize (_In_ ULONG Phase, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
 
NTSTATUS BlpDeviceInitialize (VOID)
 
NTSTATUS BlpIoInitialize (VOID)
 
NTSTATUS BlpFileInitialize (VOID)
 
NTSTATUS BlpDisplayInitialize (_In_ ULONG Flags)
 
NTSTATUS BlpDisplayReinitialize (VOID)
 
VOID BlDestroyLibrary (VOID)
 
NTSTATUS BcInitialize (VOID)
 
VOID EfiPrintf (_In_ PWCHAR Format,...)
 
NTSTATUS BlFwGetParameters (_In_ PBL_FIRMWARE_DESCRIPTOR Parameters)
 
NTSTATUS BlFwEnumerateDevice (_In_ PBL_DEVICE_DESCRIPTOR Device)
 
NTSTATUS EfiAllocatePages (_In_ ULONG Type, _In_ ULONG Pages, _Inout_ EFI_PHYSICAL_ADDRESS *Memory)
 
NTSTATUS EfiStall (_In_ ULONG StallTime)
 
NTSTATUS EfiConInExReset (VOID)
 
NTSTATUS EfiConInReset (VOID)
 
NTSTATUS EfiConOutOutputString (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ PWCHAR String)
 
NTSTATUS EfiConOutQueryMode (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Mode, _In_ UINTN *Columns, _In_ UINTN *Rows)
 
NTSTATUS EfiConOutSetMode (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Mode)
 
VOID EfiConOutReadCurrentMode (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _Out_ EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode)
 
NTSTATUS EfiConOutSetAttribute (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Attribute)
 
NTSTATUS EfiConOutSetCursorPosition (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Column, _In_ ULONG Row)
 
NTSTATUS EfiConOutEnableCursor (_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ BOOLEAN Visible)
 
NTSTATUS EfiLocateHandleBuffer (_In_ EFI_LOCATE_SEARCH_TYPE SearchType, _In_ EFI_GUID *Protocol, _Inout_ PULONG HandleCount, _Inout_ EFI_HANDLE **Buffer)
 
NTSTATUS EfiOpenProtocol (_In_ EFI_HANDLE Handle, _In_ EFI_GUID *Protocol, _Out_ PVOID *Interface)
 
NTSTATUS EfiCloseProtocol (_In_ EFI_HANDLE Handle, _In_ EFI_GUID *Protocol)
 
NTSTATUS EfiGopGetCurrentMode (_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _Out_ UINTN *Mode, _Out_ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Information)
 
NTSTATUS EfiGopSetMode (_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _In_ ULONG Mode)
 
VOID EfiGopGetFrameBuffer (_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _Out_ PHYSICAL_ADDRESS *FrameBuffer, _Out_ UINTN *FrameBufferSize)
 
VOID EfiResetSystem (_In_ EFI_RESET_TYPE ResetType)
 
EFI_DEVICE_PATHEfiGetLeafNode (_In_ EFI_DEVICE_PATH *DevicePath)
 
EFI_DEVICE_PATHEfiIsDevicePathParent (_In_ EFI_DEVICE_PATH *DevicePath1, _In_ EFI_DEVICE_PATH *DevicePath2)
 
NTSTATUS EfipGetRsdt (_Out_ PPHYSICAL_ADDRESS FoundRsdt)
 
NTSTATUS EfiFreePages (_In_ ULONG Pages, _In_ EFI_PHYSICAL_ADDRESS PhysicalAddress)
 
NTSTATUS BlpTimeCalibratePerformanceCounter (VOID)
 
ULONGLONG BlTimeQueryPerformanceCounter (_Out_opt_ PLARGE_INTEGER Frequency)
 
ULONGLONG BlArchGetPerformanceCounter (VOID)
 
NTSTATUS BlpDisplayRegisterLocale (_In_ PWCHAR Locale)
 
VOID BfiFreeDeferredFontFile (_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
 
NTSTATUS BfLoadFontFile (_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ PWCHAR FontPath)
 
NTSTATUS BfLoadDeferredFontFiles (VOID)
 
NTSTATUS BfClearScreen (_In_ PBL_GRAPHICS_CONSOLE Console)
 
NTSTATUS BfClearToEndOfLine (_In_ PBL_GRAPHICS_CONSOLE Console)
 
NTSTATUS FatInitialize (VOID)
 
NTSTATUS FatMount (_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ PBL_FILE_ENTRY *FileEntry)
 
NTSTATUS EtfsInitialize (VOID)
 
NTSTATUS EtfsMount (_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ PBL_FILE_ENTRY *FileEntry)
 
BOOLEAN BlBdDebuggerEnabled (VOID)
 
NTSTATUS BlBdPullRemoteFile (_In_ PWCHAR FilePath, _Out_ PVOID BaseAddress, _Out_ PULONGLONG FileSize)
 
VOID BlStatusPrint (_In_ PCWCH Format,...)
 
VOID BlStatusError (_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
 
VOID BlArchCpuId (_In_ ULONG Function, _In_ ULONG SubFunction, _Out_ PCPU_INFO Result)
 
CPU_VENDORS BlArchGetCpuVendor (VOID)
 
BOOLEAN BlArchIsCpuIdFunctionSupported (_In_ ULONG Function)
 
VOID BlUtlUpdateProgress (_In_ ULONG Percentage, _Out_opt_ PBOOLEAN Completed)
 
NTSTATUS BlUtlGetAcpiTable (_Out_ PVOID *TableAddress, _In_ ULONG Signature)
 
NTSTATUS BlUtlInitialize (VOID)
 
NTSTATUS BlUtlRegisterProgressRoutine (VOID)
 
ULONG BlUtlCheckSum (_In_ ULONG PartialSum, _In_ PUCHAR Buffer, _In_ ULONG Length, _In_ ULONG Flags)
 
NTSTATUS BlGetApplicationBaseAndSize (_Out_ PVOID *ImageBase, _Out_ PULONG ImageSize)
 
VOID BlDestroyBootEntry (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry)
 
NTSTATUS BlPdQueryData (_In_ const GUID *DataGuid, _In_ PVOID Unknown, _Inout_ PBL_PD_DATA_BLOB DataBlob)
 
EFI_STATUS EfiGetEfiStatusCode (_In_ NTSTATUS Status)
 
NTSTATUS EfiGetNtStatusCode (_In_ EFI_STATUS EfiStatus)
 
VOID BlFwReboot (VOID)
 
NTSTATUS MmFwFreePages (_In_ ULONG BasePage, _In_ ULONG PageCount)
 
PGUID BlGetApplicationIdentifier (VOID)
 
NTSTATUS BlpSecureBootEFIIsEnabled (VOID)
 
NTSTATUS BlSecureBootIsEnabled (_Out_ PBOOLEAN SecureBootEnabled)
 
NTSTATUS BlSecureBootCheckForFactoryReset (VOID)
 
PWCHAR BlResourceFindMessage (_In_ ULONG MsgId)
 
PWCHAR BlResourceFindHtml (VOID)
 
NTSTATUS BlpResourceInitialize (VOID)
 
NTSTATUS BlTblMap (_In_ PVOID *Table, _In_ ULONG Count, _In_ PBL_TBL_MAP_ROUTINE MapCallback)
 
PVOID BlTblFindEntry (_In_ PVOID *Table, _In_ ULONG Count, _Out_ PULONG EntryIndex, _In_ PBL_TBL_LOOKUP_ROUTINE Callback, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
 
NTSTATUS BlTblSetEntry (_Inout_ PVOID **Table, _Inout_ PULONG Count, _In_ PVOID Entry, _Out_ PULONG EntryIndex, _In_ PBL_TBL_SET_ROUTINE Callback)
 
NTSTATUS TblDoNotPurgeEntry (_In_ PVOID Entry)
 
NTSTATUS BlHtStore (_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _In_ PVOID Data, _In_ ULONG DataSize)
 
NTSTATUS BlHtDelete (_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry)
 
NTSTATUS BlHtLookup (_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _Out_ PBL_HASH_VALUE *Value)
 
NTSTATUS BlHtCreate (_In_ ULONG Size, _In_ PBL_HASH_TABLE_HASH_FUNCTION HashFunction, _In_ PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction, _Out_ PULONG Id)
 
PBL_BCD_OPTION MiscGetBootOption (_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
 
ULONG BlGetBootOptionListSize (_In_ PBL_BCD_OPTION BcdOption)
 
ULONG BlGetBootOptionSize (_In_ PBL_BCD_OPTION BcdOption)
 
NTSTATUS BlGetBootOptionString (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
 
NTSTATUS BlGetBootOptionInteger (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
 
NTSTATUS BlGetBootOptionBoolean (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
 
NTSTATUS BlpGetBootOptionIntegerList (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG *Value, _Out_ PULONGLONG Count, _In_ BOOLEAN NoCopy)
 
NTSTATUS BlGetBootOptionDevice (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
 
NTSTATUS BlGetBootOptionGuid (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID Value)
 
NTSTATUS BlGetBootOptionGuidList (_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID *Value, _In_ PULONG Count)
 
NTSTATUS BlCopyBootOptions (_In_ PBL_BCD_OPTION OptionList, _Out_ PBL_BCD_OPTION *CopiedOptions)
 
NTSTATUS BlAppendBootOptionBoolean (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ BOOLEAN Value)
 
NTSTATUS BlAppendBootOptionInteger (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ ULONGLONG Value)
 
NTSTATUS BlAppendBootOptionString (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ PWCHAR OptionString)
 
NTSTATUS BlAppendBootOptions (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION Options)
 
VOID BlRemoveBootOption (_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
 
NTSTATUS BlReplaceBootOptions (_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION NewOptions)
 
VOID BiCloseKey (_In_ HANDLE KeyHandle)
 
NTSTATUS BiOpenKey (_In_ HANDLE ParentHandle, _In_ PWCHAR KeyName, _Out_ PHANDLE Handle)
 
NTSTATUS BiLoadHive (_In_ PBL_FILE_PATH_DESCRIPTOR FilePath, _Out_ PHANDLE HiveHandle)
 
NTSTATUS BiGetRegistryValue (_In_ HANDLE KeyHandle, _In_ PWCHAR ValueName, _In_ ULONG Type, _Out_ PVOID *Buffer, _Out_ PULONG ValueLength)
 
NTSTATUS BiEnumerateSubKeys (_In_ HANDLE KeyHandle, _Out_ PWCHAR **SubKeyList, _Out_ PULONG SubKeyCount)
 
NTSTATUS BiDeleteKey (_In_ HANDLE KeyHandle)
 
VOID BiDereferenceHive (_In_ HANDLE KeyHandle)
 
VOID BlpArchSwitchContext (_In_ BL_ARCH_MODE NewMode)
 
VOID BlpArchEnableTranslation (VOID)
 
VOID Archx86TransferTo32BitApplicationAsm (VOID)
 
VOID MmMdDbgDumpList (_In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList, _In_opt_ ULONG MaxCount)
 
VOID MmMdInitializeList (_In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList, _In_ ULONG Type, _In_ PLIST_ENTRY ListHead)
 
PBL_MEMORY_DESCRIPTOR MmMdFindDescriptor (_In_ ULONG WhichList, _In_ ULONG Flags, _In_ ULONGLONG Page)
 
PBL_MEMORY_DESCRIPTOR MmMdFindDescriptorFromMdl (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ ULONG Flags, _In_ ULONGLONG Page)
 
NTSTATUS MmMdCopyList (_In_ PBL_MEMORY_DESCRIPTOR_LIST DestinationList, _In_ PBL_MEMORY_DESCRIPTOR_LIST SourceList, _In_opt_ PBL_MEMORY_DESCRIPTOR ListDescriptor, _Out_ PULONG ActualCount, _In_ ULONG Count, _In_ ULONG Flags)
 
ULONG MmMdCountList (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList)
 
VOID MmMdFreeList (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList)
 
PBL_MEMORY_DESCRIPTOR MmMdInitByteGranularDescriptor (_In_ ULONG Flags, _In_ BL_MEMORY_TYPE Type, _In_ ULONGLONG BasePage, _In_ ULONGLONG VirtualPage, _In_ ULONGLONG PageCount)
 
VOID MmMdFreeGlobalDescriptors (VOID)
 
NTSTATUS MmMdAddDescriptorToList (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR MemoryDescriptor, _In_ ULONG Flags)
 
NTSTATUS MmMdTruncateDescriptors (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR_LIST NewList, _In_ ULONGLONG BasePage)
 
VOID MmMdRemoveDescriptorFromList (_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR Entry)
 
BOOLEAN MmMdFindSatisfyingRegion (_In_ PBL_MEMORY_DESCRIPTOR Descriptor, _Out_ PBL_MEMORY_DESCRIPTOR NewDescriptor, _In_ ULONGLONG Pages, _In_ PBL_ADDRESS_RANGE BaseRange, _In_ PBL_ADDRESS_RANGE VirtualRange, _In_ BOOLEAN TopDown, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONG Flags, _In_ ULONG Alignment)
 
NTSTATUS MmMdRemoveRegionFromMdlEx (__in PBL_MEMORY_DESCRIPTOR_LIST MdList, __in ULONG Flags, __in ULONGLONG BasePage, __in ULONGLONG PageCount, __in PBL_MEMORY_DESCRIPTOR_LIST NewMdList)
 
NTSTATUS MmMdFreeDescriptor (_In_ PBL_MEMORY_DESCRIPTOR MemoryDescriptor)
 
NTSTATUS MmPaTruncateMemory (_In_ ULONGLONG BasePage)
 
NTSTATUS BlMmAllocatePhysicalPages (_Inout_ PPHYSICAL_ADDRESS Address, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG PageCount, _In_ ULONG Attributes, _In_ ULONG Alignment)
 
NTSTATUS MmPapAllocatePhysicalPagesInRange (_Inout_ PPHYSICAL_ADDRESS BaseAddress, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG Pages, _In_ ULONG Attributes, _In_ ULONG Alignment, _In_ PBL_MEMORY_DESCRIPTOR_LIST NewList, _In_opt_ PBL_ADDRESS_RANGE Range, _In_ ULONG RangeType)
 
NTSTATUS MmPaReleaseSelfMapPages (_In_ PHYSICAL_ADDRESS Address)
 
NTSTATUS MmPaReserveSelfMapPages (_Inout_ PPHYSICAL_ADDRESS PhysicalAddress, _In_ ULONG Alignment, _In_ ULONG PageCount)
 
NTSTATUS BlMmFreePhysicalPages (_In_ PHYSICAL_ADDRESS Address)
 
NTSTATUS MmPapFreePages (_In_ PVOID Address, _In_ ULONG WhichList)
 
NTSTATUS MmPapAllocatePagesInRange (_Inout_ PVOID *PhysicalAddress, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG Pages, _In_ ULONG Attributes, _In_ ULONG Alignment, _In_opt_ PBL_ADDRESS_RANGE Range, _In_ ULONG Type)
 
NTSTATUS MmFwGetMemoryMap (_Out_ PBL_MEMORY_DESCRIPTOR_LIST MemoryMap, _In_ ULONG Flags)
 
NTSTATUS BlpMmInitializeConstraints (VOID)
 
NTSTATUS BlMmRemoveBadMemory (VOID)
 
NTSTATUS BlMmGetMemoryMap (_In_ PLIST_ENTRY MemoryMap, _In_ PBL_BUFFER_DESCRIPTOR MemoryParameters, _In_ ULONG WhichTypes, _In_ ULONG Flags)
 
NTSTATUS MmSelectMappingAddress (_Out_ PVOID *MappingAddress, _In_ PVOID PreferredAddress, _In_ ULONGLONG Size, _In_ ULONG AllocationAttributes, _In_ ULONG Flags, _In_ PHYSICAL_ADDRESS PhysicalAddress)
 
NTSTATUS MmMapPhysicalAddress (_Inout_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID *VirtualAddress, _Inout_ PULONGLONG Size, _In_ ULONG CacheAttributes)
 
NTSTATUS MmUnmapVirtualAddress (_Inout_ PVOID *VirtualAddress, _Inout_ PULONGLONG Size)
 
NTSTATUS BlMmMapPhysicalAddressEx (_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
 
NTSTATUS BlMmUnmapVirtualAddressEx (_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
 
BOOLEAN BlMmTranslateVirtualAddress (_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress)
 
BOOLEAN MmArchTranslateVirtualAddress (_In_ PVOID VirtualAddress, _Out_opt_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CachingFlags)
 
NTSTATUS BlpMmCreateBlockAllocator (VOID)
 
PVOID BlMmAllocateHeap (_In_ SIZE_T Size)
 
NTSTATUS BlMmFreeHeap (_In_ PVOID Buffer)
 
VOID BlDisplayGetTextCellResolution (_Out_ PULONG TextWidth, _Out_ PULONG TextHeight)
 
NTSTATUS BlDisplaySetScreenResolution (VOID)
 
NTSTATUS BlDisplayGetScreenResolution (_Out_ PULONG HRes, _Out_ PULONG Vres)
 
VOID BlDisplayInvalidateOemBitmap (VOID)
 
PBITMAP BlDisplayGetOemBitmap (_Out_ PCOORD Offset, _Out_opt_ PULONG Flags)
 
BOOLEAN BlDisplayValidOemBitmap (VOID)
 
NTSTATUS BlDisplayClearScreen (VOID)
 
NTSTATUS BlDisplaySetCursorType (_In_ ULONG Type)
 
NTSTATUS BlpIoRegisterDestroyRoutine (_In_ PBL_IO_DESTROY_ROUTINE DestroyRoutine)
 
NTSTATUS BlDeviceClose (_In_ ULONG DeviceId)
 
BOOLEAN BlDeviceIsVirtualPartitionDevice (_In_ PBL_DEVICE_DESCRIPTOR InputDevice, _Outptr_ PBL_DEVICE_DESCRIPTOR *VirtualDevice)
 
NTSTATUS BlpDeviceOpen (_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ ULONG Flags, _In_ ULONG Unknown, _Out_ PULONG DeviceId)
 
NTSTATUS BlDeviceGetInformation (_In_ ULONG DeviceId, _Out_ PBL_DEVICE_INFORMATION DeviceInformation)
 
NTSTATUS BlDeviceSetInformation (_In_ ULONG DeviceId, _In_ PBL_DEVICE_INFORMATION DeviceInformation)
 
NTSTATUS BlDeviceReadAtOffset (_In_ ULONG DeviceId, _In_ ULONG Size, _In_ ULONGLONG Offset, _In_ PVOID Buffer, _Out_ PULONG BytesRead)
 
NTSTATUS BlImgLoadImageWithProgress2 (_In_ ULONG DeviceId, _In_ BL_MEMORY_TYPE MemoryType, _In_ PWCHAR FileName, _Inout_ PVOID *MappedBase, _Inout_ PULONG MappedSize, _In_ ULONG ImageFlags, _In_ BOOLEAN ShowProgress, _Out_opt_ PUCHAR *HashBuffer, _Out_opt_ PULONG HashSize)
 
PIMAGE_SECTION_HEADER BlImgFindSection (_In_ PVOID ImageBase, _In_ ULONG ImageSize)
 
NTSTATUS BlImgLoadBootApplication (_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG AppHandle)
 
NTSTATUS BlImgStartBootApplication (_In_ ULONG AppHandle, _Inout_ PBL_RETURN_ARGUMENTS ReturnArguments)
 
NTSTATUS BlImgUnloadBootApplication (_In_ ULONG AppHandle)
 
VOID BlImgQueryCodeIntegrityBootOptions (_In_ PBL_LOADED_APPLICATION_ENTRY ApplicationEntry, _Out_ PBOOLEAN IntegrityChecksDisabled, _Out_ PBOOLEAN TestSigning)
 
NTSTATUS BlFileClose (_In_ ULONG FileId)
 
NTSTATUS BlFileReadAtOffsetEx (_In_ ULONG FileId, _In_ ULONG Size, _In_ ULONGLONG ByteOffset, _In_ PVOID Buffer, _Out_ PULONG BytesReturned, _In_ ULONG Flags)
 
NTSTATUS BlFileGetInformation (_In_ ULONG FileId, _In_ PBL_FILE_INFORMATION FileInfo)
 
NTSTATUS BlFileOpen (_In_ ULONG DeviceId, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ PULONG FileId)
 
NTSTATUS BlockIoEfiCompareDevice (_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ EFI_HANDLE Handle)
 
VOID ConsoleInputLocalDestruct (_In_ struct _BL_INPUT_CONSOLE *Console)
 
NTSTATUS ConsoleInputBaseReinitialize (_In_ struct _BL_INPUT_CONSOLE *Console)
 
NTSTATUS ConsoleCreateLocalInputCnsole (VOID)
 
VOID ConsoleGraphicalDestruct (_In_ struct _BL_GRAPHICS_CONSOLE *Console)
 
NTSTATUS ConsoleGraphicalClearText (_In_ PBL_GRAPHICS_CONSOLE Console, _In_ BOOLEAN LineOnly)
 
NTSTATUS ConsoleGraphicalClearPixels (_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Color)
 
NTSTATUS ConsoleGraphicalReinitialize (_In_ struct _BL_GRAPHICS_CONSOLE *Console)
 
NTSTATUS ConsoleGraphicalSetTextState (_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Mask, _In_ PBL_DISPLAY_STATE TextState)
 
BOOLEAN ConsoleGraphicalIsEnabled (_In_ struct _BL_GRAPHICS_CONSOLE *Console)
 
NTSTATUS ConsoleGraphicalGetGraphicalResolution (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ PBL_DISPLAY_MODE DisplayMode)
 
NTSTATUS ConsoleGraphicalGetOriginalResolution (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ PBL_DISPLAY_MODE DisplayMode)
 
NTSTATUS ConsoleGraphicalEnable (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ BOOLEAN Enable)
 
VOID ConsoleTextLocalDestruct (_In_ struct _BL_TEXT_CONSOLE *Console)
 
NTSTATUS ConsoleTextLocalReinitialize (_In_ struct _BL_TEXT_CONSOLE *Console)
 
NTSTATUS ConsoleTextBaseGetTextState (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PBL_DISPLAY_STATE TextState)
 
NTSTATUS ConsoleTextLocalSetTextState (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG Flags, _In_ PBL_DISPLAY_STATE TextState)
 
NTSTATUS ConsoleTextBaseGetTextResolution (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PULONG TextResolution)
 
NTSTATUS ConsoleTextLocalSetTextResolution (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG NewTextResolution, _Out_ PULONG OldTextResolution)
 
NTSTATUS ConsoleTextLocalClearText (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ BOOLEAN LineOnly)
 
NTSTATUS ConsoleTextLocalWriteText (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ PCHAR Text, _In_ ULONG Attribute)
 
NTSTATUS ConsoleTextLocalConstruct (_In_ PBL_TEXT_CONSOLE TextConsole, _In_ BOOLEAN Activate)
 
BOOLEAN ConsolepFindResolution (_In_ PBL_DISPLAY_MODE Mode, _In_ PBL_DISPLAY_MODE List, _In_ ULONG MaxIndex)
 
NTSTATUS ConsoleFirmwareTextClear (_In_ PBL_TEXT_CONSOLE Console, _In_ BOOLEAN LineOnly)
 
VOID ConsoleFirmwareTextClose (_In_ PBL_TEXT_CONSOLE TextConsole)
 
NTSTATUS ConsoleFirmwareTextOpen (_In_ PBL_TEXT_CONSOLE TextConsole)
 
NTSTATUS ConsoleFirmwareTextSetState (_In_ PBL_TEXT_CONSOLE TextConsole, _In_ UCHAR Mask, _In_ PBL_DISPLAY_STATE State)
 
NTSTATUS ConsoleGraphicalConstruct (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleCreateRemoteConsole (_In_ PBL_TEXT_CONSOLE *TextConsole)
 
NTSTATUS ConsoleEfiGraphicalOpenProtocol (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole, _In_ BL_GRAPHICS_CONSOLE_TYPE Type)
 
VOID ConsoleFirmwareGraphicalClose (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
VOID ConsoleFirmwareGraphicalDisable (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleFirmwareGraphicalClear (_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Color)
 
NTSTATUS ConsoleFirmwareGraphicalEnable (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleEfiUgaOpen (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
VOID ConsoleEfiUgaClose (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
VOID ConsoleEfiGopClose (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleEfiGopOpen (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleEfiGopEnable (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
 
NTSTATUS ConsoleEfiUgaSetResolution (_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole, _In_ PBL_DISPLAY_MODE DisplayMode, _In_ ULONG DisplayModeCount)
 
NTSTATUS ConsoleCreateLocalInputConsole (VOID)
 
NTSTATUS ConsoleInputLocalEraseBuffer (_In_ PBL_INPUT_CONSOLE Console, _In_opt_ PULONG ValueToFill)
 
VOID ConsolepClearBuffer (_In_ PUCHAR FrameBuffer, _In_ ULONG Width, _In_ PUCHAR FillColor, _In_ ULONG Height, _In_ ULONG ScanlineWidth, _In_ ULONG PixelDepth)
 
NTSTATUS ConsolepConvertColorToPixel (_In_ BL_COLOR Color, _Out_ PUCHAR Pixel)
 

Variables

ULONG MmDescriptorCallTreeCount
 
ULONG BlpApplicationFlags
 
BL_LIBRARY_PARAMETERS BlpLibraryParameters
 
BL_TRANSLATION_TYPE MmTranslationType
 
PBL_ARCH_CONTEXT CurrentExecutionContext
 
PBL_DEVICE_DESCRIPTOR BlpBootDevice
 
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
 
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOLEfiConOut
 
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOLEfiConInEx
 
EFI_GUID EfiGraphicsOutputProtocol
 
EFI_GUID EfiUgaDrawProtocol
 
EFI_GUID EfiLoadedImageProtocol
 
EFI_GUID EfiDevicePathProtocol
 
EFI_GUID EfiBlockIoProtocol
 
EFI_GUID EfiSimpleTextInputExProtocol
 
EFI_GUID EfiRootAcpiTableGuid
 
EFI_GUID EfiRootAcpiTable10Guid
 
EFI_GUID EfiGlobalVariable
 
ULONG ConsoleGraphicalResolutionListFlags
 
BL_DISPLAY_MODE ConsoleGraphicalResolutionList []
 
BL_DISPLAY_MODE ConsoleTextResolutionList []
 
ULONG ConsoleGraphicalResolutionListSize
 
PVOID DspRemoteInputConsole
 
PVOID DspLocalInputConsole
 
WCHAR BlScratchBuffer [8192]
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedAllocated
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedUnallocated
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlFwAllocationTracker
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedAllocated
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedUnallocated
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlReservedAllocated
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlBadMemory
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlTruncatedMemory
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlPersistentMemory
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlCompleteBadMemory
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlFreeVirtual
 
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappingTrackers
 
ULONGLONG BlpTimePerformanceFrequency
 
LIST_ENTRY RegisteredFileSystems
 
BL_ADDRESS_RANGE MmArchKsegAddressRange
 
ULONG_PTR MmArchTopOfApplicationAddressSpace
 
PBL_MM_RELOCATE_SELF_MAP BlMmRelocateSelfMap
 
PBL_MM_FLUSH_TLB BlMmFlushTlb
 
PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE BlMmMoveVirtualAddressRange
 
PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE BlMmZeroVirtualAddressRange
 
PBL_STATUS_ERROR_HANDLER BlpStatusErrorHandler
 

Macro Definition Documentation

◆ __FREELDR_H

#define __FREELDR_H

Definition at line 45 of file bl.h.

◆ BL_APP_ENTRY_SIGNATURE

#define BL_APP_ENTRY_SIGNATURE   "BTAPENT"

Definition at line 54 of file bl.h.

◆ BL_APPLICATION_ENTRY_BCD_OPTIONS_EXTERNAL

#define BL_APPLICATION_ENTRY_BCD_OPTIONS_EXTERNAL   0x80

Definition at line 75 of file bl.h.

◆ BL_APPLICATION_ENTRY_BCD_OPTIONS_INTERNAL

#define BL_APPLICATION_ENTRY_BCD_OPTIONS_INTERNAL   0x02

Definition at line 70 of file bl.h.

◆ BL_APPLICATION_ENTRY_BOOTMGR

#define BL_APPLICATION_ENTRY_BOOTMGR   0x1000

Definition at line 79 of file bl.h.

◆ BL_APPLICATION_ENTRY_BOOTSECTOR

#define BL_APPLICATION_ENTRY_BOOTSECTOR   0x400

Definition at line 78 of file bl.h.

◆ BL_APPLICATION_ENTRY_DISPLAY_ORDER

#define BL_APPLICATION_ENTRY_DISPLAY_ORDER   0x800000

Definition at line 80 of file bl.h.

◆ BL_APPLICATION_ENTRY_FIXED_SEQUENCE

#define BL_APPLICATION_ENTRY_FIXED_SEQUENCE   0x20000000

Definition at line 81 of file bl.h.

◆ BL_APPLICATION_ENTRY_FLAG_NO_GUID

#define BL_APPLICATION_ENTRY_FLAG_NO_GUID   0x01

Definition at line 69 of file bl.h.

◆ BL_APPLICATION_ENTRY_NTLDR

#define BL_APPLICATION_ENTRY_NTLDR   0x40

Definition at line 74 of file bl.h.

◆ BL_APPLICATION_ENTRY_REBOOT_ON_ERROR

#define BL_APPLICATION_ENTRY_REBOOT_ON_ERROR   0x20

Definition at line 73 of file bl.h.

◆ BL_APPLICATION_ENTRY_RECOVERY

#define BL_APPLICATION_ENTRY_RECOVERY   0x40000000

Definition at line 82 of file bl.h.

◆ BL_APPLICATION_ENTRY_SETUPLDR

#define BL_APPLICATION_ENTRY_SETUPLDR   0x200

Definition at line 77 of file bl.h.

◆ BL_APPLICATION_ENTRY_STARTUP

#define BL_APPLICATION_ENTRY_STARTUP   0x08

Definition at line 72 of file bl.h.

◆ BL_APPLICATION_ENTRY_WINLOAD

#define BL_APPLICATION_ENTRY_WINLOAD   0x04

Definition at line 71 of file bl.h.

◆ BL_APPLICATION_ENTRY_WINRESUME

#define BL_APPLICATION_ENTRY_WINRESUME   0x100

Definition at line 76 of file bl.h.

◆ BL_APPLICATION_FLAG_CONVERTED_FROM_EFI

#define BL_APPLICATION_FLAG_CONVERTED_FROM_EFI   0x01

Definition at line 52 of file bl.h.

◆ BL_BLOCK_DEVICE_PRESENT_FLAG

#define BL_BLOCK_DEVICE_PRESENT_FLAG   0x02

Definition at line 143 of file bl.h.

◆ BL_BLOCK_DEVICE_REMOVABLE_FLAG

#define BL_BLOCK_DEVICE_REMOVABLE_FLAG   0x01

Definition at line 142 of file bl.h.

◆ BL_BLOCK_DEVICE_VIRTUAL_FLAG

#define BL_BLOCK_DEVICE_VIRTUAL_FLAG   0x04

Definition at line 144 of file bl.h.

◆ BL_CONTEXT_INTERRUPTS_ON

#define BL_CONTEXT_INTERRUPTS_ON   2

Definition at line 85 of file bl.h.

◆ BL_CONTEXT_PAGING_ON

#define BL_CONTEXT_PAGING_ON   1

Definition at line 84 of file bl.h.

◆ BL_DEVICE_ENTRY_OPENED

#define BL_DEVICE_ENTRY_OPENED   0x01

Definition at line 156 of file bl.h.

◆ BL_DEVICE_ENTRY_READ_ACCESS

#define BL_DEVICE_ENTRY_READ_ACCESS   0x02

Definition at line 157 of file bl.h.

◆ BL_DEVICE_ENTRY_WRITE_ACCESS

#define BL_DEVICE_ENTRY_WRITE_ACCESS   0x04

Definition at line 158 of file bl.h.

◆ BL_DEVICE_READ_ACCESS

#define BL_DEVICE_READ_ACCESS   0x01

Definition at line 153 of file bl.h.

◆ BL_DEVICE_WRITE_ACCESS

#define BL_DEVICE_WRITE_ACCESS   0x02

Definition at line 154 of file bl.h.

◆ BL_DIRECTORY_ACCESS

#define BL_DIRECTORY_ACCESS   0x04

Definition at line 150 of file bl.h.

◆ BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG

#define BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG   0x02

Definition at line 136 of file bl.h.

◆ BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG

#define BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG   0x01

Definition at line 135 of file bl.h.

◆ BL_ETFS_FILE_ENTRY_DIRECTORY

#define BL_ETFS_FILE_ENTRY_DIRECTORY   0x01

Definition at line 166 of file bl.h.

◆ BL_FILE_ENTRY_DIRECTORY

#define BL_FILE_ENTRY_DIRECTORY   0x10000

Definition at line 164 of file bl.h.

◆ BL_FILE_ENTRY_OPENED

#define BL_FILE_ENTRY_OPENED   0x01

Definition at line 160 of file bl.h.

◆ BL_FILE_ENTRY_READ_ACCESS

#define BL_FILE_ENTRY_READ_ACCESS   0x02

Definition at line 161 of file bl.h.

◆ BL_FILE_ENTRY_UNKNOWN_ACCESS

#define BL_FILE_ENTRY_UNKNOWN_ACCESS   0x10

Definition at line 163 of file bl.h.

◆ BL_FILE_ENTRY_WRITE_ACCESS

#define BL_FILE_ENTRY_WRITE_ACCESS   0x04

Definition at line 162 of file bl.h.

◆ BL_FILE_READ_ACCESS

#define BL_FILE_READ_ACCESS   0x01

Definition at line 148 of file bl.h.

◆ BL_FILE_WRITE_ACCESS

#define BL_FILE_WRITE_ACCESS   0x02

Definition at line 149 of file bl.h.

◆ BL_FIRMWARE_DESCRIPTOR_VERSION

#define BL_FIRMWARE_DESCRIPTOR_VERSION   2

Definition at line 65 of file bl.h.

◆ BL_FS_REGISTER_AT_HEAD_FLAG

#define BL_FS_REGISTER_AT_HEAD_FLAG   1

Definition at line 140 of file bl.h.

◆ BL_HT_VALUE_IS_INLINE

#define BL_HT_VALUE_IS_INLINE   0x01

Definition at line 138 of file bl.h.

◆ BL_IMG_MEMORY_FILE

#define BL_IMG_MEMORY_FILE   0x02

Definition at line 169 of file bl.h.

◆ BL_IMG_REMOTE_FILE

#define BL_IMG_REMOTE_FILE   0x04

Definition at line 170 of file bl.h.

◆ BL_IMG_VALID_FILE

#define BL_IMG_VALID_FILE   0x01

Definition at line 168 of file bl.h.

◆ BL_LIBRARY_FLAG_INITIALIZATION_COMPLETED

#define BL_LIBRARY_FLAG_INITIALIZATION_COMPLETED   0x20

Definition at line 132 of file bl.h.

◆ BL_LIBRARY_FLAG_NO_DISPLAY

#define BL_LIBRARY_FLAG_NO_DISPLAY   0x01

Definition at line 128 of file bl.h.

◆ BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE

#define BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE   0x800

Definition at line 133 of file bl.h.

◆ BL_LIBRARY_FLAG_REINITIALIZE

#define BL_LIBRARY_FLAG_REINITIALIZE   0x02

Definition at line 129 of file bl.h.

◆ BL_LIBRARY_FLAG_REINITIALIZE_ALL

#define BL_LIBRARY_FLAG_REINITIALIZE_ALL   0x04

Definition at line 130 of file bl.h.

◆ BL_LIBRARY_FLAG_ZERO_HEAP_ALLOCATIONS_ON_FREE

#define BL_LIBRARY_FLAG_ZERO_HEAP_ALLOCATIONS_ON_FREE   0x10

Definition at line 131 of file bl.h.

◆ BL_LOAD_IMG_COMPUTE_HASH

#define BL_LOAD_IMG_COMPUTE_HASH   0x40000

Definition at line 176 of file bl.h.

◆ BL_LOAD_IMG_COMPUTE_SIGNATURE

#define BL_LOAD_IMG_COMPUTE_SIGNATURE   0x10

Definition at line 175 of file bl.h.

◆ BL_LOAD_IMG_EXISTING_BUFFER

#define BL_LOAD_IMG_EXISTING_BUFFER   0x04

Definition at line 173 of file bl.h.

◆ BL_LOAD_IMG_UNKNOWN_BUFFER_FLAG

#define BL_LOAD_IMG_UNKNOWN_BUFFER_FLAG   0x08

Definition at line 174 of file bl.h.

◆ BL_LOAD_IMG_VIRTUAL_BUFFER

#define BL_LOAD_IMG_VIRTUAL_BUFFER   0x01

Definition at line 172 of file bl.h.

◆ BL_LOAD_PE_IMG_CHECK_FORCED_INTEGRITY

#define BL_LOAD_PE_IMG_CHECK_FORCED_INTEGRITY   0x200

Definition at line 184 of file bl.h.

◆ BL_LOAD_PE_IMG_CHECK_MACHINE

#define BL_LOAD_PE_IMG_CHECK_MACHINE   0x02

Definition at line 179 of file bl.h.

◆ BL_LOAD_PE_IMG_CHECK_SUBSYSTEM

#define BL_LOAD_PE_IMG_CHECK_SUBSYSTEM   0x80

Definition at line 182 of file bl.h.

◆ BL_LOAD_PE_IMG_COMPUTE_HASH

#define BL_LOAD_PE_IMG_COMPUTE_HASH   0x10

Definition at line 181 of file bl.h.

◆ BL_LOAD_PE_IMG_EXISTING_BUFFER

#define BL_LOAD_PE_IMG_EXISTING_BUFFER   BL_LOAD_IMG_EXISTING_BUFFER

Definition at line 180 of file bl.h.

◆ BL_LOAD_PE_IMG_IGNORE_CHECKSUM_MISMATCH

#define BL_LOAD_PE_IMG_IGNORE_CHECKSUM_MISMATCH   0x10000

Definition at line 185 of file bl.h.

◆ BL_LOAD_PE_IMG_SKIP_RELOCATIONS

#define BL_LOAD_PE_IMG_SKIP_RELOCATIONS   0x100

Definition at line 183 of file bl.h.

◆ BL_LOAD_PE_IMG_VALIDATE_ORIGINAL_FILENAME

#define BL_LOAD_PE_IMG_VALIDATE_ORIGINAL_FILENAME   0x400000

Definition at line 186 of file bl.h.

◆ BL_LOAD_PE_IMG_VIRTUAL_BUFFER

#define BL_LOAD_PE_IMG_VIRTUAL_BUFFER   BL_LOAD_IMG_VIRTUAL_BUFFER

Definition at line 178 of file bl.h.

◆ BL_MEMORY_CLASS_SHIFT

#define BL_MEMORY_CLASS_SHIFT   28

Definition at line 146 of file bl.h.

◆ BL_MEMORY_DATA_VERSION

#define BL_MEMORY_DATA_VERSION   1

Definition at line 63 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_ALLOCATE_FLAG

#define BL_MM_ADD_DESCRIPTOR_ALLOCATE_FLAG   0x1000

Definition at line 94 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_COALESCE_FLAG

#define BL_MM_ADD_DESCRIPTOR_COALESCE_FLAG   0x01

Definition at line 90 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_NEVER_COALESCE_FLAG

#define BL_MM_ADD_DESCRIPTOR_NEVER_COALESCE_FLAG   0x10

Definition at line 92 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_NEVER_TRUNCATE_FLAG

#define BL_MM_ADD_DESCRIPTOR_NEVER_TRUNCATE_FLAG   0x20

Definition at line 93 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_TRUNCATE_FLAG

#define BL_MM_ADD_DESCRIPTOR_TRUNCATE_FLAG   0x02

Definition at line 91 of file bl.h.

◆ BL_MM_ADD_DESCRIPTOR_UPDATE_LIST_POINTER_FLAG

#define BL_MM_ADD_DESCRIPTOR_UPDATE_LIST_POINTER_FLAG   0x2000

Definition at line 95 of file bl.h.

◆ BL_MM_FLAG_REQUEST_COALESCING

#define BL_MM_FLAG_REQUEST_COALESCING   0x02

Definition at line 88 of file bl.h.

◆ BL_MM_FLAG_USE_FIRMWARE_FOR_MEMORY_MAP_BUFFERS

#define BL_MM_FLAG_USE_FIRMWARE_FOR_MEMORY_MAP_BUFFERS   0x01

Definition at line 87 of file bl.h.

◆ BL_MM_INCLUDE_BAD_MEMORY

#define BL_MM_INCLUDE_BAD_MEMORY   0x20

Definition at line 102 of file bl.h.

◆ BL_MM_INCLUDE_FIRMWARE_MEMORY

#define BL_MM_INCLUDE_FIRMWARE_MEMORY   0x40

Definition at line 103 of file bl.h.

◆ BL_MM_INCLUDE_FIRMWARE_MEMORY_2

#define BL_MM_INCLUDE_FIRMWARE_MEMORY_2   0x200

Definition at line 106 of file bl.h.

◆ BL_MM_INCLUDE_MAPPED_ALLOCATED

#define BL_MM_INCLUDE_MAPPED_ALLOCATED   0x01

Definition at line 97 of file bl.h.

◆ BL_MM_INCLUDE_MAPPED_UNALLOCATED

#define BL_MM_INCLUDE_MAPPED_UNALLOCATED   0x02

Definition at line 98 of file bl.h.

◆ BL_MM_INCLUDE_NO_FIRMWARE_MEMORY

#define BL_MM_INCLUDE_NO_FIRMWARE_MEMORY
Value:
BL_MM_INCLUDE_TRUNCATED_MEMORY | \
BL_MM_INCLUDE_BAD_MEMORY | \
BL_MM_INCLUDE_RESERVED_ALLOCATED | \
BL_MM_INCLUDE_UNMAPPED_UNALLOCATED | \
BL_MM_INCLUDE_UNMAPPED_ALLOCATED | \
BL_MM_INCLUDE_MAPPED_UNALLOCATED | \
BL_MM_INCLUDE_MAPPED_ALLOCATED)
#define BL_MM_INCLUDE_PERSISTENT_MEMORY
Definition: bl.h:105

Definition at line 108 of file bl.h.

◆ BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY

#define BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY
Value:
BL_MM_INCLUDE_FIRMWARE_MEMORY)
#define BL_MM_INCLUDE_FIRMWARE_MEMORY_2
Definition: bl.h:106

Definition at line 118 of file bl.h.

◆ BL_MM_INCLUDE_PERSISTENT_MEMORY

#define BL_MM_INCLUDE_PERSISTENT_MEMORY   0x100

Definition at line 105 of file bl.h.

◆ BL_MM_INCLUDE_RESERVED_ALLOCATED

#define BL_MM_INCLUDE_RESERVED_ALLOCATED   0x10

Definition at line 101 of file bl.h.

◆ BL_MM_INCLUDE_TRUNCATED_MEMORY

#define BL_MM_INCLUDE_TRUNCATED_MEMORY   0x80

Definition at line 104 of file bl.h.

◆ BL_MM_INCLUDE_UNMAPPED_ALLOCATED

#define BL_MM_INCLUDE_UNMAPPED_ALLOCATED   0x04

Definition at line 99 of file bl.h.

◆ BL_MM_INCLUDE_UNMAPPED_UNALLOCATED

#define BL_MM_INCLUDE_UNMAPPED_UNALLOCATED   0x08

Definition at line 100 of file bl.h.

◆ BL_MM_REMOVE_PHYSICAL_REGION_FLAG

#define BL_MM_REMOVE_PHYSICAL_REGION_FLAG   0x40000000

Definition at line 125 of file bl.h.

◆ BL_MM_REMOVE_VIRTUAL_REGION_FLAG

#define BL_MM_REMOVE_VIRTUAL_REGION_FLAG   0x80000000

Definition at line 126 of file bl.h.

◆ BL_MM_REQUEST_DEFAULT_TYPE

#define BL_MM_REQUEST_DEFAULT_TYPE   1

Definition at line 122 of file bl.h.

◆ BL_MM_REQUEST_TOP_DOWN_TYPE

#define BL_MM_REQUEST_TOP_DOWN_TYPE   2

Definition at line 123 of file bl.h.

◆ BL_RETURN_ARGUMENTS_NO_PAE_FLAG

#define BL_RETURN_ARGUMENTS_NO_PAE_FLAG   0x40

Definition at line 67 of file bl.h.

◆ BL_RETURN_ARGUMENTS_VERSION

#define BL_RETURN_ARGUMENTS_VERSION   1

Definition at line 64 of file bl.h.

◆ BL_UNKNOWN_ACCESS

#define BL_UNKNOWN_ACCESS   0x10

Definition at line 151 of file bl.h.

◆ BL_UTL_CHECKSUM_COMPLEMENT

#define BL_UTL_CHECKSUM_COMPLEMENT   0x10000

Definition at line 188 of file bl.h.

◆ BL_UTL_CHECKSUM_NEGATE

#define BL_UTL_CHECKSUM_NEGATE   0x40000

Definition at line 190 of file bl.h.

◆ BL_UTL_CHECKSUM_ROTATE

#define BL_UTL_CHECKSUM_ROTATE   0x20000

Definition at line 189 of file bl.h.

◆ BL_UTL_CHECKSUM_UCHAR_BUFFER

#define BL_UTL_CHECKSUM_UCHAR_BUFFER   0x01

Definition at line 191 of file bl.h.

◆ BL_UTL_CHECKSUM_USHORT_BUFFER

#define BL_UTL_CHECKSUM_USHORT_BUFFER   0x02

Definition at line 192 of file bl.h.

◆ BOOT_APPLICATION_SIGNATURE_1

#define BOOT_APPLICATION_SIGNATURE_1   'TOOB'

Definition at line 56 of file bl.h.

◆ BOOT_APPLICATION_SIGNATURE_2

#define BOOT_APPLICATION_SIGNATURE_2   ' PPA'

Definition at line 57 of file bl.h.

◆ BOOT_APPLICATION_VERSION

#define BOOT_APPLICATION_VERSION   2

Definition at line 62 of file bl.h.

◆ BOOT_MEMORY_TRANSLATION_TYPE_PHYSICAL

#define BOOT_MEMORY_TRANSLATION_TYPE_PHYSICAL   0

Definition at line 59 of file bl.h.

◆ BOOT_MEMORY_TRANSLATION_TYPE_VIRTUAL

#define BOOT_MEMORY_TRANSLATION_TYPE_VIRTUAL   1

Definition at line 60 of file bl.h.

Typedef Documentation

◆ BITMAP

◆ BL_ADDRESS_RANGE

◆ BL_APPLICATION_ENTRY

◆ BL_ARCH_CONTEXT

◆ BL_ARCH_MODE

◆ BL_BCD_OPTION

◆ BL_BLOCK_DEVICE

◆ BL_BLOCK_DEVICE_INFORMATION

◆ BL_BOOT_ERROR_STATUS

◆ BL_BUFFER_DESCRIPTOR

◆ BL_COLOR

◆ BL_DEFERRED_FONT_FILE

◆ BL_DEVICE_CALLBACKS

◆ BL_DEVICE_DESCRIPTOR

◆ BL_DEVICE_ENTRY

◆ BL_DEVICE_INFORMATION

◆ BL_DEVICE_TYPE

◆ BL_DISPLAY_MODE

◆ BL_DISPLAY_STATE

◆ BL_FILE_CALLBACKS

◆ BL_FILE_ENTRY

◆ BL_FILE_INFORMATION

◆ BL_FILE_PATH_DESCRIPTOR

◆ BL_FILE_SYSTEM_ENTRY

◆ BL_FILE_SYSTEM_REGISTRATION_TABLE

◆ BL_FIRMWARE_DESCRIPTOR

◆ BL_GRAPHICS_CONSOLE

◆ BL_GRAPHICS_CONSOLE_TYPE

◆ BL_GRAPHICS_CONSOLE_VTABLE

◆ BL_HARDDISK_DEVICE

◆ BL_HASH_ENTRY

◆ BL_HASH_NODE

◆ BL_HASH_TABLE

◆ BL_HASH_VALUE

◆ BL_IMAGE_APPLICATION_ENTRY

◆ BL_IMG_FILE

◆ BL_INPUT_CONSOLE

◆ BL_INPUT_CONSOLE_VTABLE

◆ BL_LIBRARY_PARAMETERS

◆ BL_LOADED_APPLICATION_ENTRY

◆ BL_LOCAL_DEVICE

◆ BL_LOCAL_DEVICE_TYPE

◆ BL_MEMORY_ATTR

◆ BL_MEMORY_CLASS

◆ BL_MEMORY_DATA

◆ BL_MEMORY_DESCRIPTOR

◆ BL_MEMORY_DESCRIPTOR_LIST

◆ BL_MEMORY_DESCRIPTOR_TYPE

◆ BL_MEMORY_TYPE

◆ BL_MENU_POLICY

◆ BL_MENU_STATUS

◆ BL_PARTITION_TYPE

◆ BL_PATH_TYPE

◆ BL_PD_DATA_BLOB

◆ BL_PROTOCOL_HANDLE

◆ BL_REMOTE_CONSOLE

◆ BL_RETURN_ARGUMENTS

◆ BL_TEXT_CONSOLE

◆ BL_TEXT_CONSOLE_VTABLE

◆ BL_TRANSLATION_TYPE

◆ BL_WINDOWS_LOAD_OPTIONS

◆ BMP_HEADER

◆ BOOT_APPLICATION_PARAMETER_BLOCK

◆ COORD

typedef struct _COORD COORD

◆ DIB_HEADER

◆ PBITMAP

typedef struct _BITMAP * PBITMAP

◆ PBL_ADDRESS_RANGE

◆ PBL_APPLICATION_ENTRY

◆ PBL_ARCH_CONTEXT

◆ PBL_BCD_OPTION

◆ PBL_BLOCK_DEVICE

◆ PBL_BLOCK_DEVICE_INFORMATION

◆ PBL_BUFFER_DESCRIPTOR

◆ PBL_COLOR

◆ PBL_DEFERRED_FONT_FILE

◆ PBL_DEVICE_CALLBACKS

◆ PBL_DEVICE_CLOSE

typedef NTSTATUS(* PBL_DEVICE_CLOSE) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry)

Definition at line 627 of file bl.h.

◆ PBL_DEVICE_CREATE

typedef NTSTATUS(* PBL_DEVICE_CREATE) (VOID)

Definition at line 674 of file bl.h.

◆ PBL_DEVICE_DESCRIPTOR

◆ PBL_DEVICE_ENTRY

◆ PBL_DEVICE_ENUMERATE_DEVICE_CLASS

typedef NTSTATUS(* PBL_DEVICE_ENUMERATE_DEVICE_CLASS) (VOID)

Definition at line 614 of file bl.h.

◆ PBL_DEVICE_FLUSH

typedef NTSTATUS(* PBL_DEVICE_FLUSH) (VOID)

Definition at line 668 of file bl.h.

◆ PBL_DEVICE_GET_INFORMATION

typedef NTSTATUS(* PBL_DEVICE_GET_INFORMATION) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _Out_ struct _BL_DEVICE_INFORMATION *DeviceInformation)

Definition at line 648 of file bl.h.

◆ PBL_DEVICE_INFORMATION

◆ PBL_DEVICE_OPEN

typedef NTSTATUS(* PBL_DEVICE_OPEN) (_In_ struct _BL_DEVICE_DESCRIPTOR *Device, _In_ struct _BL_DEVICE_ENTRY *DeviceEntry)

Definition at line 620 of file bl.h.

◆ PBL_DEVICE_READ

typedef NTSTATUS(* PBL_DEVICE_READ) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ PVOID Buffer, _In_ ULONG Size, _Out_ PULONG BytesRead)

Definition at line 633 of file bl.h.

◆ PBL_DEVICE_RESET

typedef NTSTATUS(* PBL_DEVICE_RESET) (VOID)

Definition at line 662 of file bl.h.

◆ PBL_DEVICE_SET_INFORMATION

typedef NTSTATUS(* PBL_DEVICE_SET_INFORMATION) (_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ struct _BL_DEVICE_INFORMATION *DeviceInformation)

Definition at line 655 of file bl.h.

◆ PBL_DEVICE_WRITE

typedef NTSTATUS(* PBL_DEVICE_WRITE) (VOID)

Definition at line 642 of file bl.h.

◆ PBL_DISPLAY_MODE

◆ PBL_DISPLAY_STATE

◆ PBL_FILE_CALLBACKS

◆ PBL_FILE_CLOSE

typedef NTSTATUS(* PBL_FILE_CLOSE) (_In_ struct _BL_FILE_ENTRY *FileEntry)

Definition at line 403 of file bl.h.

◆ PBL_FILE_DESTROY_CALLBACK

typedef NTSTATUS(* PBL_FILE_DESTROY_CALLBACK) (_In_ PVOID Entry)

Definition at line 470 of file bl.h.

◆ PBL_FILE_ENTRY

◆ PBL_FILE_GET_INFO

typedef NTSTATUS(* PBL_FILE_GET_INFO) (_In_ struct _BL_FILE_ENTRY *FileEntry, _Out_ struct _BL_FILE_INFORMATION *FileInfo)

Definition at line 430 of file bl.h.

◆ PBL_FILE_GET_NEXT

typedef NTSTATUS(* PBL_FILE_GET_NEXT) (VOID)

Definition at line 424 of file bl.h.

◆ PBL_FILE_INFORMATION

◆ PBL_FILE_OPEN

Definition at line 394 of file bl.h.

◆ PBL_FILE_PATH_DESCRIPTOR

◆ PBL_FILE_READ

Definition at line 409 of file bl.h.

◆ PBL_FILE_SET_INFO

typedef NTSTATUS(* PBL_FILE_SET_INFO) (_In_ struct _BL_FILE_ENTRY *FileEntry, _In_ struct _BL_FILE_INFORMATION *FileInfo)

Definition at line 437 of file bl.h.

◆ PBL_FILE_SYSTEM_ENTRY

◆ PBL_FILE_WRITE

typedef NTSTATUS(* PBL_FILE_WRITE) (VOID)

Definition at line 418 of file bl.h.

◆ PBL_FIRMWARE_DESCRIPTOR

◆ PBL_FS_DESTROY_CALLBACK

typedef NTSTATUS(* PBL_FS_DESTROY_CALLBACK) (VOID)

Definition at line 450 of file bl.h.

◆ PBL_FS_INIT_CALLBACK

typedef NTSTATUS(* PBL_FS_INIT_CALLBACK) (VOID)

Definition at line 444 of file bl.h.

◆ PBL_FS_MOUNT_CALLBACK

typedef NTSTATUS(* PBL_FS_MOUNT_CALLBACK) (_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ struct _BL_FILE_ENTRY **FileEntry)

Definition at line 456 of file bl.h.

◆ PBL_FS_PURGE_CALLBACK

typedef NTSTATUS(* PBL_FS_PURGE_CALLBACK) (VOID)

Definition at line 464 of file bl.h.

◆ PBL_GRAPHICS_CONSOLE

◆ PBL_GRAPHICS_CONSOLE_VTABLE

◆ PBL_HASH_ENTRY

◆ PBL_HASH_NODE

◆ PBL_HASH_TABLE

◆ PBL_HASH_TABLE_COMPARE_FUNCTION

typedef BOOLEAN(* PBL_HASH_TABLE_COMPARE_FUNCTION) (_In_ struct _BL_HASH_ENTRY *Entry1, _In_ struct _BL_HASH_ENTRY *Entry2)

Definition at line 596 of file bl.h.

◆ PBL_HASH_TABLE_HASH_FUNCTION

typedef ULONG(* PBL_HASH_TABLE_HASH_FUNCTION) (_In_ struct _BL_HASH_ENTRY *Entry, _In_ ULONG TableSize)

Definition at line 603 of file bl.h.

◆ PBL_HASH_VALUE

◆ PBL_IMAGE_APPLICATION_ENTRY

◆ PBL_IMG_FILE

◆ PBL_INPUT_CONSOLE

◆ PBL_INPUT_CONSOLE_VTABLE

◆ PBL_IO_DESTROY_ROUTINE

typedef NTSTATUS(* PBL_IO_DESTROY_ROUTINE) (VOID)

Definition at line 589 of file bl.h.

◆ PBL_LIBRARY_PARAMETERS

◆ PBL_LOADED_APPLICATION_ENTRY

◆ PBL_LOCAL_DEVICE

◆ PBL_MEMORY_DATA

◆ PBL_MEMORY_DESCRIPTOR

◆ PBL_MEMORY_DESCRIPTOR_LIST

◆ PBL_MM_DESTROY_SELF_MAP

typedef VOID(* PBL_MM_DESTROY_SELF_MAP) (VOID)

Definition at line 702 of file bl.h.

◆ PBL_MM_FLUSH_TLB

typedef VOID(* PBL_MM_FLUSH_TLB)(VOID)

Definition at line 679 of file bl.h.

◆ PBL_MM_FLUSH_TLB_ENTRY

typedef VOID(* PBL_MM_FLUSH_TLB_ENTRY) (_In_ PVOID VirtualAddress)

Definition at line 707 of file bl.h.

◆ PBL_MM_MAP_PHYSICAL_ADDRESS

typedef NTSTATUS(* PBL_MM_MAP_PHYSICAL_ADDRESS) (_In_ PHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)

Definition at line 731 of file bl.h.

◆ PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE

typedef NTSTATUS(* PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE) (_In_ PVOID DestinationAddress, _In_ PVOID SourceAddress, _In_ ULONGLONG Size)

Definition at line 689 of file bl.h.

◆ PBL_MM_RELOCATE_SELF_MAP

typedef VOID(* PBL_MM_RELOCATE_SELF_MAP) (VOID)

Definition at line 684 of file bl.h.

◆ PBL_MM_REMAP_VIRTUAL_ADDRESS

typedef NTSTATUS(* PBL_MM_REMAP_VIRTUAL_ADDRESS) (_In_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)

Definition at line 723 of file bl.h.

◆ PBL_MM_TRANSLATE_VIRTUAL_ADDRESS

typedef BOOLEAN(* PBL_MM_TRANSLATE_VIRTUAL_ADDRESS) (_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CacheAttributes)

Definition at line 739 of file bl.h.

◆ PBL_MM_UNMAP_VIRTUAL_ADDRESS

typedef NTSTATUS(* PBL_MM_UNMAP_VIRTUAL_ADDRESS) (_In_ PVOID VirtualAddress, _In_ ULONG Size)

Definition at line 717 of file bl.h.

◆ PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE

typedef NTSTATUS(* PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE) (_In_ PVOID DestinationAddress, _In_ ULONGLONG Size)

Definition at line 696 of file bl.h.

◆ PBL_PD_DATA_BLOB

◆ PBL_PROTOCOL_HANDLE

◆ PBL_REMOTE_CONSOLE

◆ PBL_RETURN_ARGUMENTS

◆ PBL_STATUS_ERROR_HANDLER

typedef NTSTATUS(* PBL_STATUS_ERROR_HANDLER) (_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)

Definition at line 746 of file bl.h.

◆ PBL_TBL_LOOKUP_ROUTINE

typedef BOOLEAN(* PBL_TBL_LOOKUP_ROUTINE) (_In_ PVOID Entry, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)

Definition at line 566 of file bl.h.

◆ PBL_TBL_MAP_ROUTINE

typedef NTSTATUS(* PBL_TBL_MAP_ROUTINE) (_In_ PVOID Entry, _In_ ULONG EntryIndex)

Definition at line 576 of file bl.h.

◆ PBL_TBL_SET_ROUTINE

typedef NTSTATUS(* PBL_TBL_SET_ROUTINE) (_In_ PVOID Entry)

Definition at line 583 of file bl.h.

◆ PBL_TEXT_CONSOLE

◆ PBL_TEXT_CONSOLE_VTABLE

◆ PBL_WINDOWS_LOAD_OPTIONS

◆ PBMP_HEADER

◆ PBOOT_APPLICATION_PARAMETER_BLOCK

◆ PCONSOLE_CLEAR_TEXT

typedef NTSTATUS(* PCONSOLE_CLEAR_TEXT) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ BOOLEAN LineOnly)

Definition at line 524 of file bl.h.

◆ PCONSOLE_DESTRUCT

typedef VOID(* PCONSOLE_DESTRUCT) (_In_ struct _BL_TEXT_CONSOLE *Console)

Definition at line 482 of file bl.h.

◆ PCONSOLE_ENABLE

Definition at line 551 of file bl.h.

◆ PCONSOLE_GET_GRAPHICAL_RESOLUTION

typedef NTSTATUS(* PCONSOLE_GET_GRAPHICAL_RESOLUTION) (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _Out_ struct _BL_DISPLAY_MODE *DisplayMode)

Definition at line 537 of file bl.h.

◆ PCONSOLE_GET_TEXT_RESOLUTION

typedef NTSTATUS(* PCONSOLE_GET_TEXT_RESOLUTION) (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PULONG TextResolution)

Definition at line 509 of file bl.h.

◆ PCONSOLE_GET_TEXT_STATE

typedef NTSTATUS(* PCONSOLE_GET_TEXT_STATE) (_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ struct _BL_DISPLAY_STATE *TextState)

Definition at line 494 of file bl.h.

◆ PCONSOLE_IS_ENABLED

typedef BOOLEAN(* PCONSOLE_IS_ENABLED) (_In_ struct _BL_GRAPHICS_CONSOLE *Console)

Definition at line 531 of file bl.h.

◆ PCONSOLE_REINITIALIZE

typedef NTSTATUS(* PCONSOLE_REINITIALIZE) (_In_ struct _BL_TEXT_CONSOLE *Console)

Definition at line 488 of file bl.h.

◆ PCONSOLE_SET_GRAPHICAL_RESOLUTION

typedef NTSTATUS(* PCONSOLE_SET_GRAPHICAL_RESOLUTION) (_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ struct _BL_DISPLAY_MODE DisplayMode)

Definition at line 544 of file bl.h.

◆ PCONSOLE_SET_TEXT_RESOLUTION

typedef NTSTATUS(* PCONSOLE_SET_TEXT_RESOLUTION) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG NewTextResolution, _Out_ PULONG OldTextResolution)

Definition at line 516 of file bl.h.

◆ PCONSOLE_SET_TEXT_STATE

typedef NTSTATUS(* PCONSOLE_SET_TEXT_STATE) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG Flags, _In_ struct _BL_DISPLAY_STATE *TextState)

Definition at line 501 of file bl.h.

◆ PCONSOLE_WRITE_TEXT

typedef NTSTATUS(* PCONSOLE_WRITE_TEXT) (_In_ struct _BL_TEXT_CONSOLE *Console, _In_ PCHAR Text, _In_ ULONG Attribute)

Definition at line 558 of file bl.h.

◆ PCOORD

typedef struct _COORD * PCOORD

◆ PDIB_HEADER

◆ PL_MENU_STATUS

Enumeration Type Documentation

◆ _BL_ARCH_MODE

Enumerator
BlProtectedMode 
BlRealMode 

Definition at line 237 of file bl.h.

238 {
240  BlRealMode
241 } BL_ARCH_MODE;
Definition: bl.h:240
enum _BL_ARCH_MODE BL_ARCH_MODE

◆ _BL_BOOT_ERROR_STATUS

Enumerator
Reboot 
Recover 
RecoverOem 
OsSelection 
NextOs 
TryAgain 
AdvancedOptions 
BootOptions 

Definition at line 890 of file bl.h.

891 {
892  Reboot = 1,
893  Recover = 2,
894  RecoverOem = 3,
895  OsSelection = 4,
896  NextOs = 5,
897  TryAgain = 6,
898  AdvancedOptions = 7,
899  BootOptions = 8
Definition: bl.h:897
Definition: bl.h:892
Definition: bl.h:893
Definition: bl.h:896
Definition: bl.h:894
enum _BL_BOOT_ERROR_STATUS BL_BOOT_ERROR_STATUS

◆ _BL_COLOR

Enumerator
Black 
Blue 
Green 
Cyan 
Red 
Magenta 
Brown 
LtGray 
Gray 
LtBlue 
LtGreen 
LtCyan 
LtRed 
LtMagenta 
Yellow 
White 

Definition at line 196 of file bl.h.

197 {
198  Black,
199  Blue,
200  Green,
201  Cyan,
202  Red,
203  Magenta,
204  Brown,
205  LtGray,
206  Gray,
207  LtBlue,
208  LtGreen,
209  LtCyan,
210  LtRed,
211  LtMagenta,
212  Yellow,
213  White
214 } BL_COLOR, *PBL_COLOR;
Definition: bl.h:203
Definition: bl.h:202
Definition: bl.h:204
Definition: bl.h:209
enum _BL_COLOR BL_COLOR
Definition: bl.h:201
Definition: bl.h:199
Definition: bl.h:206
Definition: bl.h:213
Definition: bl.h:208
Definition: bl.h:210
Definition: bl.h:198
Definition: bl.h:212
Definition: bl.h:200
Definition: bl.h:207
Definition: bl.h:211
Definition: bl.h:205
enum _BL_COLOR * PBL_COLOR

◆ _BL_DEVICE_TYPE

Enumerator
DiskDevice 
LegacyPartitionDevice 
SerialDevice 
UdpDevice 
BootDevice 
PartitionDevice 
LocateDevice 

Definition at line 246 of file bl.h.

247 {
248  DiskDevice = 0,
250  SerialDevice = 3,
251  UdpDevice = 4,
252  BootDevice = 5,
253  PartitionDevice = 6,
254  LocateDevice = 8,
Definition: bl.h:248
Definition: bl.h:252
Definition: bl.h:251
enum _BL_DEVICE_TYPE BL_DEVICE_TYPE

◆ _BL_GRAPHICS_CONSOLE_TYPE

Enumerator
BlGopConsole 
BlUgaConsole 

Definition at line 1139 of file bl.h.

1140 {
1141  BlGopConsole,
1142  BlUgaConsole
enum _BL_GRAPHICS_CONSOLE_TYPE BL_GRAPHICS_CONSOLE_TYPE

◆ _BL_LOCAL_DEVICE_TYPE

Enumerator
LocalDevice 
FloppyDevice 
CdRomDevice 
RamDiskDevice 
FileDevice 
VirtualDiskDevice 

Definition at line 260 of file bl.h.

261 {
262  LocalDevice = 0,
263  FloppyDevice = 1,
264  CdRomDevice = 2,
265  RamDiskDevice = 3,
266  FileDevice = 5,
enum _BL_LOCAL_DEVICE_TYPE BL_LOCAL_DEVICE_TYPE
Definition: bl.h:266

◆ _BL_MEMORY_ATTR

Enumerator
BlMemoryUncached 
BlMemoryWriteCombined 
BlMemoryWriteThrough 
BlMemoryWriteBack 
BlMemoryUncachedExported 
BlMemoryValidCacheAttributes 
BlMemoryValidCacheAttributeMask 
BlMemoryWriteProtected 
BlMemoryReadProtected 
BlMemoryExecuteProtected 
BlMemoryValidProtectionAttributes 
BlMemoryValidProtectionAttributeMask 
BlMemoryLargePages 
BlMemoryKernelRange 
BlMemoryFixed 
BlMemoryBelow1MB 
BlMemoryValidAllocationAttributes 
BlMemoryValidAllocationAttributeMask 
BlMemoryRuntime 
BlMemoryCoalesced 
BlMemoryUpdate 
BlMemoryNonFirmware 
BlMemoryPersistent 
BlMemorySpecial 
BlMemoryFirmware 
BlMemoryValidTypeAttributes 
BlMemoryValidTypeAttributeMask 

Definition at line 342 of file bl.h.

343 {
344  //
345  // Memory Caching Attributes
346  //
347  BlMemoryUncached = 0x00000001,
348  BlMemoryWriteCombined = 0x00000002,
349  BlMemoryWriteThrough = 0x00000004,
350  BlMemoryWriteBack = 0x00000008,
351  BlMemoryUncachedExported = 0x00000010,
353  BlMemoryValidCacheAttributeMask = 0x000000FF,
354 
355  //
356  // Memory Protection Attributes
357  //
358  BlMemoryWriteProtected = 0x00000100,
359  BlMemoryReadProtected = 0x00000200,
360  BlMemoryExecuteProtected = 0x00000400,
363 
364  //
365  // Memory Allocation Attributes
366  //
367  BlMemoryLargePages = 0x00010000,
368  BlMemoryKernelRange = 0x00020000,
369  BlMemoryFixed = 0x00040000,
370  BlMemoryBelow1MB = 0x00080000,
373 
374  //
375  // Memory Type Attributes
376  //
377  BlMemoryRuntime = 0x01000000,
378  BlMemoryCoalesced = 0x02000000,
379  BlMemoryUpdate = 0x04000000,
380  BlMemoryNonFirmware = 0x08000000,
381  BlMemoryPersistent = 0x10000000,
382  BlMemorySpecial = 0x20000000,
383  BlMemoryFirmware = 0x80000000,
385  BlMemoryValidTypeAttributeMask = 0xFF000000,
enum _BL_MEMORY_ATTR BL_MEMORY_ATTR

◆ _BL_MEMORY_CLASS

Enumerator
BlLoaderClass 
BlApplicationClass 
BlSystemClass 

Definition at line 292 of file bl.h.

293 {
294  BlLoaderClass = 0xD,
enum _BL_MEMORY_CLASS BL_MEMORY_CLASS

◆ _BL_MEMORY_DESCRIPTOR_TYPE

Enumerator
BlMdPhysical 
BlMdVirtual 
BlMdTracker 

Definition at line 222 of file bl.h.

223 {
224  BlMdPhysical,
225  BlMdVirtual,
enum _BL_MEMORY_DESCRIPTOR_TYPE BL_MEMORY_DESCRIPTOR_TYPE

◆ _BL_MEMORY_TYPE

Enumerator
BlLoaderMemory 
BlLoaderDeviceMemory 
BlLoaderHeap 
BlLoaderPageDirectory 
BlLoaderReferencePage 
BlLoaderRamDisk 
BlLoaderArchData 
BlLoaderData 
BlLoaderRegistry 
BlLoaderBlockMemory 
BlLoaderSelfMap 
BlApplicationReserved 
BlApplicationData 
BlConventionalMemory 
BlUnusableMemory 
BlReservedMemory 
BlEfiBootMemory 
BlConventionalZeroedMemory 
BlEfiRuntimeCodeMemory 
BlAcpiReclaimMemory 
BlAcpiNvsMemory 
BlDeviceIoMemory 
BlDevicePortMemory 
BlPalMemory 
BlEfiRuntimeDataMemory 

Definition at line 302 of file bl.h.

303 {
304  //
305  // Loader Memory
306  //
307  BlLoaderMemory = 0xD0000002,
308  BlLoaderDeviceMemory = 0xD0000004,
309  BlLoaderHeap = 0xD0000005,
310  BlLoaderPageDirectory = 0xD0000006,
311  BlLoaderReferencePage = 0xD0000007,
312  BlLoaderRamDisk = 0xD0000008,
313  BlLoaderArchData = 0xD0000009,
314  BlLoaderData = 0xD000000A,
315  BlLoaderRegistry = 0xD000000B,
316  BlLoaderBlockMemory = 0xD000000C,
317  BlLoaderSelfMap = 0xD000000F,
318 
319  //
320  // Application Memory
321  //
322  BlApplicationReserved = 0xE0000001,
323  BlApplicationData = 0xE0000004,
324 
325  //
326  // System Memory
327  //
328  BlConventionalMemory = 0xF0000001,
329  BlUnusableMemory = 0xF0000002,
330  BlReservedMemory = 0xF0000003,
331  BlEfiBootMemory = 0xF0000004,
332  BlConventionalZeroedMemory = 0xF000005,
333  BlEfiRuntimeCodeMemory = 0xF0000006,
334  BlAcpiReclaimMemory = 0xF0000008,
335  BlAcpiNvsMemory = 0xF0000009,
336  BlDeviceIoMemory = 0xF000000A,
337  BlDevicePortMemory = 0xF000000B,
338  BlPalMemory = 0xF000000C,
339  BlEfiRuntimeDataMemory = 0xF000000E,
enum _BL_MEMORY_TYPE BL_MEMORY_TYPE

◆ _BL_MENU_POLICY

Enumerator
MenuPolicyLegacy 
MenuPolicyStandard 

Definition at line 216 of file bl.h.

217 {
218  MenuPolicyLegacy = 0,
enum _BL_MENU_POLICY BL_MENU_POLICY

◆ _BL_PARTITION_TYPE

Enumerator
GptPartition 
MbrPartition 
RawPartition 

Definition at line 273 of file bl.h.

274 {
275  GptPartition,
276  MbrPartition,
277  RawPartition,
enum _BL_PARTITION_TYPE BL_PARTITION_TYPE

◆ _BL_PATH_TYPE

Enumerator
InternalPath 
EfiPath 

Definition at line 283 of file bl.h.

284 {
285  InternalPath = 3,
286  EfiPath = 4
287 } BL_PATH_TYPE;
enum _BL_PATH_TYPE BL_PATH_TYPE
Definition: bl.h:286

◆ _BL_TRANSLATION_TYPE

Enumerator
BlNone 
BlVirtual 
BlPae 
BlMax 

Definition at line 229 of file bl.h.

230 {
231  BlNone,
232  BlVirtual,
233  BlPae,
234  BlMax
enum _BL_TRANSLATION_TYPE BL_TRANSLATION_TYPE
Definition: bl.h:232
Definition: bl.h:234
Definition: bl.h:231
Definition: bl.h:233

Function Documentation

◆ Archx86TransferTo32BitApplicationAsm()

VOID Archx86TransferTo32BitApplicationAsm ( VOID  )

Definition at line 51 of file arch.c.

52 {
53  EfiPrintf(L" Archx86TransferTo32BitApplicationAsm NOT IMPLEMENTED for this platform\r\n");
54 }
static const WCHAR L[]
Definition: oid.c:1250
VOID EfiPrintf(_In_ PWCHAR Format,...)
Definition: firmware.c:126

Referenced by ImgArchEfiStartBootApplication().

◆ BcInitialize()

NTSTATUS BcInitialize ( VOID  )

Definition at line 73 of file blkcache.c.

76 {
78 
80  if (!NT_SUCCESS(Status))
81  {
82  goto Quickie;
83  }
84 
86  if (BcpBlockAllocatorHandle == -1)
87  {
89  goto Quickie;
90  }
91 
93  if (Status >= 0)
94  {
95  return Status;
96  }
97 
98 Quickie:
99  EfiPrintf(L"Failure path not yet implemented\r\n");
100 #if 0
101  if (BcpHashTableId != -1)
102  {
103  BlHtDestroy(BcpHashTableId);
104  }
105  if (BcpBlockAllocatorHandle != -1)
106  {
108  }
109 #endif
110  return Status;
111 }
ULONG BcpBlockAllocatorHandle
Definition: blkcache.c:15
NTSTATUS BlHtCreate(_In_ ULONG Size, _In_ PBL_HASH_TABLE_HASH_FUNCTION HashFunction, _In_ PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction, _Out_ PULONG Id)
Definition: util.c:504
ULONG BcpHashTableId
Definition: blkcache.c:16
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS BlpMmDeleteBlockAllocator(_In_ ULONG BlockId)
Definition: blkalloc.c:88
NTSTATUS BlpMmCreateBlockAllocator(VOID)
Definition: blkalloc.c:213
NTSTATUS BlpIoRegisterDestroyRoutine(_In_ PBL_IO_DESTROY_ROUTINE DestroyRoutine)
Definition: io.c:21
NTSTATUS BcpDestroy(VOID)
Definition: blkcache.c:21
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
static const WCHAR L[]
Definition: oid.c:1250
Status
Definition: gdiplustypes.h:24
ULONG BcpHashFunction(_In_ PBL_HASH_ENTRY Entry, _In_ ULONG TableSize)
Definition: blkcache.c:45
VOID EfiPrintf(_In_ PWCHAR Format,...)
Definition: firmware.c:126
BOOLEAN BcpCompareKey(_In_ PBL_HASH_ENTRY Entry1, _In_ PBL_HASH_ENTRY Entry2)
Definition: blkcache.c:32

Referenced by BlockIopInitialize().

◆ BfClearScreen()

NTSTATUS BfClearScreen ( _In_ PBL_GRAPHICS_CONSOLE  Console)

Definition at line 158 of file font.c.

161 {
163 
164  /* Reset the cursor position */
165  Console->TextConsole.State.XPos = 0;
166  Console->TextConsole.State.YPos = 0;
167 
168  /* Fill the screen with the background color */
170  Console->TextConsole.State.BgColor);
171  if (!NT_SUCCESS(Status))
172  {
173  return Status;
174  }
175 
176  /* Check if the cursor should be visible */
177  if (Console->TextConsole.State.CursorVisible)
178  {
179  /* Load any fonts at this time */
181  {
183  }
184 
185  /* Switch the cursor to visible */
187  }
188  else
189  {
190  /* Nothing left to do */
192  }
193 
194  /* Return cursor flip result, if any */
195  return Status;
196 }
#define TRUE
Definition: types.h:120
LIST_ENTRY BfiDeferredListHead
Definition: font.c:15
LONG NTSTATUS
Definition: precomp.h:26
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
Definition: rtlfuncs.h:57
NTSTATUS ConsoleGraphicalClearPixels(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Color)
Definition: guicons.c:275
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
Status
Definition: gdiplustypes.h:24
NTSTATUS BfiFlipCursorCharacter(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ BOOLEAN Visible)
Definition: font.c:139
CConsole Console
NTSTATUS BfLoadDeferredFontFiles(VOID)
Definition: font.c:99
return STATUS_SUCCESS
Definition: btrfs.c:2777

Referenced by ConsoleGraphicalClearText().

◆ BfClearToEndOfLine()

NTSTATUS BfClearToEndOfLine ( _In_ PBL_GRAPHICS_CONSOLE  Console)

Definition at line 149 of file font.c.

152 {
153  /* not implemented */
154  return STATUS_NOT_IMPLEMENTED;
155 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225

Referenced by ConsoleGraphicalClearText().

◆ BfiFreeDeferredFontFile()

VOID BfiFreeDeferredFontFile ( _In_ PBL_DEFERRED_FONT_FILE  DeferredFontFile)

Definition at line 30 of file font.c.

33 {
34  /* Free the device copy if there was one */
35  if (DeferredFontFile->Device)
36  {
37  BlMmFreeHeap(DeferredFontFile->Device);
38  }
39 
40  /* Free the path copy if there was one */
41  if (DeferredFontFile->FontPath)
42  {
43  BlMmFreeHeap(DeferredFontFile->FontPath);
44  }
45 
46  /* Free the whole thing */
47  BlMmFreeHeap(DeferredFontFile);
48 }
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663

Referenced by BfLoadDeferredFontFiles(), BfLoadFontFile(), and BlpDisplayRegisterLocale().

◆ BfLoadDeferredFontFiles()

NTSTATUS BfLoadDeferredFontFiles ( VOID  )

Definition at line 99 of file font.c.

102 {
103  PLIST_ENTRY NextEntry;
104  PBL_DEFERRED_FONT_FILE DeferredFont;
105  NTSTATUS Status, LoadStatus;
106 
107  /* Assume empty list */
109 
110  /* Parse the list */
111  NextEntry = BfiDeferredListHead.Flink;
112  while (NextEntry != &BfiDeferredListHead)
113  {
114  /* Get the font */
115  DeferredFont = CONTAINING_RECORD(NextEntry, BL_DEFERRED_FONT_FILE, ListEntry);
116 
117  /* Move to the next entry and remove this one */
118  NextEntry = NextEntry->Flink;
119  RemoveEntryList(&DeferredFont->ListEntry);
120 
121  /* Load the font */
122  LoadStatus = BfiLoadFontFile(DeferredFont->Device,
123  DeferredFont->FontPath);
124  if (!NT_SUCCESS(LoadStatus))
125  {
126  /* Remember the load failure if there was one */
127  Status = LoadStatus;
128  }
129 
130  /* Free the deferred font */
131  BfiFreeDeferredFontFile(DeferredFont);
132  }
133 
134  /* Return load status */
135  return Status;
136 }
LIST_ENTRY BfiDeferredListHead
Definition: font.c:15
LONG NTSTATUS
Definition: precomp.h:26
VOID BfiFreeDeferredFontFile(_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
Definition: font.c:30
LIST_ENTRY ListEntry
Definition: bl.h:1300
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:105
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
PBL_DEVICE_DESCRIPTOR Device
Definition: bl.h:1302
struct _LIST_ENTRY * Flink
Definition: typedefs.h:119
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
NTSTATUS BfiLoadFontFile(_In_ PBL_DEVICE_DESCRIPTOR FontDevice, _In_ PWCHAR FontPath)
Definition: font.c:20
Definition: typedefs.h:117
Status
Definition: gdiplustypes.h:24
return STATUS_SUCCESS
Definition: btrfs.c:2777

Referenced by BfClearScreen(), and BlResourceFindMessage().

◆ BfLoadFontFile()

NTSTATUS BfLoadFontFile ( _In_ PBL_DEVICE_DESCRIPTOR  Device,
_In_ PWCHAR  FontPath 
)

Definition at line 51 of file font.c.

55 {
56  PBL_DEFERRED_FONT_FILE DeferredFont;
57  SIZE_T FontPathSize;
58 
59  /* Allocate the deferred font structure */
60  DeferredFont = (PBL_DEFERRED_FONT_FILE)BlMmAllocateHeap(sizeof(*DeferredFont));
61  if (!DeferredFont)
62  {
63  return STATUS_NO_MEMORY;
64  }
65 
66  /* Zero it out */
67  RtlZeroMemory(DeferredFont, sizeof(*DeferredFont));
68 
69  /* Allocate a copy for the file path */
70  FontPathSize = sizeof(WCHAR) * wcslen(FontPath) + sizeof(UNICODE_NULL);
71  DeferredFont->FontPath = (PWCHAR)BlMmAllocateHeap(FontPathSize);
72  if (!DeferredFont->FontPath)
73  {
74  BfiFreeDeferredFontFile(DeferredFont);
75  return STATUS_NO_MEMORY;
76  }
77 
78  /* Allocate a copy for the device */
79  DeferredFont->Device = BlMmAllocateHeap(Device->Size);
80  if (!DeferredFont->Device)
81  {
82  BfiFreeDeferredFontFile(DeferredFont);
83  return STATUS_NO_MEMORY;
84  }
85 
86  /* Copy the path and device */
87  RtlCopyMemory(DeferredFont->FontPath, FontPath, FontPathSize);
88  RtlCopyMemory(DeferredFont->Device,Device, Device->Size);
89 
90  /* Set pending flag? */
91  DeferredFont->Flags = 1;
92 
93  /* Insert it into the list */
95  return STATUS_SUCCESS;
96 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
_In_ PIRP _In_ PDEVICE_OBJECT Device
Definition: fatprocs.h:2020
LIST_ENTRY BfiDeferredListHead
Definition: font.c:15
VOID BfiFreeDeferredFontFile(_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
Definition: font.c:30
uint16_t * PWCHAR
Definition: typedefs.h:54
#define InsertTailList(ListHead, Entry)
LIST_ENTRY ListEntry
Definition: bl.h:1300
#define UNICODE_NULL
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
Definition: heapalloc.c:569
PBL_DEVICE_DESCRIPTOR Device
Definition: bl.h:1302
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _BL_DEFERRED_FONT_FILE * PBL_DEFERRED_FONT_FILE
ULONG_PTR SIZE_T
Definition: typedefs.h:78
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
return STATUS_SUCCESS
Definition: btrfs.c:2777
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)

Referenced by DsppLoadFontFile().

◆ BiCloseKey()

VOID BiCloseKey ( _In_ HANDLE  KeyHandle)

Definition at line 141 of file bootreg.c.

144 {
145  PBI_KEY_HIVE KeyHive;
146  PBI_KEY_OBJECT KeyObject;
147 
148  /* Get the key object and hive */
149  KeyObject = (PBI_KEY_OBJECT)KeyHandle;
150  KeyHive = KeyObject->KeyHive;
151 
152  /* Check if we have a hive, or name, or key node */
153  if ((KeyHive) || (KeyObject->KeyNode) || (KeyObject->KeyName))
154  {
155  /* Drop a reference, see if it's the last one */
157  if (!KeyHive->ReferenceCount)
158  {
159  /* Check if we should flush it */
160  if (KeyHive->Flags & BI_FLUSH_HIVE)
161  {
163  }
164 
165  /* Unmap the hive */
167 
168  /* Free the hive and hive path */
169  BlMmFreeHeap(KeyHive->FilePath);
170  BlMmFreeHeap(KeyHive);
171  }
172 
173  /* Check if a key name is present */
174  if (KeyObject->KeyName)
175  {
176  /* Free it */
177  BlMmFreeHeap(KeyObject->KeyName);
178  }
179  }
180 
181  /* Free the object */
182  BlMmFreeHeap(KeyObject);
183 }
LONG ReferenceCount
Definition: bootreg.c:27
PHBASE_BLOCK BaseBlock
Definition: bootreg.c:23
VOID BiFlushHive(_In_ HANDLE KeyHandle)
Definition: bootreg.c:131
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
PBL_FILE_PATH_DESCRIPTOR FilePath
Definition: bootreg.c:25
#define BI_FLUSH_HIVE
Definition: bootreg.c:16
VOID BiDereferenceHive(_In_ HANDLE KeyHandle)
Definition: bootreg.c:117
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663
ULONG Flags
Definition: bootreg.c:28
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
#define BL_MM_INCLUDE_MAPPED_ALLOCATED
Definition: bl.h:97
NTSTATUS MmPapFreePages(_In_ PVOID Address, _In_ ULONG WhichList)
Definition: pagealloc.c:1196
struct _BI_KEY_OBJECT * PBI_KEY_OBJECT
PCM_KEY_NODE KeyNode
Definition: bootreg.c:35
PWCHAR KeyName
Definition: bootreg.c:37

Referenced by BcdDeleteElement(), BcdOpenObject(), BiAddStoreFromFile(), BiDeleteKey(), BiEnumerateElements(), BiEnumerateSubElements(), BiGetObjectDescription(), BmCloseDataStore(), BmGetEntryDescription(), BmGetOptionList(), and BmPurgeOption().

◆ BiDeleteKey()

NTSTATUS BiDeleteKey ( _In_ HANDLE  KeyHandle)

Definition at line 886 of file bootreg.c.

889 {
891  PBI_KEY_OBJECT KeyObject;
892  PHHIVE Hive;
893  ULONG SubKeyCount, i;
894  PWCHAR* SubKeyList;
896 
897  /* Get the key object and hive */
898  KeyObject = (PBI_KEY_OBJECT)KeyHandle;
899  Hive = &KeyObject->KeyHive->Hive.Hive;
900 
901  /* Make sure the hive is writeable */
902  if (!(KeyObject->KeyHive->Flags & BI_HIVE_WRITEABLE))
903  {
905  }
906 
907  /* Enumerate all of the subkeys */
908  Status = BiEnumerateSubKeys(KeyHandle, &SubKeyList, &SubKeyCount);
909  if ((NT_SUCCESS(Status)) && (SubKeyCount > 0))
910  {
911  /* Loop through each one */
912  for (i = 0; i < SubKeyCount; i++)
913  {
914  /* Open a handle to it */
915  Status = BiOpenKey(KeyHandle, SubKeyList[i], &SubKeyHandle);
916  if (NT_SUCCESS(Status))
917  {
918  /* Recursively call us to delete it */
920  if (Status != STATUS_SUCCESS)
921  {
922  /* Close the key on failure */
924  }
925  }
926  }
927  }
928 
929  /* Check if we had a list of subkeys */
930  if (SubKeyList)
931  {
932  /* Free it */
933  BlMmFreeHeap(SubKeyList);
934  }
935 
936  /* Delete this key cell */
937  Status = CmpFreeKeyByCell(Hive, KeyObject->KeyCell, TRUE);
938  if (NT_SUCCESS(Status))
939  {
940  /* Mark the hive as requiring a flush */
941  KeyObject->KeyHive->Flags |= BI_FLUSH_HIVE;
943  }
944 
945  /* All done */
946  return Status;
947 }
#define TRUE
Definition: types.h:120
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
VOID BiCloseKey(_In_ HANDLE KeyHandle)
Definition: bootreg.c:141
LONG NTSTATUS
Definition: precomp.h:26
CMHIVE Hive
Definition: bootreg.c:26
#define BI_FLUSH_HIVE
Definition: bootreg.c:16
#define BI_HIVE_WRITEABLE
Definition: bootreg.c:17
NTSTATUS BiDeleteKey(_In_ HANDLE KeyHandle)
Definition: bootreg.c:886
uint16_t * PWCHAR
Definition: typedefs.h:54
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
ULONG Flags
Definition: bootreg.c:28
HHIVE Hive
Definition: cm.h:393
#define STATUS_MEDIA_WRITE_PROTECTED
Definition: udferr_usr.h:161
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
NTSTATUS BiOpenKey(_In_ HANDLE ParentHandle, _In_ PWCHAR KeyName, _Out_ PHANDLE Handle)
Definition: bootreg.c:186
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING _Out_ PNDIS_HANDLE SubKeyHandle
Definition: ndis.h:4723
NTSTATUS BiEnumerateSubKeys(_In_ HANDLE KeyHandle, _Out_ PWCHAR **SubKeyList, _Out_ PULONG SubKeyCount)
Definition: bootreg.c:717
struct _BI_KEY_OBJECT * PBI_KEY_OBJECT
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI CmpFreeKeyByCell(IN PHHIVE Hive, IN HCELL_INDEX Cell, IN BOOLEAN Unlink)
Definition: cmkeydel.c:159
unsigned int ULONG
Definition: retypes.h:1
HCELL_INDEX KeyCell
Definition: bootreg.c:36
return STATUS_SUCCESS
Definition: btrfs.c:2777

Referenced by BcdDeleteElement().

◆ BiDereferenceHive()

VOID BiDereferenceHive ( _In_ HANDLE  KeyHandle)

Definition at line 117 of file bootreg.c.

120 {
121  PBI_KEY_OBJECT KeyObject;
122 
123  /* Get the key object */
124  KeyObject = (PBI_KEY_OBJECT)KeyHandle;
125 
126  /* Drop a reference on the parent hive */
127  --KeyObject->KeyHive->ReferenceCount;
128 }
LONG ReferenceCount
Definition: bootreg.c:27
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
struct _BI_KEY_OBJECT * PBI_KEY_OBJECT

Referenced by BiAddStoreFromFile(), BiCloseKey(), and BmCloseDataStore().

◆ BiEnumerateSubKeys()

NTSTATUS BiEnumerateSubKeys ( _In_ HANDLE  KeyHandle,
_Out_ PWCHAR **  SubKeyList,
_Out_ PULONG  SubKeyCount 
)

Definition at line 717 of file bootreg.c.

722 {
723  PCM_KEY_NODE KeyNode, Node;
724  PBI_KEY_OBJECT KeyObject;
725  ULONG KeyCount;
726  ULONG NameLength, NewTotalNameLength, FinalLength, TotalNameLength;
727  PHHIVE Hive;
728  PWCHAR KeyName, NameEnd;
729  HCELL_INDEX CellIndex;
730  PWCHAR* SubKeys;
732  ULONG i;
733 
734  /* Get the key object, node, and hive */
735  KeyObject = (PBI_KEY_OBJECT)KeyHandle;
736  KeyNode = KeyObject->KeyNode;
737  Hive = &KeyObject->KeyHive->Hive.Hive;
738 
739  /* Assume it's empty */
740  *SubKeyList = 0;
741  *SubKeyCount = 0;
742 
743  /* Initialize locals */
744  KeyCount = 0;
745  SubKeys = 0;
746  TotalNameLength = 0;
747 
748  /* Find the first subkey cell index */
749  CellIndex = CmpFindSubKeyByNumber(Hive, KeyNode, KeyCount);
750  while (CellIndex != HCELL_NIL)
751  {
752  /* Move to the next one */
753  KeyCount++;
754 
755  /* Get the cell data for it */
756  Node = (PCM_KEY_NODE)HvGetCell(Hive, CellIndex);
757  if (!Node)
758  {
760  }
761 
762  /* Check if the value is compressed */
763  if (Node->Flags & KEY_COMP_NAME)
764  {
765  /* Get the compressed name size */
766  NameLength = CmpCompressedNameSize(Node->Name, Node->NameLength);
767  }
768  else
769  {
770  /* Get the real size */
771  NameLength = Node->NameLength;
772  }
773 
774  /* Add up the new length, protecting against overflow */
775  NewTotalNameLength = TotalNameLength + NameLength + sizeof(UNICODE_NULL);
776  if (NewTotalNameLength < TotalNameLength)
777  {
779  goto Quickie;
780  }
781 
782  /* We're good, use the new length */
783  TotalNameLength = NewTotalNameLength;
784 
785  /* Find the next subkey cell index */
786  CellIndex = CmpFindSubKeyByNumber(Hive, KeyNode, KeyCount);
787  }
788 
789  /* Were there no keys? We're done, if so */
790  if (!KeyCount)
791  {
792  return STATUS_SUCCESS;
793  }
794 
795  /* Safely compute the size of the array needed */
796  Status = RtlULongLongToULong(sizeof(PWCHAR) * KeyCount, &FinalLength);
797  if (!NT_SUCCESS(Status))
798  {
799  goto Quickie;
800  }
801 
802  /* Safely add that to the name length */
803  Status = RtlULongAdd(TotalNameLength, FinalLength, &FinalLength);
804  if (!NT_SUCCESS(Status))
805  {
806  goto Quickie;
807  }
808 
809  /* Allocate an array big enough for the names and pointers */
810  SubKeys = BlMmAllocateHeap(FinalLength);
811  if (!SubKeys)
812  {
814  goto Quickie;
815  }
816 
817  /* Go over each key again */
818  NameEnd = (PWCHAR)&SubKeys[KeyCount];
819  for (i = 0; i < KeyCount; i++)
820  {
821  /* Get the cell index for this subkey */
822  CellIndex = CmpFindSubKeyByNumber(Hive, KeyNode, i);
823  if (CellIndex == HCELL_NIL)
824  {
825  break;
826  }
827 
828  /* Get the cell data for it */
829  Node = HvGetCell(Hive, CellIndex);
830  if (!Node)
831  {
833  goto Quickie;
834  }
835 
836  /* Check if the value is compressed */
837  KeyName = Node->Name;
838  if (Node->Flags & KEY_COMP_NAME)
839  {
840  /* Get the compressed name size */
841  NameLength = CmpCompressedNameSize(KeyName, Node->NameLength);
842  CmpCopyCompressedName(NameEnd, NameLength, KeyName, Node->NameLength);
843  }
844  else
845  {
846  /* Get the real size */
847  NameLength = Node->NameLength;
848  RtlCopyMemory(NameEnd, KeyName, NameLength);
849  }
850 
851  /* Move the name buffer to the next spot, and NULL-terminate */
852  SubKeys[i] = NameEnd;
853  NameEnd += (NameLength / sizeof(WCHAR));
854  *NameEnd = UNICODE_NULL;
855 
856  /* Keep going */
857  NameEnd++;
858  }
859 
860  /* Check if the subkeys were empty */
861  if (i == 0)
862  {
863  /* They disappeared in the middle of enumeration */
865  goto Quickie;
866  }
867 
868  /* Return the count and the array of names */
869  *SubKeyList = SubKeys;
870  *SubKeyCount = i;
871  SubKeys = NULL;
873 
874 Quickie:
875  /* On the failure path, free the subkeys if any exist */
876  if (SubKeys)
877  {
878  BlMmFreeHeap(SubKeys);
879  }
880 
881  /* All done, return the result */
882  return Status;
883 }
#define KEY_COMP_NAME
Definition: cmdata.h:35
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
Definition: ndis.h:4711
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
LONG NTSTATUS
Definition: precomp.h:26
HCELL_INDEX NTAPI CmpFindSubKeyByNumber(IN PHHIVE Hive, IN PCM_KEY_NODE Node, IN ULONG Number)
Definition: cmindex.c:600
#define HCELL_NIL
Definition: hivedata.h:85
CMHIVE Hive
Definition: bootreg.c:26
uint16_t * PWCHAR
Definition: typedefs.h:54
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define UNICODE_NULL
union node Node
Definition: types.h:1255
VOID NTAPI CmpCopyCompressedName(OUT PWCHAR Destination, IN ULONG DestinationLength, IN PWCHAR Source, IN ULONG SourceLength)
Definition: cmname.c:56
PVOID CMAPI HvGetCell(PHHIVE RegistryHive, HCELL_INDEX CellOffset)
Definition: hivecell.c:67
smooth NULL
Definition: ftsmooth.c:416
struct _CM_KEY_NODE * PCM_KEY_NODE
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
Definition: heapalloc.c:569
HHIVE Hive
Definition: cm.h:393
#define STATUS_REGISTRY_CORRUPT
Definition: ntstatus.h:554
#define STATUS_NAME_TOO_LONG
Definition: ntstatus.h:484
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
ULONG HCELL_INDEX
Definition: hivedata.h:80
struct _BI_KEY_OBJECT * PBI_KEY_OBJECT
Status
Definition: gdiplustypes.h:24
#define STATUS_OBJECT_NAME_NOT_FOUND
Definition: udferr_usr.h:149
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
PCM_KEY_NODE KeyNode
Definition: bootreg.c:35
unsigned int ULONG
Definition: retypes.h:1
return STATUS_SUCCESS
Definition: btrfs.c:2777
USHORT NTAPI CmpCompressedNameSize(IN PWCHAR Name, IN ULONG Length)
Definition: cmname.c:95
Definition: dlist.c:348

Referenced by BiDeleteKey(), and BiEnumerateElements().

◆ BiGetRegistryValue()

NTSTATUS BiGetRegistryValue ( _In_ HANDLE  KeyHandle,
_In_ PWCHAR  ValueName,
_In_ ULONG  Type,
_Out_ PVOID Buffer,
_Out_ PULONG  ValueLength 
)

Definition at line 651 of file bootreg.c.

658 {
659  PCM_KEY_NODE KeyNode;
660  PHHIVE KeyHive;
661  UNICODE_STRING ValueString;
662  PBI_KEY_OBJECT KeyObject;
663  PCM_KEY_VALUE KeyValue;
664  PVOID ValueCopy;
665  ULONG Size;
666  HCELL_INDEX CellIndex;
668 
669  /* Get the key object, node,and hive */
670  KeyObject = (PBI_KEY_OBJECT)KeyHandle;
671  KeyNode = KeyObject->KeyNode;
672  KeyHive = &KeyObject->KeyHive->Hive.Hive;
673 
674  /* Find the value cell index in the list of values */
675  RtlInitUnicodeString(&ValueString, ValueName);
676  CmpFindNameInList(KeyHive,
677  &KeyNode->ValueList,
678  &ValueString,
679  NULL,
680  &CellIndex);
681  if (CellIndex == HCELL_NIL)
682  {
684  }
685 
686  /* Get the cell data for it */
687  KeyValue = (PCM_KEY_VALUE)HvGetCell(KeyHive, CellIndex);
688  if (!KeyValue)
689  {
691  }
692 
693  /* Make sure the type matches */
694  if (KeyValue->Type != Type)
695  {
697  }
698 
699  /* Now get the data cell */
700  ValueData = CmpValueToData(KeyHive, KeyValue, &Size);
701 
702  /* Make a copy of it */
703  ValueCopy = BlMmAllocateHeap(Size);
704  if (!ValueCopy)
705  {
706  return STATUS_NO_MEMORY;
707  }
708 
709  /* Copy it in the buffer, and return it and its size */
710  RtlCopyMemory(ValueCopy, ValueData, Size);
711  *Buffer = ValueCopy;
712  *ValueLength = Size;
713  return STATUS_SUCCESS;
714 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
Type
Definition: Type.h:6
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
#define HCELL_NIL
Definition: hivedata.h:85
CMHIVE Hive
Definition: bootreg.c:26
BOOLEAN NTAPI CmpFindNameInList(IN PHHIVE Hive, IN PCHILD_LIST ChildList, IN PUNICODE_STRING Name, OUT PULONG ChildIndex OPTIONAL, OUT PHCELL_INDEX CellIndex)
Definition: cmname.c:149
_In_ PUNICODE_STRING ValueName
Definition: cmfuncs.h:264
PVOID CMAPI HvGetCell(PHHIVE RegistryHive, HCELL_INDEX CellOffset)
Definition: hivecell.c:67
smooth NULL
Definition: ftsmooth.c:416
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
Definition: heapalloc.c:569
HHIVE Hive
Definition: cm.h:393
Definition: bufpool.h:45
#define STATUS_REGISTRY_CORRUPT
Definition: ntstatus.h:554
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
CHILD_LIST ValueList
Definition: cmdata.h:103
PCELL_DATA NTAPI CmpValueToData(IN PHHIVE Hive, IN PCM_KEY_VALUE Value, OUT PULONG Length)
Definition: cmvalue.c:167
#define STATUS_OBJECT_TYPE_MISMATCH
Definition: ntstatus.h:259
ULONG HCELL_INDEX
Definition: hivedata.h:80
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:311
_In_ GUID _In_ PVOID _In_ ULONG ValueLength
Definition: hubbusif.h:311
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
struct _BI_KEY_OBJECT * PBI_KEY_OBJECT
#define STATUS_OBJECT_NAME_NOT_FOUND
Definition: udferr_usr.h:149
struct _CM_KEY_VALUE * PCM_KEY_VALUE
ULONG Type
Definition: cmdata.h:128
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
PCM_KEY_NODE KeyNode
Definition: bootreg.c:35
unsigned int ULONG
Definition: retypes.h:1
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
return STATUS_SUCCESS
Definition: btrfs.c:2777

Referenced by BiEnumerateElements(), and BiGetObjectDescription().

◆ BiLoadHive()

NTSTATUS BiLoadHive ( _In_ PBL_FILE_PATH_DESCRIPTOR  FilePath,
_Out_ PHANDLE  HiveHandle 
)

Definition at line 363 of file bootreg.c.

367 {
368  ULONG DeviceId;
369  PHBASE_BLOCK BaseBlock, NewBaseBlock;
370  PBI_KEY_OBJECT KeyObject;
372  PBL_DEVICE_DESCRIPTOR BcdDevice;
373  ULONG PathLength, DeviceLength, HiveSize, HiveLength, NewHiveSize;
374  PWCHAR HiveName, LogName;
375  BOOLEAN HaveWriteAccess;
377  PVOID LogData;
378  PHHIVE Hive;
379  UNICODE_STRING KeyString;
381  HCELL_INDEX CellIndex;
382 
383  /* Initialize variables */
384  DeviceId = -1;
385  BaseBlock = NULL;
386  BcdHive = NULL;
387  KeyObject = NULL;
388  LogData = NULL;
389  LogName = NULL;
390 
391  /* Initialize the crypto seed */
393  {
394  HvSymcryptSeed = 0x82EF4D887A4E55C5;
396  }
397 
398  /* Extract and validate the input path */
399  BcdDevice = (PBL_DEVICE_DESCRIPTOR)&FilePath->Path;
400  PathLength = FilePath->Length;
401  DeviceLength = BcdDevice->Size;
402  HiveName = (PWCHAR)((ULONG_PTR)BcdDevice + BcdDevice->Size);
403  if (PathLength <= DeviceLength)
404  {
405  /* Doesn't make sense, bail out */
407  goto Quickie;
408  }
409 
410  /* Attempt to open the underlying device for RW access */
411  HaveWriteAccess = TRUE;
412  Status = BlpDeviceOpen(BcdDevice,
414  0,
415  &DeviceId);
416  if (!NT_SUCCESS(Status))
417  {
418  /* Try for RO access instead */
419  HaveWriteAccess = FALSE;
420  Status = BlpDeviceOpen(BcdDevice, BL_DEVICE_READ_ACCESS, 0, &DeviceId);
421  if (!NT_SUCCESS(Status))
422  {
423  /* No access at all -- bail out */
424  goto Quickie;
425  }
426  }
427 
428  /* Now try to load the hive on disk */
431  HiveName,
432  (PVOID*)&BaseBlock,
433  &HiveSize,
434  0,
435  FALSE,
436  NULL,
437  NULL);
438  if (!NT_SUCCESS(Status))
439  {
440  EfiPrintf(L"Hive read failure: % lx\r\n", Status);
441  goto Quickie;
442  }
443 
444  /* Allocate a hive structure */
445  BcdHive = BlMmAllocateHeap(sizeof(*BcdHive));
446  if (!BcdHive)
447  {
449  goto Quickie;
450  }
451 
452  /* Initialize it */
453  RtlZeroMemory(BcdHive, sizeof(*BcdHive));
454  BcdHive->BaseBlock = BaseBlock;
455  BcdHive->HiveSize = HiveSize;
456  if (HaveWriteAccess)
457  {
459  }
460 
461  /* Make sure the hive was at least one bin long */
462  if (HiveSize < sizeof(*BaseBlock))
463  {
465  goto Quickie;
466  }
467 
468  /* Make sure the hive contents are at least one bin long */
469  HiveLength = BaseBlock->Length;
470  if (BaseBlock->Length < sizeof(*BaseBlock))
471  {
473  goto Quickie;
474  }
475 
476  /* Validate the initial bin (the base block) */
477  if (!HvIsInPlaceBaseBlockValid(BaseBlock))
478  {
479  EfiPrintf(L"Recovery not implemented\r\n");
481  goto Quickie;
482  }
483 
484  /* Check if there's log recovery that needs to happen */
485  if (BaseBlock->Sequence1 != BaseBlock->Sequence2)
486  {
487  EfiPrintf(L"Log fix not implemented: %lx %lx\r\n");
489  goto Quickie;
490  }
491 
492  /*
493  * Check if the whole hive doesn't fit in the buffer.
494  * Note: HiveLength does not include the size of the baseblock itself
495  */
496  if (HiveSize < (HiveLength + sizeof(*BaseBlock)))
497  {
498  EfiPrintf(L"Need bigger hive buffer path\r\n");
499 
500  /* Allocate a slightly bigger buffer */
501  NewHiveSize = HiveLength + sizeof(*BaseBlock);
502  Status = MmPapAllocatePagesInRange((PVOID*)&NewBaseBlock,
504  NewHiveSize >> PAGE_SHIFT,
505  0,
506  0,
507  NULL,
508  0);
509  if (!NT_SUCCESS(Status))
510  {
511  goto Quickie;
512  }
513 
514  /* Copy the current data in there */
515  RtlCopyMemory(NewBaseBlock, BaseBlock, HiveSize);
516 
517  /* Free the old data */
519 
520  /* Update our pointers */
521  BaseBlock = NewBaseBlock;
522  HiveSize = NewHiveSize;
523  BcdHive->BaseBlock = BaseBlock;
524  BcdHive->HiveSize = HiveSize;
525  }
526 
527  /* Check if any log stuff needs to happen */
528  if (LogData)
529  {
530  EfiPrintf(L"Log fix not implemented: %lx %lx\r\n");
532  goto Quickie;
533  }
534 
535  /* Call Hv to setup the hive library */
537  if (!NT_SUCCESS(Status))
538  {
539  goto Quickie;
540  }
541 
542  /* Now get the root node */
543  Hive = &BcdHive->Hive.Hive;
545  if (!RootNode)
546  {
548  goto Quickie;
549  }
550 
551  /* Find the Objects subkey under it to see if it's a real BCD hive */
552  RtlInitUnicodeString(&KeyString, L"Objects");
553  CellIndex = CmpFindSubKeyByName(Hive, RootNode, &KeyString);
554  if (CellIndex == HCELL_NIL)
555  {
556  EfiPrintf(L"No OBJECTS subkey found!\r\n");
558  goto Quickie;
559  }
560 
561  /* This is a valid BCD hive, store its root node here */
562  BcdHive->RootNode = RootNode;
563 
564  /* Allocate a copy of the file path */
565  BcdHive->FilePath = BlMmAllocateHeap(FilePath->Length);
566  if (!BcdHive->FilePath)
567  {
569  goto Quickie;
570  }
571 
572  /* Make a copy of it */
573  RtlCopyMemory(BcdHive->FilePath, FilePath, FilePath->Length);
574 
575  /* Create a key object to describe the rot */
576  KeyObject = BlMmAllocateHeap(sizeof(*KeyObject));
577  if (!KeyObject)
578  {
580  goto Quickie;
581  }
582 
583  /* Fill out the details */
584  KeyObject->KeyNode = RootNode;
585  KeyObject->KeyHive = BcdHive;
586  KeyObject->KeyName = NULL;
587  KeyObject->KeyCell = Hive->BaseBlock->RootCell;
588 
589  /* One reference for the key object, plus one lifetime reference */
590  BcdHive->ReferenceCount = 2;
591 
592  /* This is the hive handle */
593  *HiveHandle = KeyObject;
594 
595  /* We're all good */
597 
598 Quickie:
599  /* If we had a log name, free it */
600  if (LogName)
601  {
602  BlMmFreeHeap(LogName);
603  }
604 
605  /* If we had logging data, free it */
606  if (LogData)
607  {
609  }
610 
611  /* Check if this is the failure path */
612  if (!NT_SUCCESS(Status))
613  {
614  /* If we mapped the hive, free it */
615  if (BaseBlock)
616  {
618  }
619 
620  /* If we opened the device, close it */
621  if (DeviceId != -1)
622  {
623  BlDeviceClose(DeviceId);
624  }
625 
626  /* Did we create a hive object? */
627  if (BcdHive)
628  {
629  /* Free the file path if we made a copy of it */
630  if (BcdHive->FilePath)
631  {
632  BlMmFreeHeap(BcdHive->FilePath);
633  }
634 
635  /* Free the hive itself */
637  }
638 
639  /* Finally, free the root key object if we created one */
640  if (KeyObject)
641  {
642  BlMmFreeHeap(KeyObject);
643  }
644  }
645 
646  /* Return the final status */
647  return Status;
648 }
#define PAGE_SHIFT
Definition: env_spec_w32.h:45
#define TRUE
Definition: types.h:120
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
ULONG Sequence2
Definition: hivedata.h:123
NTSTATUS BlDeviceClose(_In_ ULONG DeviceId)
Definition: device.c:2073
#define BL_DEVICE_WRITE_ACCESS
Definition: bl.h:154
NTSTATUS BlImgLoadImageWithProgress2(_In_ ULONG DeviceId, _In_ BL_MEMORY_TYPE MemoryType, _In_ PWCHAR FileName, _Inout_ PVOID *MappedBase, _Inout_ PULONG MappedSize, _In_ ULONG ImageFlags, _In_ BOOLEAN ShowProgress, _Out_opt_ PUCHAR *HashBuffer, _Out_opt_ PULONG HashSize)
Definition: image.c:358
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
PHBASE_BLOCK BaseBlock
Definition: hivedata.h:303
LONG NTSTATUS
Definition: precomp.h:26
#define HCELL_NIL
Definition: hivedata.h:85
#define BI_HIVE_WRITEABLE
Definition: bootreg.c:17
NTSTATUS BiInitializeAndValidateHive(_In_ PBI_KEY_HIVE Hive)
Definition: bootreg.c:316
ULONG Flags
Definition: cm.h:430
uint16_t * PWCHAR
Definition: typedefs.h:54
ULONG Length
Definition: hivedata.h:146
static USHORT PathLength
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663
PCWSTR FilePath
ULONG Sequence1
Definition: hivedata.h:122
static CMHIVE BcdHive
Definition: registry.c:62
PVOID CMAPI HvGetCell(PHHIVE RegistryHive, HCELL_INDEX CellOffset)
Definition: hivecell.c:67
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
struct _CM_KEY_NODE * PCM_KEY_NODE
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
Definition: heapalloc.c:569
HHIVE Hive
Definition: cm.h:393
#define STATUS_REGISTRY_CORRUPT
Definition: ntstatus.h:554
PBI_KEY_HIVE KeyHive
Definition: bootreg.c:34
BOOLEAN BiHiveHashLibraryInitialized
Definition: bootreg.c:42
#define BL_MM_INCLUDE_MAPPED_ALLOCATED
Definition: bl.h:97
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
ULONG HCELL_INDEX
Definition: hivedata.h:80
static const WCHAR L[]
Definition: oid.c:1250
NTSTATUS MmPapFreePages(_In_ PVOID Address, _In_ ULONG WhichList)
Definition: pagealloc.c:1196
HCELL_INDEX RootCell
Definition: hivedata.h:143
Status
Definition: gdiplustypes.h:24
struct _BL_DEVICE_DESCRIPTOR * PBL_DEVICE_DESCRIPTOR
#define BL_DEVICE_READ_ACCESS
Definition: bl.h:153
#define STATUS_OBJECT_NAME_NOT_FOUND
Definition: udferr_usr.h:149
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
VOID EfiPrintf(_In_ PWCHAR Format,...)
Definition: firmware.c:126
PCM_KEY_NODE KeyNode
Definition: bootreg.c:35
ULONGLONG HvSymcryptSeed
Definition: bootreg.c:43
PWCHAR KeyName
Definition: bootreg.c:37
unsigned int ULONG
Definition: retypes.h:1
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
#define ULONG_PTR
Definition: config.h:101
HCELL_INDEX KeyCell
Definition: bootreg.c:36