ReactOS 0.4.15-dev-7788-g1ad9096
bl.h
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING.ARM in the top level directory
3 * PROJECT: ReactOS UEFI Boot Library
4 * FILE: boot/environ/include/bl.h
5 * PURPOSE: Main Boot Library Header
6 * PROGRAMMER: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9#ifndef _BL_H
10#define _BL_H
11
12/* INCLUDES ******************************************************************/
13
14/* C Headers */
15#include <stdlib.h>
16#include <stdio.h>
17#include <wchar.h>
18
19/* NT Base Headers */
20#include <ntifs.h>
21
22/* NDK Headers */
23#include <ntndk.h>
24
25/* NT SafeInt Header */
26#include <ntintsafe.h>
27
28/* PE Headers */
29#include <ntimage.h>
30
31/* ACPI Headers */
32#include <drivers/acpi/acpi.h>
33
34/* UEFI Headers */
35#include <Uefi.h>
36#include <DevicePath.h>
37#include <LoadedImage.h>
38#include <GraphicsOutput.h>
39#include <UgaDraw.h>
40#include <BlockIo.h>
41#include <Acpi.h>
42#include <GlobalVariable.h>
43
44/* Registry Headers */
45#include <cmlib.h>
46
47/* DEFINES *******************************************************************/
48
49DEFINE_GUID(BadMemoryGuid, 0x54B8275B, 0xD431, 0x473F, 0xAC, 0xFB, 0xE5, 0x36, 0xA0, 0x84, 0x94, 0xA3);
50
51#define BL_APPLICATION_FLAG_CONVERTED_FROM_EFI 0x01
52
53#define BL_APP_ENTRY_SIGNATURE "BTAPENT"
54
55#define BOOT_APPLICATION_SIGNATURE_1 'TOOB'
56#define BOOT_APPLICATION_SIGNATURE_2 ' PPA'
57
58#define BOOT_MEMORY_TRANSLATION_TYPE_PHYSICAL 0
59#define BOOT_MEMORY_TRANSLATION_TYPE_VIRTUAL 1
60
61#define BOOT_APPLICATION_VERSION 2
62#define BL_MEMORY_DATA_VERSION 1
63#define BL_RETURN_ARGUMENTS_VERSION 1
64#define BL_FIRMWARE_DESCRIPTOR_VERSION 2
65
66#define BL_RETURN_ARGUMENTS_NO_PAE_FLAG 0x40
67
68#define BL_APPLICATION_ENTRY_FLAG_NO_GUID 0x01
69#define BL_APPLICATION_ENTRY_BCD_OPTIONS_INTERNAL 0x02
70#define BL_APPLICATION_ENTRY_WINLOAD 0x04
71#define BL_APPLICATION_ENTRY_STARTUP 0x08
72#define BL_APPLICATION_ENTRY_REBOOT_ON_ERROR 0x20
73#define BL_APPLICATION_ENTRY_NTLDR 0x40
74#define BL_APPLICATION_ENTRY_BCD_OPTIONS_EXTERNAL 0x80
75#define BL_APPLICATION_ENTRY_WINRESUME 0x100
76#define BL_APPLICATION_ENTRY_SETUPLDR 0x200
77#define BL_APPLICATION_ENTRY_BOOTSECTOR 0x400
78#define BL_APPLICATION_ENTRY_BOOTMGR 0x1000
79#define BL_APPLICATION_ENTRY_DISPLAY_ORDER 0x800000
80#define BL_APPLICATION_ENTRY_FIXED_SEQUENCE 0x20000000
81#define BL_APPLICATION_ENTRY_RECOVERY 0x40000000
82
83#define BL_CONTEXT_PAGING_ON 1
84#define BL_CONTEXT_INTERRUPTS_ON 2
85
86#define BL_MM_FLAG_USE_FIRMWARE_FOR_MEMORY_MAP_BUFFERS 0x01
87#define BL_MM_FLAG_REQUEST_COALESCING 0x02
88
89#define BL_MM_ADD_DESCRIPTOR_COALESCE_FLAG 0x01
90#define BL_MM_ADD_DESCRIPTOR_TRUNCATE_FLAG 0x02
91#define BL_MM_ADD_DESCRIPTOR_NEVER_COALESCE_FLAG 0x10
92#define BL_MM_ADD_DESCRIPTOR_NEVER_TRUNCATE_FLAG 0x20
93#define BL_MM_ADD_DESCRIPTOR_ALLOCATE_FLAG 0x1000
94#define BL_MM_ADD_DESCRIPTOR_UPDATE_LIST_POINTER_FLAG 0x2000
95
96#define BL_MM_INCLUDE_MAPPED_ALLOCATED 0x01
97#define BL_MM_INCLUDE_MAPPED_UNALLOCATED 0x02
98#define BL_MM_INCLUDE_UNMAPPED_ALLOCATED 0x04
99#define BL_MM_INCLUDE_UNMAPPED_UNALLOCATED 0x08
100#define BL_MM_INCLUDE_RESERVED_ALLOCATED 0x10
101#define BL_MM_INCLUDE_BAD_MEMORY 0x20
102#define BL_MM_INCLUDE_FIRMWARE_MEMORY 0x40
103#define BL_MM_INCLUDE_TRUNCATED_MEMORY 0x80
104#define BL_MM_INCLUDE_PERSISTENT_MEMORY 0x100
105#define BL_MM_INCLUDE_FIRMWARE_MEMORY_2 0x200
106
107#define BL_MM_INCLUDE_NO_FIRMWARE_MEMORY (BL_MM_INCLUDE_PERSISTENT_MEMORY | \
108 BL_MM_INCLUDE_TRUNCATED_MEMORY | \
109 BL_MM_INCLUDE_BAD_MEMORY | \
110 BL_MM_INCLUDE_RESERVED_ALLOCATED | \
111 BL_MM_INCLUDE_UNMAPPED_UNALLOCATED | \
112 BL_MM_INCLUDE_UNMAPPED_ALLOCATED | \
113 BL_MM_INCLUDE_MAPPED_UNALLOCATED | \
114 BL_MM_INCLUDE_MAPPED_ALLOCATED)
116
117#define BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY (BL_MM_INCLUDE_FIRMWARE_MEMORY_2 | \
118 BL_MM_INCLUDE_FIRMWARE_MEMORY)
120
121#define BL_MM_REQUEST_DEFAULT_TYPE 1
122#define BL_MM_REQUEST_TOP_DOWN_TYPE 2
123
124#define BL_MM_REMOVE_PHYSICAL_REGION_FLAG 0x40000000
125#define BL_MM_REMOVE_VIRTUAL_REGION_FLAG 0x80000000
126
127#define BL_LIBRARY_FLAG_NO_DISPLAY 0x01
128#define BL_LIBRARY_FLAG_REINITIALIZE 0x02
129#define BL_LIBRARY_FLAG_REINITIALIZE_ALL 0x04
130#define BL_LIBRARY_FLAG_ZERO_HEAP_ALLOCATIONS_ON_FREE 0x10
131#define BL_LIBRARY_FLAG_INITIALIZATION_COMPLETED 0x20
132#define BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE 0x800
133
134#define BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG 0x01
135#define BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG 0x02
136
137#define BL_HT_VALUE_IS_INLINE 0x01
138
139#define BL_FS_REGISTER_AT_HEAD_FLAG 1
140
141#define BL_BLOCK_DEVICE_REMOVABLE_FLAG 0x01
142#define BL_BLOCK_DEVICE_PRESENT_FLAG 0x02
143#define BL_BLOCK_DEVICE_VIRTUAL_FLAG 0x04
144
145#define BL_MEMORY_CLASS_SHIFT 28
146
147#define BL_FILE_READ_ACCESS 0x01
148#define BL_FILE_WRITE_ACCESS 0x02
149#define BL_DIRECTORY_ACCESS 0x04
150#define BL_UNKNOWN_ACCESS 0x10
151
152#define BL_DEVICE_READ_ACCESS 0x01
153#define BL_DEVICE_WRITE_ACCESS 0x02
154
155#define BL_DEVICE_ENTRY_OPENED 0x01
156#define BL_DEVICE_ENTRY_READ_ACCESS 0x02
157#define BL_DEVICE_ENTRY_WRITE_ACCESS 0x04
158
159#define BL_FILE_ENTRY_OPENED 0x01
160#define BL_FILE_ENTRY_READ_ACCESS 0x02
161#define BL_FILE_ENTRY_WRITE_ACCESS 0x04
162#define BL_FILE_ENTRY_UNKNOWN_ACCESS 0x10
163#define BL_FILE_ENTRY_DIRECTORY 0x10000
164
165#define BL_ETFS_FILE_ENTRY_DIRECTORY 0x01
166
167#define BL_IMG_VALID_FILE 0x01
168#define BL_IMG_MEMORY_FILE 0x02
169#define BL_IMG_REMOTE_FILE 0x04
170
171#define BL_LOAD_IMG_VIRTUAL_BUFFER 0x01
172#define BL_LOAD_IMG_EXISTING_BUFFER 0x04
173#define BL_LOAD_IMG_UNKNOWN_BUFFER_FLAG 0x08
174#define BL_LOAD_IMG_COMPUTE_SIGNATURE 0x10
175#define BL_LOAD_IMG_COMPUTE_HASH 0x40000
176
177#define BL_LOAD_PE_IMG_VIRTUAL_BUFFER BL_LOAD_IMG_VIRTUAL_BUFFER
178#define BL_LOAD_PE_IMG_CHECK_MACHINE 0x02
179#define BL_LOAD_PE_IMG_EXISTING_BUFFER BL_LOAD_IMG_EXISTING_BUFFER
180#define BL_LOAD_PE_IMG_COMPUTE_HASH 0x10
181#define BL_LOAD_PE_IMG_CHECK_SUBSYSTEM 0x80
182#define BL_LOAD_PE_IMG_SKIP_RELOCATIONS 0x100
183#define BL_LOAD_PE_IMG_CHECK_FORCED_INTEGRITY 0x200
184#define BL_LOAD_PE_IMG_IGNORE_CHECKSUM_MISMATCH 0x10000
185#define BL_LOAD_PE_IMG_VALIDATE_ORIGINAL_FILENAME 0x400000
186
187#define BL_UTL_CHECKSUM_COMPLEMENT 0x10000
188#define BL_UTL_CHECKSUM_ROTATE 0x20000
189#define BL_UTL_CHECKSUM_NEGATE 0x40000
190#define BL_UTL_CHECKSUM_UCHAR_BUFFER 0x01
191#define BL_UTL_CHECKSUM_USHORT_BUFFER 0x02
192
193/* ENUMERATIONS **************************************************************/
194
195typedef enum _BL_COLOR
196{
212 White
214
215typedef enum _BL_MENU_POLICY
216{
220
222{
227
229{
233 BlMax
235
236typedef enum _BL_ARCH_MODE
237{
241
242//
243// Boot Device Types
244//
245typedef enum _BL_DEVICE_TYPE
246{
255
256//
257// Local Device Types
258//
260{
268
269//
270// Partition types
271//
273{
278
279//
280// File Path Types
281//
282typedef enum _BL_PATH_TYPE
283{
285 EfiPath = 4
287
288//
289// Classes of Memory
290//
292{
297
298//
299// Types of Memory
300//
301typedef enum _BL_MEMORY_TYPE
302{
303 //
304 // Loader Memory
305 //
306 BlLoaderMemory = 0xD0000002,
308 BlLoaderHeap = 0xD0000005,
311 BlLoaderRamDisk = 0xD0000008,
312 BlLoaderArchData = 0xD0000009,
313 BlLoaderData = 0xD000000A,
314 BlLoaderRegistry = 0xD000000B,
316 BlLoaderSelfMap = 0xD000000F,
317
318 //
319 // Application Memory
320 //
322 BlApplicationData = 0xE0000004,
323
324 //
325 // System Memory
326 //
328 BlUnusableMemory = 0xF0000002,
329 BlReservedMemory = 0xF0000003,
330 BlEfiBootMemory = 0xF0000004,
334 BlAcpiNvsMemory = 0xF0000009,
335 BlDeviceIoMemory = 0xF000000A,
336 BlDevicePortMemory = 0xF000000B,
337 BlPalMemory = 0xF000000C,
340
341typedef enum _BL_MEMORY_ATTR
342{
343 //
344 // Memory Caching Attributes
345 //
346 BlMemoryUncached = 0x00000001,
349 BlMemoryWriteBack = 0x00000008,
353
354 //
355 // Memory Protection Attributes
356 //
362
363 //
364 // Memory Allocation Attributes
365 //
366 BlMemoryLargePages = 0x00010000,
368 BlMemoryFixed = 0x00040000,
369 BlMemoryBelow1MB = 0x00080000,
372
373 //
374 // Memory Type Attributes
375 //
376 BlMemoryRuntime = 0x01000000,
377 BlMemoryCoalesced = 0x02000000,
378 BlMemoryUpdate = 0x04000000,
380 BlMemoryPersistent = 0x10000000,
381 BlMemorySpecial = 0x20000000,
382 BlMemoryFirmware = 0x80000000,
386
387/* CALLBACKS *****************************************************************/
388
389struct _BL_FILE_ENTRY;
391typedef
393(*PBL_FILE_OPEN) (
397 _Out_ struct _BL_FILE_ENTRY** FileEntry
398 );
399
400typedef
403 _In_ struct _BL_FILE_ENTRY* FileEntry
404 );
405
406typedef
408(*PBL_FILE_READ) (
409 _In_ struct _BL_FILE_ENTRY* FileEntry,
413 );
414
415typedef
418 VOID
419 );
420
421typedef
424 VOID
425 );
426
427typedef
430 _In_ struct _BL_FILE_ENTRY* FileEntry,
432 );
433
434typedef
437 _In_ struct _BL_FILE_ENTRY* FileEntry,
439 );
440
441typedef
444 VOID
445 );
446
447typedef
450 VOID
451 );
452
453typedef
456 _In_ ULONG DeviceId,
458 _Out_ struct _BL_FILE_ENTRY** FileEntry
459 );
460
461typedef
464 VOID
465 );
466
467typedef
471 );
472
473struct _BL_TEXT_CONSOLE;
474struct _BL_DISPLAY_STATE;
475struct _BL_DISPLAY_MODE;
476struct _BL_INPUT_CONSOLE;
477struct _BL_REMOTE_CONSOLE;
479typedef
483 );
484
485typedef
489 );
490
491typedef
495 _Out_ struct _BL_DISPLAY_STATE* TextState
496 );
497
498typedef
503 _In_ struct _BL_DISPLAY_STATE* TextState
504 );
505
506typedef
511 );
512
513typedef
517 _In_ ULONG NewTextResolution,
518 _Out_ PULONG OldTextResolution
519 );
520
521typedef
525 _In_ BOOLEAN LineOnly
526 );
527
528typedef
532 );
533
534typedef
539 );
540
541typedef
546 );
547
548typedef
553);
554
555typedef
560 _In_ ULONG Attribute
561 );
562
563typedef
569 _In_ PVOID Argument3,
571 );
572
573typedef
577 _In_ ULONG EntryIndex
578 );
579
580typedef
584 );
585
586typedef
589 VOID
590 );
591
592struct _BL_HASH_ENTRY;
593typedef
596 _In_ struct _BL_HASH_ENTRY* Entry1,
597 _In_ struct _BL_HASH_ENTRY* Entry2
598 );
599
600typedef
603 _In_ struct _BL_HASH_ENTRY* Entry,
605 );
606
607struct _BL_DEVICE_ENTRY;
610
611typedef
614 VOID
615 );
616
617typedef
621 _In_ struct _BL_DEVICE_ENTRY* DeviceEntry
622 );
623
624typedef
627 _In_ struct _BL_DEVICE_ENTRY* DeviceEntry
628 );
629
630typedef
633 _In_ struct _BL_DEVICE_ENTRY* DeviceEntry,
637 );
638
639typedef
642 VOID
643 );
644
645typedef
648 _In_ struct _BL_DEVICE_ENTRY* DeviceEntry,
649 _Out_ struct _BL_DEVICE_INFORMATION* DeviceInformation
650 );
651
652typedef
655 _In_ struct _BL_DEVICE_ENTRY* DeviceEntry,
656 _In_ struct _BL_DEVICE_INFORMATION* DeviceInformation
657 );
658
659typedef
662 VOID
663 );
664
665typedef
668 VOID
669 );
670
671typedef
674 VOID
675 );
676
677typedef VOID
679 VOID
680 );
681
682typedef VOID
684 VOID
685 );
686
687typedef NTSTATUS
692 );
693
694typedef NTSTATUS
698 );
699
700typedef VOID
702 VOID
703 );
704
705typedef VOID
708 );
709
710typedef VOID
712 VOID
713 );
714
715typedef NTSTATUS
719 );
720
721typedef NTSTATUS
726 _In_ ULONG CacheAttributes
727 );
728
729typedef NTSTATUS
734 _In_ ULONG CacheAttributes
735 );
736
737typedef BOOLEAN
741 _Out_opt_ PULONG CacheAttributes
742 );
743
744typedef NTSTATUS
747 _In_ ULONG Parameter1,
748 _In_ ULONG_PTR Parameter2,
749 _In_ ULONG_PTR Parameter3,
750 _In_ ULONG_PTR Parameter4
751 );
752
753/* DATA STRUCTURES ***********************************************************/
754
756{
766
767/* This should eventually go into a more public header */
769{
770 /* This header tells the library what image we're dealing with */
776
777 /* Where is the image located */
780
781 /* Offset to BL_MEMORY_DATA */
783
784 /* Offset to BL_APPLICATION_ENTRY */
786
787 /* Offset to BL_DEVICE_DESCRPIPTOR */
789
790 /* Offset to BL_FIRMWARE_PARAMETERS */
792
793 /* Offset to BL_RETURN_ARGUMENTS */
796
797typedef struct _BL_MEMORY_DATA
798{
805
807{
813
815{
822
824{
826 union
827 {
828 struct
829 {
832 };
833 struct
834 {
837 };
838 };
843
844typedef struct _BL_BCD_OPTION
845{
853
855{
862
864{
869
870typedef struct _BL_MENU_STATUS
871{
872 union
873 {
874 struct
875 {
882 };
884 };
888
890{
898 BootOptions = 8
900
902{
904 union
905 {
906 struct
907 {
910
911 struct
912 {
915
916 struct
917 {
920 };
922
923typedef struct _BL_LOCAL_DEVICE
924{
926 union
927 {
928 struct
929 {
932
934
936
937 struct
938 {
943
944 ULONG File; // unknown for now
945 };
947
949{
954 union
955 {
957
958 struct
959 {
962
963 struct
964 {
965 union
966 {
969
970 union
971 {
974
977 };
979
981{
987
989{
996
997typedef struct _BL_ARCH_CONTEXT
998{
1003
1005{
1011
1012typedef struct _BL_ADDRESS_RANGE
1013{
1017
1019{
1025
1027{
1036
1037typedef struct _BL_FILE_ENTRY
1038{
1050
1052{
1059
1061{
1067
1068typedef struct _BL_DISPLAY_STATE
1069{
1076
1077typedef struct _BL_DISPLAY_MODE
1078{
1083
1085{
1095
1097{
1107
1108typedef struct _BL_TEXT_CONSOLE
1109{
1118
1120{
1123 //PCONSOLE_IS_KEY_PENDING IsKeyPending;
1124 //PCONSOLE_READ_INPUT ReadInput;
1125 //PCONSOLE_ERASE_BUFFER EraseBuffer;
1126 //PCONSOLE_FILL_BUFFER FillBuffer;
1128
1129typedef struct _BL_INPUT_CONSOLE
1130{
1137
1139{
1143
1145{
1162
1164{
1167
1168typedef struct _BL_HASH_TABLE
1169{
1175
1176typedef struct _BL_HASH_ENTRY
1177{
1182
1183typedef struct _BL_HASH_VALUE
1184{
1188
1189typedef struct _BL_HASH_NODE
1190{
1195
1197{
1207 struct
1208 {
1209 union
1210 {
1211 struct
1212 {
1215 struct
1216 {
1219 };
1222
1224{
1226 union
1227 {
1229 };
1231
1232typedef struct _BL_BLOCK_DEVICE
1233{
1239
1241{
1245
1247{
1259
1260typedef struct _BL_DEVICE_ENTRY
1261{
1270
1271typedef struct _BL_IMG_FILE
1272{
1274 union
1275 {
1278 };
1282
1284{
1289
1291{
1296
1298{
1304
1305#pragma pack(push)
1306#pragma pack(1)
1307typedef struct _BMP_HEADER
1308{
1314
1315typedef struct _DIB_HEADER
1316{
1329
1330typedef struct _BITMAP
1331{
1335#pragma pack(pop)
1336
1337typedef struct _COORD
1338{
1342
1343typedef struct _BL_PD_DATA_BLOB
1344{
1349
1350/* INLINE ROUTINES ***********************************************************/
1351
1353VOID
1355 _Out_ PBL_LIBRARY_PARAMETERS LibraryParameters
1356 )
1357{
1358 BL_LIBRARY_PARAMETERS DefaultParameters =
1359 {
1360 0x20,
1361 BlVirtual,
1362 1024,
1363 2 * 1024 * 1024,
1364 0,
1365 NULL,
1366 0,
1367 NULL
1368 };
1369
1370 /* Copy the defaults */
1371 RtlCopyMemory(LibraryParameters, &DefaultParameters, sizeof(*LibraryParameters));
1372}
1373
1375VOID
1378 )
1379{
1380 /* Initialize the list */
1381 InitializeListHead(&List->ListHead);
1382 List->First = &List->ListHead;
1383 List->This = NULL;
1384 List->Type = 0;
1385}
1386
1388PVOID
1391{
1393}
1394
1395/* INITIALIZATION ROUTINES ***************************************************/
1396
1399 _In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters,
1400 _In_ PBL_LIBRARY_PARAMETERS LibraryParameters
1401 );
1402
1405 _In_ ULONG Phase
1406 );
1407
1410 _In_ ULONG Phase,
1411 _In_ PBL_FIRMWARE_DESCRIPTOR FirmwareParameters
1412 );
1413
1416 _In_ PBL_MEMORY_DATA MemoryData,
1417 _In_ BL_TRANSLATION_TYPE TranslationType,
1418 _In_ PBL_LIBRARY_PARAMETERS LibraryParameters
1419 );
1420
1423 VOID
1424 );
1425
1428 _In_ PBL_MEMORY_DATA MemoryData,
1429 _In_ ULONG MinimumPages
1430 );
1431
1434 _In_ ULONG Phase,
1435 _In_ PBL_MEMORY_DATA MemoryData,
1436 _In_ BL_TRANSLATION_TYPE TranslationType,
1437 _In_ BL_TRANSLATION_TYPE LibraryTranslationType
1438 );
1439
1443 _In_ ULONG HeapAttributes
1444 );
1445
1446VOID
1448 _In_ ULONG Phase,
1449 _In_ PBL_LIBRARY_PARAMETERS LibraryParameters
1450 );
1451
1454 VOID
1455 );
1456
1459 VOID
1460 );
1461
1464 VOID
1465 );
1466
1470 );
1471
1474 VOID
1475 );
1476
1477VOID
1479 VOID
1480 );
1481
1484 VOID
1485 );
1486
1487/* FIRMWARE ROUTINES *********************************************************/
1488
1489VOID
1490EfiPrintf (
1492 ...
1493 );
1494
1498 );
1499
1503 );
1504
1507 _In_ ULONG Type,
1508 _In_ ULONG Pages,
1510 );
1511
1513EfiStall (
1514 _In_ ULONG StallTime
1515 );
1516
1519 VOID
1520 );
1521
1524 VOID
1525 );
1526
1529 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1531 );
1532
1535 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1536 _In_ ULONG Mode,
1538 _In_ UINTN* Rows
1539 );
1540
1543 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1545 );
1546
1547VOID
1549 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1551 );
1552
1555 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1556 _In_ ULONG Attribute
1557 );
1558
1561 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1562 _In_ ULONG Column,
1563 _In_ ULONG Row
1564 );
1565
1568 _In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface,
1569 _In_ BOOLEAN Visible
1570 );
1571
1574 _In_ EFI_LOCATE_SEARCH_TYPE SearchType,
1576 _Inout_ PULONG HandleCount,
1578 );
1579
1585 );
1586
1591 );
1592
1595 _In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface,
1596 _Out_ UINTN* Mode,
1598 );
1599
1602 _In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface,
1604 );
1605
1606VOID
1608 _In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface,
1611 );
1612
1613VOID
1615 _In_ EFI_RESET_TYPE ResetType
1616 );
1617
1620 _In_ EFI_DEVICE_PATH *DevicePath
1621 );
1622
1625 _In_ EFI_DEVICE_PATH *DevicePath1,
1626 _In_ EFI_DEVICE_PATH *DevicePath2
1627 );
1628
1631 _Out_ PPHYSICAL_ADDRESS FoundRsdt
1632 );
1633
1636 _In_ ULONG Pages,
1638 );
1639
1640/* PLATFORM TIMER ROUTINES ***************************************************/
1641
1644 VOID
1645 );
1646
1650 );
1651
1654 VOID
1655 );
1656
1657/* RESOURCE LOCALE INTERNATIONALIZATION ROUTINES *****************************/
1658
1661 _In_ PWCHAR Locale
1662 );
1663
1664/* FONT ROUTINES *************************************************************/
1665
1666VOID
1668 _In_ PBL_DEFERRED_FONT_FILE DeferredFontFile
1669 );
1670
1674 _In_ PWCHAR FontPath
1675 );
1676
1679 VOID
1680 );
1681
1685 );
1686
1690 );
1691
1692/* FILESYSTEM ROUTINES *******************************************************/
1693
1696 VOID
1697 );
1698
1700FatMount (
1701 _In_ ULONG DeviceId,
1703 _Out_ PBL_FILE_ENTRY* FileEntry
1704 );
1705
1708 VOID
1709 );
1710
1712EtfsMount (
1713 _In_ ULONG DeviceId,
1715 _Out_ PBL_FILE_ENTRY* FileEntry
1716 );
1717
1718/* DEBUG ROUTINES ************************************************************/
1719
1720BOOLEAN
1722 VOID
1723 );
1724
1730 );
1731
1732VOID
1735 ...
1736 );
1737
1738VOID
1741 _In_ ULONG Parameter1,
1742 _In_ ULONG_PTR Parameter2,
1743 _In_ ULONG_PTR Parameter3,
1744 _In_ ULONG_PTR Parameter4
1745 );
1746
1747/* UTILITY ROUTINES **********************************************************/
1748
1749VOID
1752 _In_ ULONG SubFunction,
1754 );
1755
1758 VOID
1759 );
1760
1761BOOLEAN
1764 );
1765
1766VOID
1768 _In_ ULONG Percentage,
1769 _Out_opt_ PBOOLEAN Completed
1770 );
1771
1774 _Out_ PVOID* TableAddress,
1776 );
1777
1780 VOID
1781 );
1782
1785 VOID
1786 );
1787
1788ULONG
1790 _In_ ULONG PartialSum,
1794 );
1795
1798 _Out_ PVOID* ImageBase,
1799 _Out_ PULONG ImageSize
1800 );
1801
1802VOID
1805 );
1806
1809 _In_ const GUID* DataGuid,
1811 _Inout_ PBL_PD_DATA_BLOB DataBlob
1812 );
1813
1814/* FIRMWARE UTILITY ROUTINES *************************************************/
1815
1819 );
1820
1823 _In_ EFI_STATUS EfiStatus
1824 );
1825
1826VOID
1827BlFwReboot (
1828 VOID
1829 );
1830
1833 _In_ ULONG BasePage,
1834 _In_ ULONG PageCount
1835 );
1836
1837PGUID
1839 VOID
1840 );
1841
1844 VOID
1845 );
1846
1849 _Out_ PBOOLEAN SecureBootEnabled
1850 );
1851
1854 VOID
1855 );
1856
1857/* RESOURCE ROUTINES *********************************************************/
1858
1859PWCHAR
1861 _In_ ULONG MsgId
1862 );
1863
1864PWCHAR
1866 VOID
1867 );
1868
1871 VOID
1872 );
1873
1874/* TABLE ROUTINES ************************************************************/
1875
1877BlTblMap (
1878 _In_ PVOID *Table,
1880 _In_ PBL_TBL_MAP_ROUTINE MapCallback
1881 );
1882
1883PVOID
1885 _In_ PVOID *Table,
1887 _Out_ PULONG EntryIndex,
1891 _In_ PVOID Argument3,
1893 );
1894
1900 _Out_ PULONG EntryIndex,
1902 );
1903
1907 );
1908
1909/* HASH TABLE ROUTINES *******************************************************/
1910
1912BlHtStore (
1913 _In_ ULONG TableId,
1915 _In_ PVOID Data,
1917 );
1918
1920BlHtDelete (
1921 _In_ ULONG TableId,
1923 );
1924
1927 _In_ ULONG TableId,
1930 );
1931
1933BlHtCreate (
1934 _In_ ULONG Size,
1936 _In_ PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction,
1938 );
1939
1940/* BCD OPTION ROUTINES *******************************************************/
1941
1946 );
1947
1948ULONG
1950 _In_ PBL_BCD_OPTION BcdOption
1951 );
1952
1953ULONG
1955 _In_ PBL_BCD_OPTION BcdOption
1956 );
1957
1961 _In_ ULONG Type,
1963 );
1964
1968 _In_ ULONG Type,
1970 );
1971
1975 _In_ ULONG Type,
1977 );
1978
1982 _In_ ULONG Type,
1985 _In_ BOOLEAN NoCopy
1986 );
1987
1991 _In_ ULONG Type,
1994 );
1995
1999 _In_ ULONG Type,
2001 );
2002
2006 _In_ ULONG Type,
2007 _Out_ PGUID *Value,
2009 );
2010
2014 _Out_ PBL_BCD_OPTION *CopiedOptions
2015 );
2016
2020 _In_ ULONG OptionId,
2022 );
2023
2027 _In_ ULONG OptionId,
2029 );
2030
2034 _In_ ULONG OptionId,
2035 _In_ PWCHAR OptionString
2036 );
2037
2042 );
2043
2044VOID
2048 );
2049
2053 _In_ PBL_BCD_OPTION NewOptions
2054 );
2055
2056/* BOOT REGISTRY ROUTINES ****************************************************/
2057
2058VOID
2059BiCloseKey (
2061 );
2062
2064BiOpenKey(
2065 _In_ HANDLE ParentHandle,
2068 );
2069
2071BiLoadHive (
2073 _Out_ PHANDLE HiveHandle
2074 );
2075
2080 _In_ ULONG Type,
2083 );
2084
2088 _Out_ PWCHAR** SubKeyList,
2089 _Out_ PULONG SubKeyCount
2090 );
2091
2095 );
2096
2097VOID
2100 );
2101
2102/* CONTEXT ROUTINES **********************************************************/
2103
2104VOID
2106 _In_ BL_ARCH_MODE NewMode
2107 );
2108
2109VOID
2111 VOID
2112 );
2113
2114VOID
2116 VOID
2117 );
2118
2119/* MEMORY DESCRIPTOR ROUTINES ************************************************/
2120
2121VOID
2123 _In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList,
2124 _In_opt_ ULONG MaxCount
2125);
2126
2127VOID
2129 _In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList,
2130 _In_ ULONG Type,
2131 _In_ PLIST_ENTRY ListHead
2132 );
2133
2136 _In_ ULONG WhichList,
2139 );
2140
2146 );
2147
2150 _In_ PBL_MEMORY_DESCRIPTOR_LIST DestinationList,
2152 _In_opt_ PBL_MEMORY_DESCRIPTOR ListDescriptor,
2153 _Out_ PULONG ActualCount,
2156 );
2157
2158ULONG
2161 );
2162
2163VOID
2166 );
2167
2172 _In_ ULONGLONG BasePage,
2173 _In_ ULONGLONG VirtualPage,
2174 _In_ ULONGLONG PageCount
2175 );
2176
2177VOID
2179 VOID
2180 );
2181
2187 );
2188
2193 _In_ ULONGLONG BasePage
2194 );
2195
2196VOID
2200 );
2201
2202BOOLEAN
2206 _In_ ULONGLONG Pages,
2207 _In_ PBL_ADDRESS_RANGE BaseRange,
2208 _In_ PBL_ADDRESS_RANGE VirtualRange,
2209 _In_ BOOLEAN TopDown,
2210 _In_ BL_MEMORY_TYPE MemoryType,
2213 );
2214
2219 __in ULONGLONG BasePage,
2220 __in ULONGLONG PageCount,
2222 );
2223
2227 );
2228
2229/* PAGE ALLOCATOR ROUTINES ***************************************************/
2230
2233 _In_ ULONGLONG BasePage
2234 );
2235
2239 _In_ BL_MEMORY_TYPE MemoryType,
2240 _In_ ULONGLONG PageCount,
2243 );
2244
2248 _In_ BL_MEMORY_TYPE MemoryType,
2249 _In_ ULONGLONG Pages,
2254 _In_ ULONG RangeType
2255 );
2256
2260 );
2261
2266 _In_ ULONG PageCount
2267 );
2268
2272 );
2273
2277 _In_ ULONG WhichList
2278 );
2279
2283 _In_ BL_MEMORY_TYPE MemoryType,
2284 _In_ ULONGLONG Pages,
2289 );
2290
2295 );
2296
2299 VOID
2300 );
2301
2304 VOID
2305 );
2306
2310 _In_ PBL_BUFFER_DESCRIPTOR MemoryParameters,
2311 _In_ ULONG WhichTypes,
2313 );
2314
2315/* VIRTUAL MEMORY ROUTINES ***************************************************/
2316
2319 _Out_ PVOID* MappingAddress,
2320 _In_ PVOID PreferredAddress,
2325 );
2326
2332 _In_ ULONG CacheAttributes
2333 );
2334
2339 );
2340
2347 );
2348
2353 );
2354
2355BOOLEAN
2359 );
2360
2361BOOLEAN
2365 _Out_opt_ PULONG CachingFlags
2366 );
2367
2368/* BLOCK ALLOCATOR ROUTINES **************************************************/
2369
2372 VOID
2373 );
2374
2375/* HEAP ALLOCATOR ROUTINES ***************************************************/
2376
2377PVOID
2380 );
2381
2385 );
2386
2387/* DISPLAY ROUTINES **********************************************************/
2388
2389VOID
2391 _Out_ PULONG TextWidth,
2392 _Out_ PULONG TextHeight
2393 );
2394
2397 VOID
2398 );
2399
2402 _Out_ PULONG HRes,
2403 _Out_ PULONG Vres
2404 );
2405
2406VOID
2408 VOID
2409 );
2410
2411PBITMAP
2415 );
2416
2417BOOLEAN
2419 VOID
2420 );
2421
2424 VOID
2425 );
2426
2430 );
2431
2432/* I/O ROUTINES **************************************************************/
2433
2436 _In_ PBL_IO_DESTROY_ROUTINE DestroyRoutine
2437 );
2438
2441 _In_ ULONG DeviceId
2442 );
2443
2444BOOLEAN
2446 _In_ PBL_DEVICE_DESCRIPTOR InputDevice,
2447 _Outptr_ PBL_DEVICE_DESCRIPTOR* VirtualDevice
2448 );
2449
2455 _Out_ PULONG DeviceId
2456 );
2457
2460 _In_ ULONG DeviceId,
2461 _Out_ PBL_DEVICE_INFORMATION DeviceInformation
2462 );
2463
2466 _In_ ULONG DeviceId,
2467 _In_ PBL_DEVICE_INFORMATION DeviceInformation
2468 );
2469
2472 _In_ ULONG DeviceId,
2473 _In_ ULONG Size,
2477 );
2478
2479/* IMAGE ROUTINES ************************************************************/
2480
2483 _In_ ULONG DeviceId,
2484 _In_ BL_MEMORY_TYPE MemoryType,
2487 _Inout_ PULONG MappedSize,
2489 _In_ BOOLEAN ShowProgress,
2490 _Out_opt_ PUCHAR* HashBuffer,
2491 _Out_opt_ PULONG HashSize
2492 );
2493
2496 _In_ PVOID ImageBase,
2497 _In_ ULONG ImageSize
2498 );
2499
2503 _Out_ PULONG AppHandle
2504 );
2505
2508 _In_ ULONG AppHandle,
2509 _Inout_ PBL_RETURN_ARGUMENTS ReturnArguments
2510 );
2511
2514 _In_ ULONG AppHandle
2515 );
2516
2517VOID
2519 _In_ PBL_LOADED_APPLICATION_ENTRY ApplicationEntry,
2520 _Out_ PBOOLEAN IntegrityChecksDisabled,
2521 _Out_ PBOOLEAN TestSigning
2522 );
2523
2524/* FILE I/O ROUTINES *********************************************************/
2525
2528 _In_ ULONG FileId
2529 );
2530
2533 _In_ ULONG FileId,
2534 _In_ ULONG Size,
2539 );
2540
2543 _In_ ULONG FileId,
2545 );
2546
2548BlFileOpen (
2549 _In_ ULONG DeviceId,
2552 _Out_ PULONG FileId
2553 );
2554
2555/* BLOCK I/O ROUTINES *******************************************************/
2556
2561 );
2562
2563/* INPUT CONSOLE ROUTINES ****************************************************/
2564
2565VOID
2568 );
2569
2573 );
2574
2577 VOID
2578 );
2579
2580/* TEXT CONSOLE ROUTINES *****************************************************/
2581
2582VOID
2585 );
2586
2590 _In_ BOOLEAN LineOnly
2591 );
2592
2597 );
2598
2602 );
2603
2607 _In_ ULONG Mask,
2608 _In_ PBL_DISPLAY_STATE TextState
2609 );
2610
2611BOOLEAN
2614 );
2615
2620 );
2621
2626 );
2627
2632 );
2633
2634VOID
2637 );
2638
2642 );
2643
2647 _Out_ PBL_DISPLAY_STATE TextState
2648 );
2649
2654 _In_ PBL_DISPLAY_STATE TextState
2655 );
2656
2661 );
2662
2666 _In_ ULONG NewTextResolution,
2667 _Out_ PULONG OldTextResolution
2668 );
2669
2673 _In_ BOOLEAN LineOnly
2674 );
2675
2679 _In_ PCHAR Text,
2680 _In_ ULONG Attribute
2681 );
2682
2685 _In_ PBL_TEXT_CONSOLE TextConsole,
2686 _In_ BOOLEAN Activate
2687 );
2688
2689BOOLEAN
2693 _In_ ULONG MaxIndex
2694 );
2695
2699 _In_ BOOLEAN LineOnly
2700 );
2701
2702VOID
2704 _In_ PBL_TEXT_CONSOLE TextConsole
2705 );
2706
2709 _In_ PBL_TEXT_CONSOLE TextConsole
2710 );
2711
2714 _In_ PBL_TEXT_CONSOLE TextConsole,
2715 _In_ UCHAR Mask,
2717 );
2718
2721 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2722 );
2723
2726 _In_ PBL_TEXT_CONSOLE* TextConsole
2727 );
2728
2731 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole,
2733 );
2734
2735VOID
2737 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2738 );
2739
2740VOID
2742 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2743 );
2744
2749 );
2750
2753 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2754 );
2755
2758 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2759 );
2760
2761VOID
2763 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2764 );
2765
2766VOID
2768 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2769 );
2770
2773 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2774 );
2775
2778 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole
2779 );
2780
2783 _In_ PBL_GRAPHICS_CONSOLE GraphicsConsole,
2785 _In_ ULONG DisplayModeCount
2786 );
2787
2790 VOID
2791 );
2792
2796 _In_opt_ PULONG ValueToFill
2797 );
2798
2799VOID
2803 _In_ PUCHAR FillColor,
2805 _In_ ULONG ScanlineWidth,
2806 _In_ ULONG PixelDepth
2807 );
2808
2812 _Out_ PUCHAR Pixel
2813 );
2814
2839extern WCHAR BlScratchBuffer[8192];
2861
2862#endif
DWORD Id
PCWSTR FilePath
unsigned char BOOLEAN
UINT32 UINTN
CConsole Console
Type
Definition: Type.h:7
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:52
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:31
EFI_RESET_TYPE
Definition: UefiSpec.h:968
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1415
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
static const COLUMN_LIST Columns[]
Definition: listview.c:19
struct _BL_MEMORY_DESCRIPTOR BL_MEMORY_DESCRIPTOR
ULONGLONG BlpTimePerformanceFrequency
Definition: time.c:15
NTSTATUS BlockIoEfiCompareDevice(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ EFI_HANDLE Handle)
Definition: device.c:1268
NTSTATUS(* PBL_FILE_SET_INFO)(_In_ struct _BL_FILE_ENTRY *FileEntry, _In_ struct _BL_FILE_INFORMATION *FileInfo)
Definition: bl.h:436
struct _BOOT_APPLICATION_PARAMETER_BLOCK BOOT_APPLICATION_PARAMETER_BLOCK
NTSTATUS BfClearScreen(_In_ PBL_GRAPHICS_CONSOLE Console)
Definition: font.c:158
NTSTATUS BlDisplaySetCursorType(_In_ ULONG Type)
Definition: display.c:969
struct _BL_FIRMWARE_DESCRIPTOR BL_FIRMWARE_DESCRIPTOR
NTSTATUS BlSecureBootIsEnabled(_Out_ PBOOLEAN SecureBootEnabled)
Definition: firmware.c:732
NTSTATUS BiGetRegistryValue(_In_ HANDLE KeyHandle, _In_ PWCHAR ValueName, _In_ ULONG Type, _Out_ PVOID *Buffer, _Out_ PULONG ValueLength)
Definition: bootreg.c:657
NTSTATUS ConsoleFirmwareGraphicalClear(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Color)
Definition: guicons.c:90
NTSTATUS EfiGetNtStatusCode(_In_ EFI_STATUS EfiStatus)
Definition: firmware.c:2539
struct _BL_BCD_OPTION * PBL_BCD_OPTION
NTSTATUS(* PBL_DEVICE_SET_INFORMATION)(_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ struct _BL_DEVICE_INFORMATION *DeviceInformation)
Definition: bl.h:654
struct _BL_DEVICE_CALLBACKS * PBL_DEVICE_CALLBACKS
PBL_MEMORY_DESCRIPTOR MmMdFindDescriptorFromMdl(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ ULONG Flags, _In_ ULONGLONG Page)
Definition: descriptor.c:960
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
Definition: bcdopt.c:504
VOID ConsoleTextLocalDestruct(_In_ struct _BL_TEXT_CONSOLE *Console)
Definition: textcons.c:30
EFI_GUID EfiGraphicsOutputProtocol
Definition: firmware.c:28
NTSTATUS BlMmGetMemoryMap(_In_ PLIST_ENTRY MemoryMap, _In_ PBL_BUFFER_DESCRIPTOR MemoryParameters, _In_ ULONG WhichTypes, _In_ ULONG Flags)
Definition: pagealloc.c:1222
NTSTATUS MmPaInitialize(_In_ PBL_MEMORY_DATA MemoryData, _In_ ULONG MinimumPages)
NTSTATUS ConsoleGraphicalReinitialize(_In_ struct _BL_GRAPHICS_CONSOLE *Console)
EFI_DEVICE_PATH * EfiIsDevicePathParent(_In_ EFI_DEVICE_PATH *DevicePath1, _In_ EFI_DEVICE_PATH *DevicePath2)
Definition: firmware.c:47
NTSTATUS ConsoleEfiUgaSetResolution(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole, _In_ PBL_DISPLAY_MODE DisplayMode, _In_ ULONG DisplayModeCount)
Definition: uga.c:35
NTSTATUS(* PBL_DEVICE_RESET)(VOID)
Definition: bl.h:661
PWCHAR BlResourceFindMessage(_In_ ULONG MsgId)
Definition: resource.c:349
NTSTATUS ConsoleTextLocalWriteText(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ PCHAR Text, _In_ ULONG Attribute)
Definition: textcons.c:94
BOOLEAN BlDeviceIsVirtualPartitionDevice(_In_ PBL_DEVICE_DESCRIPTOR InputDevice, _Outptr_ PBL_DEVICE_DESCRIPTOR *VirtualDevice)
Definition: device.c:612
struct _BL_ARCH_CONTEXT * PBL_ARCH_CONTEXT
struct _BL_WINDOWS_LOAD_OPTIONS BL_WINDOWS_LOAD_OPTIONS
NTSTATUS MmMdFreeDescriptor(_In_ PBL_MEMORY_DESCRIPTOR MemoryDescriptor)
Definition: descriptor.c:157
struct _BL_FILE_PATH_DESCRIPTOR BL_FILE_PATH_DESCRIPTOR
NTSTATUS(* PBL_FILE_OPEN)(_In_ struct _BL_FILE_ENTRY *Directory, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ struct _BL_FILE_ENTRY **FileEntry)
Definition: bl.h:393
NTSTATUS BfClearToEndOfLine(_In_ PBL_GRAPHICS_CONSOLE Console)
Definition: font.c:149
struct _BL_MEMORY_DESCRIPTOR_LIST BL_MEMORY_DESCRIPTOR_LIST
NTSTATUS BlDeviceGetInformation(_In_ ULONG DeviceId, _Out_ PBL_DEVICE_INFORMATION DeviceInformation)
Definition: device.c:682
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedUnallocated
Definition: pagealloc.c:36
NTSTATUS(* PCONSOLE_SET_TEXT_STATE)(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG Flags, _In_ struct _BL_DISPLAY_STATE *TextState)
Definition: bl.h:500
NTSTATUS BlMmAllocatePhysicalPages(_Inout_ PPHYSICAL_ADDRESS Address, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG PageCount, _In_ ULONG Attributes, _In_ ULONG Alignment)
struct _BL_IMAGE_APPLICATION_ENTRY BL_IMAGE_APPLICATION_ENTRY
NTSTATUS MmMdAddDescriptorToList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR MemoryDescriptor, _In_ ULONG Flags)
Definition: descriptor.c:582
struct _BL_ADDRESS_RANGE BL_ADDRESS_RANGE
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)
Definition: pagealloc.c:438
NTSTATUS BlFileOpen(_In_ ULONG DeviceId, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ PULONG FileId)
Definition: file.c:477
NTSTATUS BiOpenKey(_In_ HANDLE ParentHandle, _In_ PWCHAR KeyName, _Out_ PHANDLE Handle)
Definition: bootreg.c:186
NTSTATUS BlDeviceReadAtOffset(_In_ ULONG DeviceId, _In_ ULONG Size, _In_ ULONGLONG Offset, _In_ PVOID Buffer, _Out_ PULONG BytesRead)
Definition: device.c:773
VOID BlpArchEnableTranslation(VOID)
Definition: arch.c:189
NTSTATUS EfiConOutQueryMode(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Mode, _In_ UINTN *Columns, _In_ UINTN *Rows)
Definition: firmware.c:1032
ULONG_PTR MmArchTopOfApplicationAddressSpace
Definition: mmx86.c:30
NTSTATUS EfiCloseProtocol(_In_ EFI_HANDLE Handle, _In_ EFI_GUID *Protocol)
Definition: firmware.c:581
NTSTATUS EfiGopGetCurrentMode(_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _Out_ UINTN *Mode, _Out_ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Information)
Definition: firmware.c:1296
struct _BL_FIRMWARE_DESCRIPTOR * PBL_FIRMWARE_DESCRIPTOR
VOID BlImgQueryCodeIntegrityBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY ApplicationEntry, _Out_ PBOOLEAN IntegrityChecksDisabled, _Out_ PBOOLEAN TestSigning)
Definition: image.c:651
ULONG MmMdCountList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList)
Definition: descriptor.c:205
VOID BlDisplayGetTextCellResolution(_Out_ PULONG TextWidth, _Out_ PULONG TextHeight)
Definition: display.c:603
struct _BL_DEVICE_DESCRIPTOR * PBL_DEVICE_DESCRIPTOR
struct _BL_PROTOCOL_HANDLE BL_PROTOCOL_HANDLE
_BL_MEMORY_TYPE
Definition: bl.h:302
@ BlLoaderMemory
Definition: bl.h:306
@ BlReservedMemory
Definition: bl.h:329
@ BlUnusableMemory
Definition: bl.h:328
@ BlEfiRuntimeDataMemory
Definition: bl.h:338
@ BlApplicationReserved
Definition: bl.h:321
@ BlDeviceIoMemory
Definition: bl.h:335
@ BlEfiBootMemory
Definition: bl.h:330
@ BlLoaderData
Definition: bl.h:313
@ BlConventionalMemory
Definition: bl.h:327
@ BlPalMemory
Definition: bl.h:337
@ BlEfiRuntimeCodeMemory
Definition: bl.h:332
@ BlLoaderArchData
Definition: bl.h:312
@ BlLoaderSelfMap
Definition: bl.h:316
@ BlLoaderReferencePage
Definition: bl.h:310
@ BlLoaderBlockMemory
Definition: bl.h:315
@ BlLoaderPageDirectory
Definition: bl.h:309
@ BlConventionalZeroedMemory
Definition: bl.h:331
@ BlLoaderDeviceMemory
Definition: bl.h:307
@ BlLoaderHeap
Definition: bl.h:308
@ BlLoaderRamDisk
Definition: bl.h:311
@ BlApplicationData
Definition: bl.h:322
@ BlAcpiNvsMemory
Definition: bl.h:334
@ BlAcpiReclaimMemory
Definition: bl.h:333
@ BlDevicePortMemory
Definition: bl.h:336
@ BlLoaderRegistry
Definition: bl.h:314
VOID BlDestroyBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry)
Definition: bootlib.c:442
NTSTATUS BlInitializeLibrary(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
Definition: bootlib.c:355
VOID BlArchCpuId(_In_ ULONG Function, _In_ ULONG SubFunction, _Out_ PCPU_INFO Result)
Definition: util.c:924
NTSTATUS FatInitialize(VOID)
Definition: fat.c:81
ULONGLONG BlTimeQueryPerformanceCounter(_Out_opt_ PLARGE_INTEGER Frequency)
Definition: time.c:101
NTSTATUS MmMapPhysicalAddress(_Inout_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID *VirtualAddress, _Inout_ PULONGLONG Size, _In_ ULONG CacheAttributes)
VOID EfiPrintf(_In_ PWCHAR Format,...)
Definition: firmware.c:126
BL_DISPLAY_MODE ConsoleGraphicalResolutionList[]
Definition: display.c:22
NTSTATUS MmArchInitialize(_In_ ULONG Phase, _In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ BL_TRANSLATION_TYPE LibraryTranslationType)
Definition: mmx86.c:1028
struct _BL_HARDDISK_DEVICE BL_HARDDISK_DEVICE
NTSTATUS BlUtlRegisterProgressRoutine(VOID)
Definition: util.c:244
FORCEINLINE VOID MmMdInitializeListHead(_In_ PBL_MEMORY_DESCRIPTOR_LIST List)
Definition: bl.h:1376
NTSTATUS BlpDisplayInitialize(_In_ ULONG Flags)
Definition: display.c:575
PBL_MEMORY_DESCRIPTOR MmMdInitByteGranularDescriptor(_In_ ULONG Flags, _In_ BL_MEMORY_TYPE Type, _In_ ULONGLONG BasePage, _In_ ULONGLONG VirtualPage, _In_ ULONGLONG PageCount)
Definition: descriptor.c:377
struct _BL_LIBRARY_PARAMETERS * PBL_LIBRARY_PARAMETERS
NTSTATUS BlHtStore(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _In_ PVOID Data, _In_ ULONG DataSize)
Definition: util.c:668
NTSTATUS BlpDisplayReinitialize(VOID)
Definition: display.c:542
NTSTATUS BlGetBootOptionGuidList(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID *Value, _In_ PULONG Count)
Definition: bcdopt.c:266
struct _BOOT_APPLICATION_PARAMETER_BLOCK * PBOOT_APPLICATION_PARAMETER_BLOCK
struct _BL_DEVICE_DESCRIPTOR BL_DEVICE_DESCRIPTOR
NTSTATUS ConsolepConvertColorToPixel(_In_ BL_COLOR Color, _Out_ PUCHAR Pixel)
Definition: guicons.c:174
NTSTATUS MmPaReserveSelfMapPages(_Inout_ PPHYSICAL_ADDRESS PhysicalAddress, _In_ ULONG Alignment, _In_ ULONG PageCount)
Definition: pagealloc.c:1564
_BL_PARTITION_TYPE
Definition: bl.h:273
@ MbrPartition
Definition: bl.h:275
@ RawPartition
Definition: bl.h:276
@ GptPartition
Definition: bl.h:274
struct _BL_FILE_ENTRY BL_FILE_ENTRY
struct _BL_IMG_FILE BL_IMG_FILE
BL_MEMORY_DESCRIPTOR_LIST MmMdlReservedAllocated
Definition: pagealloc.c:40
NTSTATUS(* PBL_FS_INIT_CALLBACK)(VOID)
Definition: bl.h:443
VOID ConsoleFirmwareGraphicalDisable(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: guicons.c:153
struct _BL_MENU_STATUS * PL_MENU_STATUS
struct _BL_BUFFER_DESCRIPTOR * PBL_BUFFER_DESCRIPTOR
EFI_GUID EfiRootAcpiTable10Guid
Definition: firmware.c:35
VOID ConsoleInputLocalDestruct(_In_ struct _BL_INPUT_CONSOLE *Console)
BOOLEAN(* PBL_MM_TRANSLATE_VIRTUAL_ADDRESS)(_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CacheAttributes)
Definition: bl.h:738
struct _BL_FILE_CALLBACKS BL_FILE_CALLBACKS
EFI_GUID EfiDevicePathProtocol
Definition: firmware.c:31
_BL_TRANSLATION_TYPE
Definition: bl.h:229
@ BlMax
Definition: bl.h:233
@ BlVirtual
Definition: bl.h:231
@ BlPae
Definition: bl.h:232
@ BlNone
Definition: bl.h:230
struct _BL_FILE_SYSTEM_ENTRY BL_FILE_SYSTEM_ENTRY
EFI_GUID EfiBlockIoProtocol
Definition: firmware.c:33
VOID BiDereferenceHive(_In_ HANDLE KeyHandle)
Definition: bootreg.c:117
VOID(* PBL_MM_RELOCATE_SELF_MAP)(VOID)
Definition: bl.h:683
struct _BL_MEMORY_DESCRIPTOR * PBL_MEMORY_DESCRIPTOR
BL_TRANSLATION_TYPE MmTranslationType
Definition: mm.c:17
NTSTATUS(* PCONSOLE_REINITIALIZE)(_In_ struct _BL_TEXT_CONSOLE *Console)
Definition: bl.h:487
struct _BL_DEFERRED_FONT_FILE BL_DEFERRED_FONT_FILE
enum _BL_COLOR * PBL_COLOR
NTSTATUS BlpTimeCalibratePerformanceCounter(VOID)
Definition: time.c:62
NTSTATUS ConsoleFirmwareTextOpen(_In_ PBL_TEXT_CONSOLE TextConsole)
Definition: textcons.c:421
NTSTATUS ConsoleCreateRemoteConsole(_In_ PBL_TEXT_CONSOLE *TextConsole)
Definition: emscons.c:31
NTSTATUS MmHaInitialize(_In_ ULONG HeapSize, _In_ ULONG HeapAttributes)
Definition: heapalloc.c:538
struct _BL_REMOTE_CONSOLE * PBL_REMOTE_CONSOLE
NTSTATUS EfiOpenProtocol(_In_ EFI_HANDLE Handle, _In_ EFI_GUID *Protocol, _Out_ PVOID *Interface)
NTSTATUS(* PCONSOLE_ENABLE)(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ BOOLEAN Enable)
Definition: bl.h:550
struct _BL_HASH_NODE BL_HASH_NODE
ULONG ConsoleGraphicalResolutionListSize
Definition: display.c:28
NTSTATUS ConsoleTextLocalSetTextResolution(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG NewTextResolution, _Out_ PULONG OldTextResolution)
Definition: textcons.c:75
_BL_MEMORY_DESCRIPTOR_TYPE
Definition: bl.h:222
@ BlMdTracker
Definition: bl.h:225
@ BlMdVirtual
Definition: bl.h:224
@ BlMdPhysical
Definition: bl.h:223
struct _BL_INPUT_CONSOLE_VTABLE * PBL_INPUT_CONSOLE_VTABLE
struct _BL_LIBRARY_PARAMETERS BL_LIBRARY_PARAMETERS
NTSTATUS BfLoadDeferredFontFiles(VOID)
Definition: font.c:99
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)
Definition: pagealloc.c:707
NTSTATUS BlGetBootOptionDevice(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
Definition: bcdopt.c:321
NTSTATUS FatMount(_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ PBL_FILE_ENTRY *FileEntry)
Definition: fat.c:23
BL_MEMORY_DESCRIPTOR_LIST MmMdlBadMemory
Definition: pagealloc.c:41
NTSTATUS(* PCONSOLE_GET_TEXT_RESOLUTION)(_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PULONG TextResolution)
Definition: bl.h:508
struct _BL_LOCAL_DEVICE * PBL_LOCAL_DEVICE
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
Definition: heapalloc.c:569
struct _BMP_HEADER BMP_HEADER
NTSTATUS BlpIoInitialize(VOID)
Definition: io.c:35
struct _BL_FILE_INFORMATION BL_FILE_INFORMATION
NTSTATUS ConsoleInputLocalEraseBuffer(_In_ PBL_INPUT_CONSOLE Console, _In_opt_ PULONG ValueToFill)
Definition: textcons.c:527
NTSTATUS BlBdPullRemoteFile(_In_ PWCHAR FilePath, _Out_ PVOID BaseAddress, _Out_ PULONGLONG FileSize)
Definition: debug.c:34
NTSTATUS ConsoleCreateLocalInputConsole(VOID)
Definition: textcons.c:243
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
struct _BL_RETURN_ARGUMENTS * PBL_RETURN_ARGUMENTS
enum _BL_MEMORY_TYPE BL_MEMORY_TYPE
struct _BL_APPLICATION_ENTRY * PBL_APPLICATION_ENTRY
struct _BITMAP * PBITMAP
VOID MmMdRemoveDescriptorFromList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR Entry)
Definition: descriptor.c:338
struct _BL_HASH_TABLE BL_HASH_TABLE
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
Definition: mm.c:487
NTSTATUS(* PBL_DEVICE_CLOSE)(_In_ struct _BL_DEVICE_ENTRY *DeviceEntry)
Definition: bl.h:626
NTSTATUS ConsoleGraphicalClearText(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ BOOLEAN LineOnly)
Definition: guicons.c:299
struct _BL_GRAPHICS_CONSOLE_VTABLE BL_GRAPHICS_CONSOLE_VTABLE
NTSTATUS(* PBL_FS_MOUNT_CALLBACK)(_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ struct _BL_FILE_ENTRY **FileEntry)
Definition: bl.h:455
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)
Definition: util.c:273
VOID EfiResetSystem(_In_ EFI_RESET_TYPE ResetType)
Definition: firmware.c:1509
EFI_GUID EfiLoadedImageProtocol
Definition: firmware.c:30
VOID MmMdDbgDumpList(_In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList, _In_opt_ ULONG MaxCount)
Definition: mmx86.c:579
NTSTATUS BlFileGetInformation(_In_ ULONG FileId, _In_ PBL_FILE_INFORMATION FileInfo)
Definition: file.c:564
NTSTATUS ConsoleGraphicalConstruct(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: guicons.c:58
NTSTATUS BlpDeviceOpen(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ ULONG Flags, _In_ ULONG Unknown, _Out_ PULONG DeviceId)
Definition: device.c:2111
NTSTATUS BlDeviceClose(_In_ ULONG DeviceId)
Definition: device.c:2073
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
BOOLEAN BlArchIsCpuIdFunctionSupported(_In_ ULONG Function)
Definition: util.c:856
BOOLEAN(* PBL_HASH_TABLE_COMPARE_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry1, _In_ struct _BL_HASH_ENTRY *Entry2)
Definition: bl.h:595
struct _BL_LOCAL_DEVICE BL_LOCAL_DEVICE
enum _BL_PATH_TYPE BL_PATH_TYPE
_BL_MEMORY_CLASS
Definition: bl.h:292
@ BlSystemClass
Definition: bl.h:295
@ BlLoaderClass
Definition: bl.h:293
@ BlApplicationClass
Definition: bl.h:294
struct _BL_ARCH_CONTEXT BL_ARCH_CONTEXT
struct _BL_DISPLAY_STATE BL_DISPLAY_STATE
ULONG BlUtlCheckSum(_In_ ULONG PartialSum, _In_ PUCHAR Buffer, _In_ ULONG Length, _In_ ULONG Flags)
Definition: util.c:777
struct _BL_PROTOCOL_HANDLE * PBL_PROTOCOL_HANDLE
struct _BL_BLOCK_DEVICE * PBL_BLOCK_DEVICE
struct _BL_IMAGE_APPLICATION_ENTRY * PBL_IMAGE_APPLICATION_ENTRY
NTSTATUS MmPapFreePages(_In_ PVOID Address, _In_ ULONG WhichList)
Definition: pagealloc.c:1196
NTSTATUS(* PBL_DEVICE_OPEN)(_In_ struct _BL_DEVICE_DESCRIPTOR *Device, _In_ struct _BL_DEVICE_ENTRY *DeviceEntry)
Definition: bl.h:619
struct _BL_GRAPHICS_CONSOLE * PBL_GRAPHICS_CONSOLE
struct _BL_TEXT_CONSOLE_VTABLE * PBL_TEXT_CONSOLE_VTABLE
NTSTATUS BlReplaceBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION NewOptions)
Definition: bcdopt.c:824
struct _BL_MEMORY_DATA * PBL_MEMORY_DATA
NTSTATUS BlMmFreePhysicalPages(_In_ PHYSICAL_ADDRESS Address)
Definition: pagealloc.c:1187
struct _BL_HASH_NODE * PBL_HASH_NODE
struct _BITMAP BITMAP
EFI_GUID EfiRootAcpiTableGuid
Definition: firmware.c:34
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedAllocated
Definition: pagealloc.c:38
NTSTATUS ConsoleFirmwareGraphicalEnable(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: guicons.c:128
PVOID DspLocalInputConsole
Definition: display.c:38
VOID ConsoleFirmwareTextClose(_In_ PBL_TEXT_CONSOLE TextConsole)
Definition: textcons.c:398
_BL_PATH_TYPE
Definition: bl.h:283
@ EfiPath
Definition: bl.h:285
@ InternalPath
Definition: bl.h:284
PBL_DEVICE_DESCRIPTOR BlpBootDevice
Definition: bootlib.c:16
enum _BL_GRAPHICS_CONSOLE_TYPE BL_GRAPHICS_CONSOLE_TYPE
ULONG BlGetBootOptionSize(_In_ PBL_BCD_OPTION BcdOption)
Definition: bcdopt.c:115
NTSTATUS ConsoleEfiGopEnable(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: gop.c:88
struct _BL_HASH_ENTRY BL_HASH_ENTRY
NTSTATUS MmPaReleaseSelfMapPages(_In_ PHYSICAL_ADDRESS Address)
Definition: pagealloc.c:1505
_BL_BOOT_ERROR_STATUS
Definition: bl.h:890
@ BootOptions
Definition: bl.h:898
@ Recover
Definition: bl.h:892
@ RecoverOem
Definition: bl.h:893
@ AdvancedOptions
Definition: bl.h:897
@ Reboot
Definition: bl.h:891
@ NextOs
Definition: bl.h:895
@ TryAgain
Definition: bl.h:896
@ OsSelection
Definition: bl.h:894
struct _BL_INPUT_CONSOLE_VTABLE BL_INPUT_CONSOLE_VTABLE
PWCHAR BlResourceFindHtml(VOID)
Definition: resource.c:305
NTSTATUS EfiConOutSetMode(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Mode)
Definition: firmware.c:1066
struct _BL_DEFERRED_FONT_FILE * PBL_DEFERRED_FONT_FILE
VOID BiCloseKey(_In_ HANDLE KeyHandle)
Definition: bootreg.c:141
VOID EfiConOutReadCurrentMode(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _Out_ EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode)
Definition: firmware.c:1227
struct _BL_FILE_CALLBACKS * PBL_FILE_CALLBACKS
enum _BL_BOOT_ERROR_STATUS BL_BOOT_ERROR_STATUS
struct _BL_INPUT_CONSOLE BL_INPUT_CONSOLE
ULONG BlpApplicationFlags
Definition: bootlib.c:21
struct _BL_HASH_ENTRY * PBL_HASH_ENTRY
PBL_MM_RELOCATE_SELF_MAP BlMmRelocateSelfMap
Definition: arch.c:16
NTSTATUS(* PBL_DEVICE_ENUMERATE_DEVICE_CLASS)(VOID)
Definition: bl.h:613
struct _BL_MENU_STATUS BL_MENU_STATUS
NTSTATUS BlUtlInitialize(VOID)
Definition: util.c:197
VOID BlDisplayInvalidateOemBitmap(VOID)
Definition: display.c:723
NTSTATUS(* PBL_FILE_WRITE)(VOID)
Definition: bl.h:417
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappingTrackers
Definition: pagealloc.c:46
NTSTATUS BlDisplayGetScreenResolution(_Out_ PULONG HRes, _Out_ PULONG Vres)
Definition: display.c:680
PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE BlMmMoveVirtualAddressRange
Definition: arch.c:17
CPU_VENDORS BlArchGetCpuVendor(VOID)
Definition: util.c:937
BL_DISPLAY_MODE ConsoleTextResolutionList[]
Definition: display.c:30
BL_ADDRESS_RANGE MmArchKsegAddressRange
Definition: mmx86.c:29
struct _BL_INPUT_CONSOLE * PBL_INPUT_CONSOLE
BOOLEAN MmArchTranslateVirtualAddress(_In_ PVOID VirtualAddress, _Out_opt_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CachingFlags)
Definition: mmx86.c:108
NTSTATUS BlSecureBootCheckForFactoryReset(VOID)
Definition: firmware.c:759
BOOLEAN(* PBL_TBL_LOOKUP_ROUTINE)(_In_ PVOID Entry, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
Definition: bl.h:565
NTSTATUS ConsoleEfiGraphicalOpenProtocol(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole, _In_ BL_GRAPHICS_CONSOLE_TYPE Type)
Definition: guicons.c:34
NTSTATUS BfLoadFontFile(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ PWCHAR FontPath)
Definition: font.c:51
NTSTATUS(* PCONSOLE_SET_GRAPHICAL_RESOLUTION)(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ struct _BL_DISPLAY_MODE DisplayMode)
Definition: bl.h:543
NTSTATUS BlAppendBootOptionInteger(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ ULONGLONG Value)
Definition: bcdopt.c:657
NTSTATUS BlMmRemoveBadMemory(VOID)
Definition: mm.c:155
VOID ConsoleFirmwareGraphicalClose(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: guicons.c:18
NTSTATUS(* PBL_DEVICE_CREATE)(VOID)
Definition: bl.h:673
NTSTATUS(* PBL_MM_REMAP_VIRTUAL_ADDRESS)(_In_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)
Definition: bl.h:722
NTSTATUS ConsoleFirmwareTextSetState(_In_ PBL_TEXT_CONSOLE TextConsole, _In_ UCHAR Mask, _In_ PBL_DISPLAY_STATE State)
Definition: textcons.c:198
NTSTATUS EfiFreePages(_In_ ULONG Pages, _In_ EFI_PHYSICAL_ADDRESS PhysicalAddress)
Definition: firmware.c:973
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)
Definition: descriptor.c:249
struct _BL_PD_DATA_BLOB BL_PD_DATA_BLOB
LIST_ENTRY RegisteredFileSystems
Definition: file.c:18
NTSTATUS MmPaTruncateMemory(_In_ ULONGLONG BasePage)
Definition: pagealloc.c:51
NTSTATUS BlGetBootOptionGuid(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID Value)
Definition: bcdopt.c:228
NTSTATUS(* PBL_MM_UNMAP_VIRTUAL_ADDRESS)(_In_ PVOID VirtualAddress, _In_ ULONG Size)
Definition: bl.h:716
NTSTATUS BlpMmInitialize(_In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
Definition: mm.c:541
NTSTATUS BlFwEnumerateDevice(_In_ PBL_DEVICE_DESCRIPTOR Device)
Definition: firmware.c:2375
struct _BL_DEVICE_ENTRY BL_DEVICE_ENTRY
VOID ConsoleEfiUgaClose(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: uga.c:27
NTSTATUS BlAppendBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION Options)
Definition: bcdopt.c:737
VOID MmMdFreeGlobalDescriptors(VOID)
Definition: descriptor.c:1332
enum _BL_MEMORY_DESCRIPTOR_TYPE BL_MEMORY_DESCRIPTOR_TYPE
EFI_STATUS EfiGetEfiStatusCode(_In_ NTSTATUS Status)
Definition: firmware.c:2474
enum _BL_TRANSLATION_TYPE BL_TRANSLATION_TYPE
struct _BL_APPLICATION_ENTRY BL_APPLICATION_ENTRY
_BL_DEVICE_TYPE
Definition: bl.h:246
@ LegacyPartitionDevice
Definition: bl.h:248
@ LocateDevice
Definition: bl.h:253
@ SerialDevice
Definition: bl.h:249
@ DiskDevice
Definition: bl.h:247
@ PartitionDevice
Definition: bl.h:252
@ UdpDevice
Definition: bl.h:250
@ BootDevice
Definition: bl.h:251
NTSTATUS BlUtlGetAcpiTable(_Out_ PVOID *TableAddress, _In_ ULONG Signature)
Definition: util.c:34
BL_MEMORY_DESCRIPTOR_LIST MmMdlTruncatedMemory
Definition: pagealloc.c:42
VOID BlpArchSwitchContext(_In_ BL_ARCH_MODE NewMode)
Definition: arch.c:166
NTSTATUS(* PCONSOLE_SET_TEXT_RESOLUTION)(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG NewTextResolution, _Out_ PULONG OldTextResolution)
Definition: bl.h:515
NTSTATUS ConsoleGraphicalSetTextState(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Mask, _In_ PBL_DISPLAY_STATE TextState)
Definition: guicons.c:37
struct _BL_BUFFER_DESCRIPTOR BL_BUFFER_DESCRIPTOR
BL_MEMORY_DESCRIPTOR_LIST MmMdlCompleteBadMemory
Definition: pagealloc.c:44
VOID BfiFreeDeferredFontFile(_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
Definition: font.c:30
EFI_GUID EfiSimpleTextInputExProtocol
Definition: firmware.c:32
NTSTATUS(* PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE)(_In_ PVOID DestinationAddress, _In_ PVOID SourceAddress, _In_ ULONGLONG Size)
Definition: bl.h:688
#define BL_MM_INCLUDE_ONLY_FIRMWARE_MEMORY
Definition: bl.h:117
NTSTATUS BlPdQueryData(_In_ const GUID *DataGuid, _In_ PVOID Unknown, _Inout_ PBL_PD_DATA_BLOB DataBlob)
Definition: bootlib.c:457
enum _BL_COLOR BL_COLOR
enum _BL_MEMORY_ATTR BL_MEMORY_ATTR
NTSTATUS EfiStall(_In_ ULONG StallTime)
Definition: firmware.c:1003
NTSTATUS ConsoleTextBaseGetTextState(_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PBL_DISPLAY_STATE TextState)
Definition: textcons.c:47
BOOLEAN ConsolepFindResolution(_In_ PBL_DISPLAY_MODE Mode, _In_ PBL_DISPLAY_MODE List, _In_ ULONG MaxIndex)
Definition: textcons.c:159
struct _BL_DEVICE_ENTRY * PBL_DEVICE_ENTRY
NTSTATUS TblDoNotPurgeEntry(_In_ PVOID Entry)
Definition: util.c:495
PBL_ARCH_CONTEXT CurrentExecutionContext
Definition: arch.c:17
struct _BL_LOADED_APPLICATION_ENTRY BL_LOADED_APPLICATION_ENTRY
NTSTATUS(* PBL_TBL_MAP_ROUTINE)(_In_ PVOID Entry, _In_ ULONG EntryIndex)
Definition: bl.h:575
_BL_GRAPHICS_CONSOLE_TYPE
Definition: bl.h:1139
@ BlUgaConsole
Definition: bl.h:1141
@ BlGopConsole
Definition: bl.h:1140
VOID BlRemoveBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
Definition: bcdopt.c:801
PGUID BlGetApplicationIdentifier(VOID)
Definition: bootlib.c:414
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedAllocated
Definition: pagealloc.c:35
FORCEINLINE VOID BlSetupDefaultParameters(_Out_ PBL_LIBRARY_PARAMETERS LibraryParameters)
Definition: bl.h:1354
PBL_MM_FLUSH_TLB BlMmFlushTlb
Definition: mmx86.c:48
NTSTATUS ConsoleGraphicalGetGraphicalResolution(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ PBL_DISPLAY_MODE DisplayMode)
NTSTATUS BlpResourceInitialize(VOID)
Definition: resource.c:478
NTSTATUS BlHtDelete(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry)
Definition: util.c:722
NTSTATUS BlpSecureBootEFIIsEnabled(VOID)
Definition: firmware.c:687
_BL_LOCAL_DEVICE_TYPE
Definition: bl.h:260
@ FloppyDevice
Definition: bl.h:262
@ RamDiskDevice
Definition: bl.h:264
@ FileDevice
Definition: bl.h:265
@ LocalDevice
Definition: bl.h:261
@ VirtualDiskDevice
Definition: bl.h:266
@ CdRomDevice
Definition: bl.h:263
struct _BL_WINDOWS_LOAD_OPTIONS * PBL_WINDOWS_LOAD_OPTIONS
ULONGLONG BlArchGetPerformanceCounter(VOID)
Definition: util.c:902
PBL_STATUS_ERROR_HANDLER BlpStatusErrorHandler
Definition: debug.c:20
struct _BL_PD_DATA_BLOB * PBL_PD_DATA_BLOB
NTSTATUS BcInitialize(VOID)
Definition: blkcache.c:73
BL_LIBRARY_PARAMETERS BlpLibraryParameters
Definition: bootlib.c:15
VOID BlDestroyLibrary(VOID)
Definition: bootlib.c:405
NTSTATUS BlTblSetEntry(_Inout_ PVOID **Table, _Inout_ PULONG Count, _In_ PVOID Entry, _Out_ PULONG EntryIndex, _In_ PBL_TBL_SET_ROUTINE Callback)
Definition: util.c:321
NTSTATUS(* PBL_FILE_GET_NEXT)(VOID)
Definition: bl.h:423
BOOLEAN BlDisplayValidOemBitmap(VOID)
Definition: display.c:880
struct _BL_TEXT_CONSOLE BL_TEXT_CONSOLE
struct _BL_DISPLAY_MODE BL_DISPLAY_MODE
NTSTATUS(* PCONSOLE_GET_GRAPHICAL_RESOLUTION)(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _Out_ struct _BL_DISPLAY_MODE *DisplayMode)
Definition: bl.h:536
struct _BL_MEMORY_DESCRIPTOR_LIST * PBL_MEMORY_DESCRIPTOR_LIST
struct _BL_DISPLAY_MODE * PBL_DISPLAY_MODE
NTSTATUS BlTblMap(_In_ PVOID *Table, _In_ ULONG Count, _In_ PBL_TBL_MAP_ROUTINE MapCallback)
Definition: util.c:399
NTSTATUS ConsoleTextLocalConstruct(_In_ PBL_TEXT_CONSOLE TextConsole, _In_ BOOLEAN Activate)
Definition: textcons.c:104
BL_MEMORY_DESCRIPTOR_LIST MmMdlFreeVirtual
Definition: pagealloc.c:45
EFI_DEVICE_PATH * EfiGetLeafNode(_In_ EFI_DEVICE_PATH *DevicePath)
Definition: firmware.c:102
NTSTATUS BlImgLoadBootApplication(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG AppHandle)
Definition: image.c:1324
PIMAGE_SECTION_HEADER BlImgFindSection(_In_ PVOID ImageBase, _In_ ULONG ImageSize)
Definition: image.c:611
NTSTATUS BlCopyBootOptions(_In_ PBL_BCD_OPTION OptionList, _Out_ PBL_BCD_OPTION *CopiedOptions)
Definition: bcdopt.c:597
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedUnallocated
Definition: pagealloc.c:39
VOID(* PBL_MM_DESTROY_SELF_MAP)(VOID)
Definition: bl.h:701
VOID ConsoleGraphicalDestruct(_In_ struct _BL_GRAPHICS_CONSOLE *Console)
NTSTATUS EfiConOutSetCursorPosition(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Column, _In_ ULONG Row)
Definition: firmware.c:1130
WCHAR BlScratchBuffer[8192]
Definition: firmware.c:39
NTSTATUS ConsoleTextLocalReinitialize(_In_ struct _BL_TEXT_CONSOLE *Console)
Definition: textcons.c:38
struct _DIB_HEADER * PDIB_HEADER
struct _BMP_HEADER * PBMP_HEADER
_BL_MENU_POLICY
Definition: bl.h:216
@ MenuPolicyLegacy
Definition: bl.h:217
@ MenuPolicyStandard
Definition: bl.h:218
NTSTATUS(* PBL_FILE_DESTROY_CALLBACK)(_In_ PVOID Entry)
Definition: bl.h:469
NTSTATUS ConsoleEfiGopOpen(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: gop.c:198
_BL_COLOR
Definition: bl.h:196
@ LtRed
Definition: bl.h:209
@ LtMagenta
Definition: bl.h:210
@ LtBlue
Definition: bl.h:206
@ LtCyan
Definition: bl.h:208
@ LtGreen
Definition: bl.h:207
@ Gray
Definition: bl.h:205
@ LtGray
Definition: bl.h:204
@ Brown
Definition: bl.h:203
@ Cyan
Definition: bl.h:200
@ Magenta
Definition: bl.h:202
@ White
Definition: bl.h:212
@ Yellow
Definition: bl.h:211
@ Black
Definition: bl.h:197
@ Green
Definition: bl.h:199
@ Red
Definition: bl.h:201
@ Blue
Definition: bl.h:198
struct _BL_FILE_INFORMATION * PBL_FILE_INFORMATION
struct _BL_RETURN_ARGUMENTS BL_RETURN_ARGUMENTS
struct _BL_DEVICE_INFORMATION BL_DEVICE_INFORMATION
BOOLEAN ConsoleGraphicalIsEnabled(_In_ struct _BL_GRAPHICS_CONSOLE *Console)
ULONG MmDescriptorCallTreeCount
Definition: mm.c:19
struct _BL_DEVICE_CALLBACKS BL_DEVICE_CALLBACKS
enum _BL_PARTITION_TYPE BL_PARTITION_TYPE
NTSTATUS MmFwFreePages(_In_ ULONG BasePage, _In_ ULONG PageCount)
Definition: fwutil.c:28
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
Definition: mm.c:192
PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE BlMmZeroVirtualAddressRange
Definition: arch.c:18
NTSTATUS BlAppendBootOptionString(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ PWCHAR OptionString)
Definition: bcdopt.c:689
enum _BL_DEVICE_TYPE BL_DEVICE_TYPE
NTSTATUS BlDeviceSetInformation(_In_ ULONG DeviceId, _In_ PBL_DEVICE_INFORMATION DeviceInformation)
NTSTATUS(* PBL_IO_DESTROY_ROUTINE)(VOID)
Definition: bl.h:588
VOID MmMdFreeList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList)
Definition: descriptor.c:356
NTSTATUS BlpGetBootOptionIntegerList(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG *Value, _Out_ PULONGLONG Count, _In_ BOOLEAN NoCopy)
Definition: bcdopt.c:541
NTSTATUS(* PCONSOLE_CLEAR_TEXT)(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ BOOLEAN LineOnly)
Definition: bl.h:523
NTSTATUS BlpDisplayRegisterLocale(_In_ PWCHAR Locale)
Definition: display.c:177
enum _BL_MEMORY_CLASS BL_MEMORY_CLASS
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)
Definition: descriptor.c:1158
NTSTATUS MmMdRemoveRegionFromMdlEx(__in PBL_MEMORY_DESCRIPTOR_LIST MdList, __in ULONG Flags, __in ULONGLONG BasePage, __in ULONGLONG PageCount, __in PBL_MEMORY_DESCRIPTOR_LIST NewMdList)
struct _BL_MEMORY_DATA BL_MEMORY_DATA
NTSTATUS ConsoleGraphicalGetOriginalResolution(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ PBL_DISPLAY_MODE DisplayMode)
NTSTATUS MmUnmapVirtualAddress(_Inout_ PVOID *VirtualAddress, _Inout_ PULONGLONG Size)
Definition: mm.c:453
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
Definition: bcdopt.c:146
struct _BL_GRAPHICS_CONSOLE BL_GRAPHICS_CONSOLE
NTSTATUS(* PBL_FS_PURGE_CALLBACK)(VOID)
Definition: bl.h:463
ULONG(* PBL_HASH_TABLE_HASH_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry, _In_ ULONG TableSize)
Definition: bl.h:602
NTSTATUS EfiConOutSetAttribute(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ ULONG Attribute)
Definition: firmware.c:1098
NTSTATUS BlFwGetParameters(_In_ PBL_FIRMWARE_DESCRIPTOR Parameters)
Definition: firmware.c:2359
struct _BL_BLOCK_DEVICE BL_BLOCK_DEVICE
VOID BlFwReboot(VOID)
Definition: fwutil.c:14
struct _BL_ADDRESS_RANGE * PBL_ADDRESS_RANGE
struct _BL_BLOCK_DEVICE_INFORMATION BL_BLOCK_DEVICE_INFORMATION
_BL_MEMORY_ATTR
Definition: bl.h:342
@ BlMemoryLargePages
Definition: bl.h:366
@ BlMemoryFixed
Definition: bl.h:368
@ BlMemoryReadProtected
Definition: bl.h:358
@ BlMemoryKernelRange
Definition: bl.h:367
@ BlMemoryValidCacheAttributeMask
Definition: bl.h:352
@ BlMemoryExecuteProtected
Definition: bl.h:359
@ BlMemoryWriteThrough
Definition: bl.h:348
@ BlMemoryValidProtectionAttributes
Definition: bl.h:360
@ BlMemoryUpdate
Definition: bl.h:378
@ BlMemoryValidProtectionAttributeMask
Definition: bl.h:361
@ BlMemoryValidAllocationAttributes
Definition: bl.h:370
@ BlMemoryPersistent
Definition: bl.h:380
@ BlMemoryWriteProtected
Definition: bl.h:357
@ BlMemoryValidCacheAttributes
Definition: bl.h:351
@ BlMemorySpecial
Definition: bl.h:381
@ BlMemoryUncached
Definition: bl.h:346
@ BlMemoryValidAllocationAttributeMask
Definition: bl.h:371
@ BlMemoryValidTypeAttributes
Definition: bl.h:383
@ BlMemoryRuntime
Definition: bl.h:376
@ BlMemoryValidTypeAttributeMask
Definition: bl.h:384
@ BlMemoryWriteBack
Definition: bl.h:349
@ BlMemoryWriteCombined
Definition: bl.h:347
@ BlMemoryUncachedExported
Definition: bl.h:350
@ BlMemoryFirmware
Definition: bl.h:382
@ BlMemoryNonFirmware
Definition: bl.h:379
@ BlMemoryBelow1MB
Definition: bl.h:369
@ BlMemoryCoalesced
Definition: bl.h:377
VOID EfiGopGetFrameBuffer(_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _Out_ PHYSICAL_ADDRESS *FrameBuffer, _Out_ UINTN *FrameBufferSize)
Definition: firmware.c:1255
struct _DIB_HEADER DIB_HEADER
VOID MmMdInitializeList(_In_ PBL_MEMORY_DESCRIPTOR_LIST DescriptorList, _In_ ULONG Type, _In_ PLIST_ENTRY ListHead)
Definition: descriptor.c:222
EFI_GUID EfiUgaDrawProtocol
Definition: firmware.c:29
NTSTATUS BlGetApplicationBaseAndSize(_Out_ PVOID *ImageBase, _Out_ PULONG ImageSize)
Definition: bootlib.c:424
VOID MmMdInitialize(_In_ ULONG Phase, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
Definition: descriptor.c:1384
NTSTATUS(* PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE)(_In_ PVOID DestinationAddress, _In_ ULONGLONG Size)
Definition: bl.h:695
NTSTATUS EtfsInitialize(VOID)
Definition: etfs.c:969
NTSTATUS(* PBL_FILE_GET_INFO)(_In_ struct _BL_FILE_ENTRY *FileEntry, _Out_ struct _BL_FILE_INFORMATION *FileInfo)
Definition: bl.h:429
NTSTATUS BlpArchInitialize(_In_ ULONG Phase)
Definition: arch.c:235
NTSTATUS BlDisplaySetScreenResolution(VOID)
Definition: display.c:646
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL * EfiConInEx
Definition: firmware.c:25
NTSTATUS BlpMmInitializeConstraints(VOID)
Definition: pagealloc.c:106
struct _BL_FILE_PATH_DESCRIPTOR * PBL_FILE_PATH_DESCRIPTOR
NTSTATUS EfiConOutOutputString(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ PWCHAR String)
Definition: firmware.c:1195
NTSTATUS EfiConOutEnableCursor(_In_ SIMPLE_TEXT_OUTPUT_INTERFACE *TextInterface, _In_ BOOLEAN Visible)
Definition: firmware.c:1163
NTSTATUS(* PBL_DEVICE_READ)(_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _In_ PVOID Buffer, _In_ ULONG Size, _Out_ PULONG BytesRead)
Definition: bl.h:632
ULONG ConsoleGraphicalResolutionListFlags
Definition: display.c:21
struct _BL_DEVICE_INFORMATION * PBL_DEVICE_INFORMATION
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
Definition: bootlib.c:19
struct _BL_FILE_SYSTEM_ENTRY * PBL_FILE_SYSTEM_ENTRY
NTSTATUS(* PBL_DEVICE_GET_INFORMATION)(_In_ struct _BL_DEVICE_ENTRY *DeviceEntry, _Out_ struct _BL_DEVICE_INFORMATION *DeviceInformation)
Definition: bl.h:647
NTSTATUS ConsoleInputBaseReinitialize(_In_ struct _BL_INPUT_CONSOLE *Console)
BL_MEMORY_DESCRIPTOR_LIST MmMdlFwAllocationTracker
Definition: pagealloc.c:37
NTSTATUS MmMdTruncateDescriptors(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR_LIST NewList, _In_ ULONGLONG BasePage)
Definition: descriptor.c:410
BOOLEAN(* PCONSOLE_IS_ENABLED)(_In_ struct _BL_GRAPHICS_CONSOLE *Console)
Definition: bl.h:530
NTSTATUS BlFileClose(_In_ ULONG FileId)
Definition: file.c:220
NTSTATUS(* PBL_FILE_READ)(_In_ struct _BL_FILE_ENTRY *FileEntry, _In_ PVOID Buffer, _In_ ULONG Size, _Out_opt_ PULONG BytesRead)
Definition: bl.h:408
NTSTATUS ConsoleGraphicalEnable(_In_ struct _BL_GRAPHICS_CONSOLE *Console, _In_ BOOLEAN Enable)
NTSTATUS EtfsMount(_In_ ULONG DeviceId, _In_ ULONG Unknown, _Out_ PBL_FILE_ENTRY *FileEntry)
Definition: etfs.c:874
BOOLEAN BlBdDebuggerEnabled(VOID)
Definition: debug.c:53
struct _BL_HASH_VALUE * PBL_HASH_VALUE
PBITMAP BlDisplayGetOemBitmap(_Out_ PCOORD Offset, _Out_opt_ PULONG Flags)
PVOID DspRemoteInputConsole
Definition: display.c:35
struct _BL_REMOTE_CONSOLE BL_REMOTE_CONSOLE
FORCEINLINE PVOID PhysicalAddressToPtr(_In_ PHYSICAL_ADDRESS PhysicalAddress)
Definition: bl.h:1389
EFI_GUID EfiGlobalVariable
Definition: firmware.c:36
NTSTATUS(* PCONSOLE_GET_TEXT_STATE)(_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ struct _BL_DISPLAY_STATE *TextState)
Definition: bl.h:493
NTSTATUS BlFileReadAtOffsetEx(_In_ ULONG FileId, _In_ ULONG Size, _In_ ULONGLONG ByteOffset, _In_ PVOID Buffer, _Out_ PULONG BytesReturned, _In_ ULONG Flags)
Definition: file.c:788
NTSTATUS ConsoleCreateLocalInputCnsole(VOID)
struct _COORD * PCOORD
NTSTATUS BlpDeviceInitialize(VOID)
Definition: device.c:2309
PBL_BCD_OPTION MiscGetBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
Definition: bcdopt.c:17
struct _BL_IMG_FILE * PBL_IMG_FILE
enum _BL_LOCAL_DEVICE_TYPE BL_LOCAL_DEVICE_TYPE
NTSTATUS ConsoleEfiUgaOpen(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: uga.c:18
#define BL_MM_INCLUDE_NO_FIRMWARE_MEMORY
Definition: bl.h:107
VOID BlUtlUpdateProgress(_In_ ULONG Percentage, _Out_opt_ PBOOLEAN Completed)
Definition: util.c:181
struct _BL_BCD_OPTION BL_BCD_OPTION
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
Definition: heapalloc.c:663
NTSTATUS(* PBL_FILE_CLOSE)(_In_ struct _BL_FILE_ENTRY *FileEntry)
Definition: bl.h:402
VOID BlStatusPrint(_In_ PCWCH Format,...)
Definition: debug.c:75
enum _BL_MENU_POLICY BL_MENU_POLICY
NTSTATUS BlpMmCreateBlockAllocator(VOID)
Definition: blkalloc.c:213
NTSTATUS(* PBL_TBL_SET_ROUTINE)(_In_ PVOID Entry)
Definition: bl.h:582
NTSTATUS BlImgUnloadBootApplication(_In_ ULONG AppHandle)
Definition: image.c:2021
_BL_ARCH_MODE
Definition: bl.h:237
@ BlProtectedMode
Definition: bl.h:238
@ BlRealMode
Definition: bl.h:239
struct _BL_LOADED_APPLICATION_ENTRY * PBL_LOADED_APPLICATION_ENTRY
NTSTATUS BlpFileInitialize(VOID)
Definition: file.c:908
NTSTATUS EfiGopSetMode(_In_ EFI_GRAPHICS_OUTPUT_PROTOCOL *GopInterface, _In_ ULONG Mode)
Definition: firmware.c:1349
struct _BL_TEXT_CONSOLE_VTABLE BL_TEXT_CONSOLE_VTABLE
NTSTATUS BlpIoRegisterDestroyRoutine(_In_ PBL_IO_DESTROY_ROUTINE DestroyRoutine)
Definition: io.c:21
NTSTATUS BlImgStartBootApplication(_In_ ULONG AppHandle, _Inout_ PBL_RETURN_ARGUMENTS ReturnArguments)
NTSTATUS ConsoleTextBaseGetTextResolution(_In_ struct _BL_TEXT_CONSOLE *Console, _Out_ PULONG TextResolution)
Definition: textcons.c:66
NTSTATUS MmFwGetMemoryMap(_Out_ PBL_MEMORY_DESCRIPTOR_LIST MemoryMap, _In_ ULONG Flags)
Definition: firmware.c:1845
VOID BlStatusError(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
Definition: debug.c:121
NTSTATUS(* PBL_STATUS_ERROR_HANDLER)(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
Definition: bl.h:745
NTSTATUS ConsoleTextLocalClearText(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ BOOLEAN LineOnly)
Definition: textcons.c:85
NTSTATUS BlpFwInitialize(_In_ ULONG Phase, _In_ PBL_FIRMWARE_DESCRIPTOR FirmwareParameters)
Definition: firmware.c:2290
VOID Archx86TransferTo32BitApplicationAsm(VOID)
Definition: arch.c:51
NTSTATUS EfiAllocatePages(_In_ ULONG Type, _In_ ULONG Pages, _Inout_ EFI_PHYSICAL_ADDRESS *Memory)
Definition: firmware.c:1568
NTSTATUS BlAppendBootOptionBoolean(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ BOOLEAN Value)
Definition: bcdopt.c:625
struct _BL_FILE_ENTRY * PBL_FILE_ENTRY
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * EfiConOut
Definition: firmware.c:23
NTSTATUS(* PBL_FS_DESTROY_CALLBACK)(VOID)
Definition: bl.h:449
NTSTATUS MmBaInitialize(VOID)
Definition: blkalloc.c:271
NTSTATUS(* PCONSOLE_WRITE_TEXT)(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ PCHAR Text, _In_ ULONG Attribute)
Definition: bl.h:557
NTSTATUS(* PBL_DEVICE_FLUSH)(VOID)
Definition: bl.h:667
NTSTATUS MmSelectMappingAddress(_Out_ PVOID *MappingAddress, _In_ PVOID PreferredAddress, _In_ ULONGLONG Size, _In_ ULONG AllocationAttributes, _In_ ULONG Flags, _In_ PHYSICAL_ADDRESS PhysicalAddress)
Definition: pagealloc.c:1625
BOOLEAN BlMmTranslateVirtualAddress(_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress)
Definition: mm.c:525
struct _BL_GRAPHICS_CONSOLE_VTABLE * PBL_GRAPHICS_CONSOLE_VTABLE
NTSTATUS BlGetBootOptionInteger(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
Definition: bcdopt.c:467
NTSTATUS EfiLocateHandleBuffer(_In_ EFI_LOCATE_SEARCH_TYPE SearchType, _In_ EFI_GUID *Protocol, _Inout_ PULONG HandleCount, _Inout_ EFI_HANDLE **Buffer)
Definition: firmware.c:1399
NTSTATUS EfipGetRsdt(_Out_ PPHYSICAL_ADDRESS FoundRsdt)
Definition: firmware.c:1635
NTSTATUS ConsoleGraphicalClearPixels(_In_ PBL_GRAPHICS_CONSOLE Console, _In_ ULONG Color)
Definition: guicons.c:275
VOID(* PBL_MM_FLUSH_TLB_ENTRY)(_In_ PVOID VirtualAddress)
Definition: bl.h:706
struct _BL_FILE_SYSTEM_REGISTRATION_TABLE BL_FILE_SYSTEM_REGISTRATION_TABLE
NTSTATUS BlDisplayClearScreen(VOID)
Definition: display.c:943
struct _BL_TEXT_CONSOLE * PBL_TEXT_CONSOLE
NTSTATUS BiDeleteKey(_In_ HANDLE KeyHandle)
Definition: bootreg.c:892
VOID ConsoleEfiGopClose(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
Definition: gop.c:177
struct _BL_BLOCK_DEVICE_INFORMATION * PBL_BLOCK_DEVICE_INFORMATION
VOID(* PBL_MM_FLUSH_TLB)(VOID)
Definition: bl.h:678
ULONG BlGetBootOptionListSize(_In_ PBL_BCD_OPTION BcdOption)
Definition: bcdopt.c:79
NTSTATUS EfiConInExReset(VOID)
Definition: firmware.c:825
NTSTATUS BiEnumerateSubKeys(_In_ HANDLE KeyHandle, _Out_ PWCHAR **SubKeyList, _Out_ PULONG SubKeyCount)
Definition: bootreg.c:723
struct _COORD COORD
NTSTATUS ConsoleTextLocalSetTextState(_In_ struct _BL_TEXT_CONSOLE *Console, _In_ ULONG Flags, _In_ PBL_DISPLAY_STATE TextState)
Definition: textcons.c:56
NTSTATUS(* PBL_MM_MAP_PHYSICAL_ADDRESS)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _Out_ PVOID VirtualAddress, _In_ ULONG Size, _In_ ULONG CacheAttributes)
Definition: bl.h:730
NTSTATUS BiLoadHive(_In_ PBL_FILE_PATH_DESCRIPTOR FilePath, _Out_ PHANDLE HiveHandle)
Definition: bootreg.c:369
struct _BL_HASH_TABLE * PBL_HASH_TABLE
VOID ConsolepClearBuffer(_In_ PUCHAR FrameBuffer, _In_ ULONG Width, _In_ PUCHAR FillColor, _In_ ULONG Height, _In_ ULONG ScanlineWidth, _In_ ULONG PixelDepth)
Definition: guicons.c:109
BL_MEMORY_DESCRIPTOR_LIST MmMdlPersistentMemory
Definition: pagealloc.c:43
struct _BL_DISPLAY_STATE * PBL_DISPLAY_STATE
NTSTATUS(* PBL_DEVICE_WRITE)(VOID)
Definition: bl.h:641
NTSTATUS ConsoleFirmwareTextClear(_In_ PBL_TEXT_CONSOLE Console, _In_ BOOLEAN LineOnly)
Definition: textcons.c:557
struct _BL_HASH_VALUE BL_HASH_VALUE
NTSTATUS BlHtLookup(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _Out_ PBL_HASH_VALUE *Value)
NTSTATUS EfiConInReset(VOID)
Definition: firmware.c:794
VOID(* PCONSOLE_DESTRUCT)(_In_ struct _BL_TEXT_CONSOLE *Console)
Definition: bl.h:481
enum _BL_ARCH_MODE BL_ARCH_MODE
PBL_MEMORY_DESCRIPTOR MmMdFindDescriptor(_In_ ULONG WhichList, _In_ ULONG Flags, _In_ ULONGLONG Page)
Definition: descriptor.c:1049
BIOS_MEMORY_MAP MemoryMap[32]
Definition: loader.c:11
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
Definition: bufpool.h:45
_In_ PVOID Argument2
Definition: classpnp.h:721
char * Text
Definition: combotst.c:136
#define __in
Definition: dbghelp.h:35
#define NULL
Definition: types.h:112
#define DEVICE_TYPE
Definition: guid.c:10
#define NTSTATUS
Definition: precomp.h:21
static const WCHAR Signature[]
Definition: parser.c:141
#define ULONG_PTR
Definition: config.h:101
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
Definition: fatprocs.h:731
struct _FileName FileName
Definition: fatprocs.h:896
unsigned int Mask
Definition: fpcontrol.c:82
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
Definition: fsrtlfuncs.h:108
InternalIoctlParams Argument4
ULONG Handle
Definition: gdb_input.c:15
ImageFlags
Definition: gdiplusenums.h:332
Status
Definition: gdiplustypes.h:25
ASMGENDATA Table[]
Definition: genincdata.c:61
_In_ ULONG Mode
Definition: hubbusif.h:303
@ Unknown
Definition: i8042prt.h:114
#define C_ASSERT(e)
Definition: intsafe.h:73
ULONG FrameBufferSize
Definition: xboxvideo.c:29
PVOID FrameBuffer
Definition: xboxvideo.c:28
#define _Out_opt_
Definition: ms_sal.h:346
#define _Inout_
Definition: ms_sal.h:378
#define _Outptr_
Definition: ms_sal.h:427
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4755
_In_ NDIS_ERROR_CODE ErrorCode
Definition: ndis.h:4436
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4715
CPU_VENDORS
Definition: ketypes.h:103
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG AllocationAttributes
Definition: mmfuncs.h:364
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
int Count
Definition: noreturn.cpp:7
CONST WCHAR * PCWCH
Definition: ntbasedef.h:411
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:383
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
_In_ PVOID _Out_opt_ BOOLEAN _Out_opt_ PPFN_NUMBER Page
Definition: mm.h:1306
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
static VIDEODISPLAYMODE DisplayMode
Definition: pcvideo.c:117
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
PCSTR ExtraOptions
Definition: setupldr.c:336
base for all directory entries
Definition: entries.h:138
base of all file and directory entries
Definition: entries.h:83
Definition: bl.h:1331
DIB_HEADER DibHeader
Definition: bl.h:1333
BMP_HEADER BmpHeader
Definition: bl.h:1332
ULONGLONG Maximum
Definition: bl.h:1015
ULONGLONG Minimum
Definition: bl.h:1014
Definition: bl.h:855
ULONG Flags
Definition: bl.h:857
CHAR Signature[8]
Definition: bl.h:856
GUID Guid
Definition: bl.h:858
BL_BCD_OPTION BcdData
Definition: bl.h:860
ULONG Unknown[4]
Definition: bl.h:859
BL_TRANSLATION_TYPE TranslationType
Definition: bl.h:1000
BL_ARCH_MODE Mode
Definition: bl.h:999
ULONG ContextFlags
Definition: bl.h:1001
ULONG DataSize
Definition: bl.h:848
ULONG ListOffset
Definition: bl.h:849
ULONG Empty
Definition: bl.h:851
ULONG NextEntryOffset
Definition: bl.h:850
ULONG Type
Definition: bl.h:846
ULONG DataOffset
Definition: bl.h:847
struct _BL_BLOCK_DEVICE_INFORMATION::@144 Disk
BL_LOCAL_DEVICE_TYPE Type
Definition: bl.h:1198
struct _BL_BLOCK_DEVICE_INFORMATION::@144::@145::@147 Mbr
struct _BL_BLOCK_DEVICE_INFORMATION::@144::@145::@148 Gpt
BL_PARTITION_TYPE PartitionType
Definition: bl.h:1201
BL_BLOCK_DEVICE_INFORMATION
Definition: bl.h:1234
EFI_BLOCK_IO * Protocol
Definition: bl.h:1236
ULONGLONG StartOffset
Definition: bl.h:1235
EFI_HANDLE Handle
Definition: bl.h:1237
ULONG ActualSize
Definition: bl.h:1293
ULONG BufferSize
Definition: bl.h:1294
PBL_DEVICE_DESCRIPTOR Device
Definition: bl.h:1301
LIST_ENTRY ListEntry
Definition: bl.h:1299
PBL_DEVICE_WRITE Write
Definition: bl.h:1252
PBL_DEVICE_FLUSH Flush
Definition: bl.h:1256
PBL_DEVICE_RESET Reset
Definition: bl.h:1255
PBL_DEVICE_READ Read
Definition: bl.h:1251
PBL_DEVICE_GET_INFORMATION GetInformation
Definition: bl.h:1253
PBL_DEVICE_OPEN Open
Definition: bl.h:1249
PBL_DEVICE_SET_INFORMATION SetInformation
Definition: bl.h:1254
PBL_DEVICE_CLOSE Close
Definition: bl.h:1250
PBL_DEVICE_CREATE Create
Definition: bl.h:1257
PBL_DEVICE_ENUMERATE_DEVICE_CLASS EnumerateDeviceClass
Definition: bl.h:1248
GUID PartitionGuid
Definition: bl.h:972
union _BL_DEVICE_DESCRIPTOR::@138::@141::@143 Gpt
ULONG PartitionNumber
Definition: bl.h:967
DEVICE_TYPE DeviceType
Definition: bl.h:950
union _BL_DEVICE_DESCRIPTOR::@138::@141::@142 Mbr
struct _BL_DEVICE_DESCRIPTOR::@138::@141 Partition
BL_LOCAL_DEVICE Disk
Definition: bl.h:975
struct _BL_DEVICE_DESCRIPTOR::@138::@140 Remote
BL_LOCAL_DEVICE Local
Definition: bl.h:956
Definition: bl.h:1261
ULONG Unknown
Definition: bl.h:1264
ULONG Flags
Definition: bl.h:1263
ULONG DeviceId
Definition: bl.h:1262
PBL_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: bl.h:1268
BL_DEVICE_CALLBACKS Callbacks
Definition: bl.h:1266
PVOID DeviceSpecificData
Definition: bl.h:1267
ULONG ReferenceCount
Definition: bl.h:1265
BL_DEVICE_TYPE DeviceType
Definition: bl.h:1225
BL_BLOCK_DEVICE_INFORMATION BlockDeviceInfo
Definition: bl.h:1228
ULONG HRes2
Definition: bl.h:1081
ULONG HRes
Definition: bl.h:1079
ULONG VRes
Definition: bl.h:1080
ULONG YPos
Definition: bl.h:1073
ULONG FgColor
Definition: bl.h:1071
ULONG BgColor
Definition: bl.h:1070
ULONG CursorVisible
Definition: bl.h:1074
ULONG XPos
Definition: bl.h:1072
PBL_FILE_READ Read
Definition: bl.h:1030
PBL_FILE_SET_INFO SetInfo
Definition: bl.h:1034
PBL_FILE_GET_INFO GetInfo
Definition: bl.h:1033
PBL_FILE_CLOSE Close
Definition: bl.h:1029
PBL_FILE_GET_NEXT GetNext
Definition: bl.h:1032
PBL_FILE_OPEN Open
Definition: bl.h:1028
PBL_FILE_WRITE Write
Definition: bl.h:1031
Definition: bl.h:1038
ULONGLONG TotalBytesRead
Definition: bl.h:1045
ULONG FileId
Definition: bl.h:1041
ULONG ReferenceCount
Definition: bl.h:1043
ULONG Unknown
Definition: bl.h:1044
BL_FILE_CALLBACKS Callbacks
Definition: bl.h:1047
PVOID FsSpecificData
Definition: bl.h:1048
PWCHAR FilePath
Definition: bl.h:1039
ULONG DeviceId
Definition: bl.h:1040
ULONG Flags
Definition: bl.h:1042
ULONGLONG Unknown2
Definition: bl.h:1046
ULONGLONG Size
Definition: bl.h:1020
PWCHAR FsName
Definition: bl.h:1022
ULONGLONG Offset
Definition: bl.h:1021
UCHAR Path[ANYSIZE_ARRAY]
Definition: bl.h:985
Definition: bl.h:1052
PBL_FS_PURGE_CALLBACK PurgeCallback
Definition: bl.h:1057
PBL_FS_DESTROY_CALLBACK DestroyCallback
Definition: bl.h:1055
PBL_FS_INIT_CALLBACK InitCallback
Definition: bl.h:1054
PBL_FS_MOUNT_CALLBACK MountCallback
Definition: bl.h:1056
LIST_ENTRY ListEntry
Definition: bl.h:1053
PBL_FS_PURGE_CALLBACK Purge
Definition: bl.h:1065
PBL_FS_MOUNT_CALLBACK Mount
Definition: bl.h:1064
PBL_FS_DESTROY_CALLBACK Destroy
Definition: bl.h:1063
PBL_FS_INIT_CALLBACK Init
Definition: bl.h:1062
EFI_HANDLE ImageHandle
Definition: bl.h:810
EFI_SYSTEM_TABLE * SystemTable
Definition: bl.h:811
PCONSOLE_IS_ENABLED IsEnabled
Definition: bl.h:1099
BL_TEXT_CONSOLE_VTABLE Text
Definition: bl.h:1098
PCONSOLE_ENABLE Enable
Definition: bl.h:1100
PCONSOLE_GET_GRAPHICAL_RESOLUTION GetOriginalResolution
Definition: bl.h:1103
PCONSOLE_GET_GRAPHICAL_RESOLUTION GetGraphicalResolution
Definition: bl.h:1102
PCONSOLE_SET_GRAPHICAL_RESOLUTION SetOriginalResolution
Definition: bl.h:1104
EFI_GRAPHICS_OUTPUT_PROTOCOL * Protocol
Definition: bl.h:1155
ULONG OldPixelDepth
Definition: bl.h:1152
ULONG FrameBufferSize
Definition: bl.h:1157
BL_GRAPHICS_CONSOLE_TYPE Type
Definition: bl.h:1154
ULONG PixelsPerScanLine
Definition: bl.h:1158
BL_DISPLAY_MODE OldDisplayMode
Definition: bl.h:1151
PVOID FrameBuffer
Definition: bl.h:1156
BL_DISPLAY_MODE DisplayMode
Definition: bl.h:1147
ULONG PixelDepth
Definition: bl.h:1148
BL_TEXT_CONSOLE TextConsole
Definition: bl.h:1146
EFI_HANDLE Handle
Definition: bl.h:1153
struct _BL_HARDDISK_DEVICE::@129::@132 Gpt
ULONG DiskNumber
Definition: bl.h:918
ULONG PartitionSignature
Definition: bl.h:908
GUID PartitionSignature
Definition: bl.h:913
struct _BL_HARDDISK_DEVICE::@129::@133 Raw
ULONG PartitionType
Definition: bl.h:903
struct _BL_HARDDISK_DEVICE::@129::@131 Mbr
Definition: bl.h:1177
ULONG Flags
Definition: bl.h:1179
ULONG Size
Definition: bl.h:1178
PVOID Value
Definition: bl.h:1180
LIST_ENTRY ListEntry
Definition: bl.h:1191
BL_HASH_ENTRY Entry
Definition: bl.h:1192
BL_HASH_VALUE Value
Definition: bl.h:1193
PLIST_ENTRY HashLinks
Definition: bl.h:1170
PBL_HASH_TABLE_HASH_FUNCTION HashFunction
Definition: bl.h:1173
PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction
Definition: bl.h:1172
ULONG Size
Definition: bl.h:1171
PVOID Data
Definition: bl.h:1186
ULONG DataSize
Definition: bl.h:1185
Definition: bl.h:1284
PBL_APPLICATION_ENTRY AppEntry
Definition: bl.h:1285
ULONG ImageSize
Definition: bl.h:1287
PVOID ImageBase
Definition: bl.h:1286
ULONG FileSize
Definition: bl.h:1279
UCHAR Flags
Definition: bl.h:1273
PVOID BaseAddress
Definition: bl.h:1276
PWCHAR FileName
Definition: bl.h:1280
ULONG FileId
Definition: bl.h:1277
PCONSOLE_REINITIALIZE Reinitialize
Definition: bl.h:1122
PCONSOLE_DESTRUCT Destruct
Definition: bl.h:1121
PULONG Buffer
Definition: bl.h:1132
PULONG EndBuffer
Definition: bl.h:1135
PULONG DataStart
Definition: bl.h:1133
PBL_INPUT_CONSOLE_VTABLE Callbacks
Definition: bl.h:1131
PULONG DataEnd
Definition: bl.h:1134
PWCHAR FontBaseDirectory
Definition: bl.h:764
PWCHAR ApplicationBaseDirectory
Definition: bl.h:762
ULONG MinimumHeapSize
Definition: bl.h:760
ULONG LibraryFlags
Definition: bl.h:757
ULONG HeapAllocationAttributes
Definition: bl.h:761
ULONG DescriptorCount
Definition: bl.h:763
ULONG MinimumAllocationCount
Definition: bl.h:759
ULONG TranslationType
Definition: bl.h:758
Definition: bl.h:864
ULONG Flags
Definition: bl.h:865
PBL_BCD_OPTION BcdData
Definition: bl.h:867
GUID Guid
Definition: bl.h:866
LARGE_INTEGER ImageSize
Definition: bl.h:940
BL_HARDDISK_DEVICE VirtualHardDisk
Definition: bl.h:935
BL_HARDDISK_DEVICE HardDisk
Definition: bl.h:933
PHYSICAL_ADDRESS ImageBase
Definition: bl.h:939
BL_LOCAL_DEVICE_TYPE Type
Definition: bl.h:925
struct _BL_LOCAL_DEVICE::@134::@137 RamDisk
ULONG File
Definition: bl.h:944
struct _BL_LOCAL_DEVICE::@134::@136 FloppyDisk
ULONG DriveNumber
Definition: bl.h:930
ULONG ImageOffset
Definition: bl.h:941
ULONG DescriptorCount
Definition: bl.h:801
ULONG Version
Definition: bl.h:799
ULONG DescriptorSize
Definition: bl.h:802
ULONG MdListOffset
Definition: bl.h:800
ULONG DescriptorOffset
Definition: bl.h:803
PLIST_ENTRY This
Definition: bl.h:1008
LIST_ENTRY ListHead
Definition: bl.h:1006
PLIST_ENTRY First
Definition: bl.h:1007
ULONGLONG VirtualPage
Definition: bl.h:831
ULONGLONG PageCount
Definition: bl.h:839
ULONGLONG BasePage
Definition: bl.h:830
ULONGLONG VirtualAddress
Definition: bl.h:836
BL_MEMORY_TYPE Type
Definition: bl.h:841
LIST_ENTRY ListEntry
Definition: bl.h:825
ULONGLONG BaseAddress
Definition: bl.h:835
ULONG Reserved
Definition: bl.h:881
ULONG OemKey
Definition: bl.h:879
WCHAR KeyValue
Definition: bl.h:886
ULONG BootOptions
Definition: bl.h:878
ULONG Exit
Definition: bl.h:880
ULONG BootIndex
Definition: bl.h:885
ULONG AdvancedOptions
Definition: bl.h:877
ULONG AnyKey
Definition: bl.h:876
ULONG AsULong
Definition: bl.h:883
ULONG DataSize
Definition: bl.h:1346
ULONG BlobSize
Definition: bl.h:1347
PVOID Data
Definition: bl.h:1345
PVOID Interface
Definition: bl.h:1243
EFI_HANDLE Handle
Definition: bl.h:1242
BL_TEXT_CONSOLE TextConsole
Definition: bl.h:1165
ULONG Version
Definition: bl.h:816
ULONGLONG DataPage
Definition: bl.h:820
NTSTATUS Status
Definition: bl.h:817
ULONGLONG DataSize
Definition: bl.h:819
PCONSOLE_WRITE_TEXT WriteText
Definition: bl.h:1093
PCONSOLE_CLEAR_TEXT ClearText
Definition: bl.h:1092
PCONSOLE_REINITIALIZE Reinitialize
Definition: bl.h:1087
PCONSOLE_GET_TEXT_STATE GetTextState
Definition: bl.h:1088
PCONSOLE_DESTRUCT Destruct
Definition: bl.h:1086
PCONSOLE_GET_TEXT_RESOLUTION GetTextResolution
Definition: bl.h:1090
PCONSOLE_SET_TEXT_STATE SetTextState
Definition: bl.h:1089
PCONSOLE_SET_TEXT_RESOLUTION SetTextResolution
Definition: bl.h:1091
BOOLEAN Active
Definition: bl.h:1113
EFI_SIMPLE_TEXT_OUTPUT_MODE OldMode
Definition: bl.h:1116
PBL_TEXT_CONSOLE_VTABLE Callbacks
Definition: bl.h:1110
ULONG Mode
Definition: bl.h:1115
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * Protocol
Definition: bl.h:1114
BL_DISPLAY_STATE State
Definition: bl.h:1111
BL_DISPLAY_MODE DisplayMode
Definition: bl.h:1112
CHAR Signature[8]
Definition: bl.h:990
WCHAR LoadOptions[ANYSIZE_ARRAY]
Definition: bl.h:994
ULONG Size
Definition: bl.h:1310
USHORT Signature
Definition: bl.h:1309
ULONG Offset
Definition: bl.h:1312
Definition: bl.h:1338
ULONG Y
Definition: bl.h:1340
ULONG X
Definition: bl.h:1339
USHORT BitCount
Definition: bl.h:1321
ULONG ClrImportant
Definition: bl.h:1327
ULONG ClrUsed
Definition: bl.h:1326
ULONG YPelsPerMEter
Definition: bl.h:1325
ULONG Size
Definition: bl.h:1317
ULONG XPelsPerMeter
Definition: bl.h:1324
USHORT Planes
Definition: bl.h:1320
ULONG Width
Definition: bl.h:1318
ULONG Height
Definition: bl.h:1319
ULONG Compression
Definition: bl.h:1322
ULONG SizeImage
Definition: bl.h:1323
Definition: typedefs.h:120
Definition: range.c:39
static LARGE_INTEGER Frequency
Definition: clock.c:41
static COORD TextResolution
Definition: video.c:48
static PCWSTR OptionList[]
Definition: tasklist.c:12
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint16_t * PWCHAR
Definition: typedefs.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
char * PCHAR
Definition: typedefs.h:51
LONGLONG QuadPart
Definition: typedefs.h:114
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
Definition: font.h:89
_In_ HFONT _Out_ PUINT Height
Definition: font.h:88
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3534
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2699
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:458
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
Definition: wdfiotarget.h:1052
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
Definition: wdfiotarget.h:870
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
Definition: wdfregistry.h:275
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor
Definition: wdfusb.h:1339
SIZE_T WINAPI HeapSize(HANDLE, DWORD, LPCVOID)
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_In_ IN_ADDR _In_ IN_ADDR _Out_ MULTICAST_MODE_TYPE _Inout_ ULONG _Out_writes_ SourceCount IN_ADDR * SourceList
Definition: ws2tcpip.h:622
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:696
_In_ ULONG Rows
Definition: haltypes.h:7
_Must_inspect_result_ typedef _Out_ PULONG TableSize
Definition: iotypes.h:4327
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Out_ PPHYSICAL_ADDRESS DestinationAddress
Definition: iotypes.h:1128
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
Definition: iotypes.h:1127
_Must_inspect_result_ _Outptr_result_bytebuffer_ ViewSize PVOID * MappedBase
Definition: mmfuncs.h:492
_In_opt_ PSECURITY_DESCRIPTOR _Out_ PSECURITY_DESCRIPTOR * NewDescriptor
Definition: sefuncs.h:30
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175