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) &&
773 if (BgrtTable->Header.Length !=
sizeof(*BgrtTable))
787 if (!BgrtTable->LogoAddress)
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))
PBL_DEVICE_DESCRIPTOR BlpBootDevice
BL_LIBRARY_PARAMETERS BlpLibraryParameters
return STATUS_NOT_SUPPORTED
#define BL_LIBRARY_FLAG_REINITIALIZE
_In_ __drv_aliasesMem PSTRING Prefix
PCONSOLE_CLEAR_TEXT ClearText
NTSTATUS BlUtlGetAcpiTable(_Out_ PVOID *TableAddress, _In_ ULONG Signature)
NTSTATUS ConsoleCreateLocalInputConsole(VOID)
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
NTSTATUS BlpDisplayReinitialize(VOID)
BL_TEXT_CONSOLE TextConsole
VOID BlDisplayGetTextCellResolution(_Out_ PULONG TextWidth, _Out_ PULONG TextHeight)
ULONG ConsoleGraphicalResolutionListSize
NTSTATUS ConsoleCreateRemoteConsole(_In_ PBL_TEXT_CONSOLE *TextConsole)
#define STATUS_INVALID_PARAMETER
BOOLEAN BlDisplayValidOemBitmap(VOID)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
PBITMAP BlDisplayGetOemBitmap(_In_opt_ PCOORD Offsets, _Out_opt_ PULONG Flags)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
PBL_TEXT_CONSOLE_VTABLE Callbacks
_In_ ULONG _In_ ULONG State
#define BL_LIBRARY_FLAG_NO_GRAPHICS_CONSOLE
LIST_ENTRY BfiDeferredListHead
#define BL_DISPLAY_GRAPHICS_FORCED_HIGH_RES_MODE_FLAG
IN PVOID IN PVOID IN USHORT IN USHORT Size
#define BGRT_STATUS_IMAGE_VALID
_In_ HFONT _Out_ PUINT Height
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
NTSTATUS BlGetBootOptionInteger(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
NTSTATUS ConsoleGraphicalConstruct(_In_ PBL_GRAPHICS_CONSOLE GraphicsConsole)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
NTSTATUS BfLoadFontFile(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ PWCHAR FontPath)
return STATUS_NOT_IMPLEMENTED
NTSTATUS BlpDisplayRegisterLocale(_In_ PWCHAR Locale)
PVOID DspGraphicalConsole
BL_DISPLAY_MODE ConsoleTextResolutionList[1]
#define BL_DISPLAY_GRAPHICS_FORCED_VIDEO_MODE_FLAG
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
PVOID BlMmAllocateHeap(_In_ SIZE_T 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
NTSTATUS ConsoleTextLocalConstruct(_In_ PBL_TEXT_CONSOLE TextConsole, _In_ BOOLEAN Activate)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
PVOID BfiGraphicsRectangle
struct _LIST_ENTRY * Flink
PBL_BCD_OPTION MiscGetBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
PCONSOLE_SET_TEXT_STATE SetTextState
_Must_inspect_result_ _In_ ULONG Flags
PVOID DspLocalInputConsole
#define NT_SUCCESS(StatCode)
VOID BlDisplayInvalidateOemBitmap(VOID)
PVOID DspRemoteInputConsole
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
struct _BL_GRAPHICS_CONSOLE_VTABLE * PBL_GRAPHICS_CONSOLE_VTABLE
#define STATUS_UNSUCCESSFUL
PCONSOLE_REINITIALIZE Reinitialize
static VIDEODISPLAYMODE DisplayMode
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
BL_DISPLAY_MODE ConsoleGraphicalResolutionList[3]
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
NTSTATUS DsppReinitialize(_In_ ULONG Flags)
#define STATUS_ACPI_INVALID_TABLE
NTSTATUS BlGetBootOptionDevice(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
NTSTATUS DsppLoadFontFile(_In_ PWCHAR FontFileName)
BOOLEAN DsppGraphicsDisabledByBcd(VOID)
#define InitializeListHead(ListHead)
NTSTATUS BlDisplayClearScreen(VOID)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
VOID BfiFreeDeferredFontFile(_In_ PBL_DEFERRED_FONT_FILE DeferredFontFile)
VOID EfiPrintf(_In_ PWCHAR Format,...)
ULONG ConsoleGraphicalResolutionListFlags
NTSTATUS BlDisplaySetCursorType(_In_ ULONG Type)
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSTATUS BlDisplaySetScreenResolution(VOID)
PVOID BfiCachedStrikeData
#define RtlCopyMemory(Destination, Source, Length)
NTSTATUS BlDisplayGetScreenResolution(_Out_ PULONG HRes, _Out_ PULONG VRes)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
NTSTATUS DsppInitialize(_In_ ULONG Flags)
NTSTATUS BlpDisplayInitialize(_In_ ULONG Flags)
LIST_ENTRY BfiFontFileListHead