65 PWCHAR FontPath, FontDirectory;
67 BOOLEAN CustomDirectory, CustomDevice;
70 CustomDirectory =
TRUE;
83 CustomDirectory =
FALSE;
86 sizeof(LibraryParameters)),
96 FontDirectory =
L"\\EFI\\Microsoft\\Boot\\Fonts";
113 NameLength =
wcslen(FontFileName);
114 DirectoryLength =
wcslen(FontDirectory);
146 wcscpy(FontPath, FontDirectory);
147 wcscat(FontPath, FontFileName);
154 if ((CustomDevice) && (FontDevice))
160 if ((CustomDirectory) && (CustomDevice))
189 StandardLocale =
FALSE;
203 FontFileName =
L"\\jpn_boot.ttf";
207 FontFileName =
L"\\kor_boot.ttf";
209 else if (!(
_wcsicmp(Locale,
L"zh-CN")) ||
213 FontFileName =
L"\\chs_boot.ttf";
215 else if (!(
_wcsicmp(Locale,
L"zh-TW")) &&
220 FontFileName =
L"\\cht_boot.ttf";
224 StandardLocale =
TRUE;
225 FontFileName =
L"\\wgl4_boot.ttf";
236 NextEntry = NextEntry->
Flink;
261 BOOLEAN NoGraphics, HighestMode;
301 GraphicsConsole =
NULL;
310 &GraphicsResolution);
314 EfiPrintf(
L"Display selection not yet handled\r\n");
325 EfiPrintf(
L"High res mode not yet handled\r\n");
342 GraphicsConsole =
NULL;
361 if (!GraphicsConsole)
383 RemoteConsole =
NULL;
399 else if (TextConsole)
456 !(GraphicsConsole) ||
476 &GraphicsResolution);
494 if (!GraphicsResolution)
497 EfiPrintf(
L"Display selection not yet handled\r\n");
500 else if (GraphicsResolution == 1)
503 EfiPrintf(
L"Display selection not yet handled\r\n");
506 else if (GraphicsResolution == 2)
509 EfiPrintf(
L"Display selection not yet handled\r\n");
532 EfiPrintf(
L"High res mode not yet handled\r\n");
612 if (!(TextWidth) || !(TextHeight))
629 EfiPrintf(
L"GFX active, not supported query\r\n");
697 if ((GraphicsConsole) &&
735 BgrtTable->
Status &= ~BGRT_STATUS_IMAGE_VALID;
828 if ((
Bitmap->BmpHeader.Signature !=
'MB') ||
829 (
Bitmap->DibHeader.Compression) ||
830 ((
Bitmap->DibHeader.BitCount != 24) &&
831 (
Bitmap->DibHeader.BitCount != 32)) ||
842 Offsets->X = BgrtTable->
OffsetX;
843 Offsets->Y = BgrtTable->
OffsetY;
923 if (((
Width + Offsets.
X) <= HRes) &&
924 ((
Height + Offsets.
Y) <= VRes))
@ BcdLibraryString_FontPath
@ BcdLibraryBoolean_GraphicsModeDisabled
@ BcdLibraryInteger_GraphicsResolution
@ BcdLibraryBoolean_GraphicsForceHighestMode
@ BcdLibraryDevice_ApplicationDevice
@ BcdLibraryBoolean_MobileGraphics
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
VOID EfiPrintf(_In_ PWCHAR Format,...)
NTSTATUS ConsoleCreateRemoteConsole(_In_ PBL_TEXT_CONSOLE *TextConsole)
NTSTATUS BlGetBootOptionDevice(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
NTSTATUS ConsoleCreateLocalInputConsole(VOID)
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
NTSTATUS ConsoleGraphicalConstruct(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
PBL_DEVICE_DESCRIPTOR BlpBootDevice
#define BL_LIBRARY_FLAG_REINITIALIZE
NTSTATUS BfLoadFontFile(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ PWCHAR FontPath)
#define BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG
NTSTATUS BlUtlGetAcpiTable(_Out_ PVOID *TableAddress, _In_ ULONG Signature)
VOID BfiFreeDeferredFontFile(_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
BL_LIBRARY_PARAMETERS BlpLibraryParameters
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL
NTSTATUS ConsoleTextLocalConstruct(_In_ PBL_TEXT_CONSOLE TextConsole, _In_ BOOLEAN Activate)
#define BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE
#define BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
PBL_BCD_OPTION MiscGetBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
struct _BL_GRAPHICS_CONSOLE_VTABLE * PBL_GRAPHICS_CONSOLE_VTABLE
NTSTATUS BlGetBootOptionInteger(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
NTSTATUS BlDisplayGetScreenResolution(_Out_ PULONG HRes, _Out_ PULONG VRes)
NTSTATUS BlDisplaySetCursorType(_In_ ULONG Type)
VOID BlDisplayGetTextCellResolution(_Out_ PULONG TextWidth, _Out_ PULONG TextHeight)
BL_DISPLAY_MODE ConsoleTextResolutionList[1]
NTSTATUS BlpDisplayInitialize(_In_ ULONG Flags)
NTSTATUS BlpDisplayReinitialize(VOID)
BL_DISPLAY_MODE ConsoleGraphicalResolutionList[3]
LIST_ENTRY BfiFontFileListHead
ULONG ConsoleGraphicalResolutionListSize
PVOID BfiGraphicsRectangle
PVOID DspLocalInputConsole
BOOLEAN DsppGraphicsDisabledByBcd(VOID)
NTSTATUS DsppInitialize(_In_ ULONG Flags)
VOID BlDisplayInvalidateOemBitmap(VOID)
PVOID BfiCachedStrikeData
PBITMAP BlDisplayGetOemBitmap(_In_opt_ PCOORD Offsets, _Out_opt_ PULONG Flags)
PVOID DspGraphicalConsole
BOOLEAN BlDisplayValidOemBitmap(VOID)
NTSTATUS BlpDisplayRegisterLocale(_In_ PWCHAR Locale)
NTSTATUS BlDisplaySetScreenResolution(VOID)
ULONG ConsoleGraphicalResolutionListFlags
NTSTATUS DsppLoadFontFile(_In_ PWCHAR FontFileName)
PVOID DspRemoteInputConsole
LIST_ENTRY BfiDeferredListHead
NTSTATUS DsppReinitialize(_In_ ULONG Flags)
NTSTATUS BlDisplayClearScreen(VOID)
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
#define RemoveEntryList(Entry)
#define InitializeListHead(ListHead)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define STATUS_ACPI_INVALID_TABLE
static VIDEODISPLAYMODE DisplayMode
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define BGRT_STATUS_IMAGE_VALID
DESCRIPTION_HEADER Header
BL_TEXT_CONSOLE TextConsole
PCONSOLE_CLEAR_TEXT ClearText
PCONSOLE_REINITIALIZE Reinitialize
PCONSOLE_SET_TEXT_STATE SetTextState
PBL_TEXT_CONSOLE_VTABLE Callbacks
struct _LIST_ENTRY * Flink
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_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
_Must_inspect_result_ _In_ ULONG Flags
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_In_ __drv_aliasesMem PSTRING Prefix