| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
EfiBootManagerConnectAll provides this functionality now.
|
|
|
|
|
| |
- Add primitive aspect ratio weighting when determining which text mode is best
- Move all uses of gST->ConOut to SetHighestAvailableTextMode and exit early if it is NULL
|
|
|
|
| |
This behaviour matches that of edk2's UefiBootManagerLib since edk2 commit f7fdd620e8
|
|
|
|
| |
This is intended to deal with the UEFI memory protection protocol (EFI_MEMORY_ATTRIBUTE_PROTOCOL) introduced in the UEFI 2.10 specification.
|
|
|
|
| |
Additionally make SetServicePointer also clear and restore CR0.WP if needed
|
| |
|
|
|
|
| |
Reference: #60
|
|
|
|
|
|
|
| |
This prevents a bugcheck on Windows 10 and later when VBS is enabled, which was made the default setting in Windows 11.
Additionally, EfiDSEFix will not proceed if it detects that VBS is still unexpectedly running (meaning either EfiGuardDxe was never loaded, or it failed to disable VBS).
Fixes #59
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Use DxeReportStatusCodeLib as ReportStatusCodeLib implementation instead of RuntimeDxeReportStatusCodeLib, as the latter is not usable by UEFI applications
- Move PcdLib, MemoryAllocationLib and ReportStatusCodeLib to the common section used by both EfiGuardDxe and the loader
- Remove comments re: EDK2 breaking backward compatibility by introducing RegisterFilterLib and VariablePolicyHelperLib, as edk2-stable202202 is now a year old
- Only use BaseMemoryLibOptDxe instead of the default BaseMemoryLib when targeting x86 architectures
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes #51
|
| |
|
|
|
|
| |
Additionally apply GCC-style link flags to all GCC-style toolchains
|
| |
|
|
|
|
| |
Reference: #49
|
| |
|
|
|
|
|
|
|
|
| |
- Verify expected lengths of instructions
- Verify CipInitialize is in PAGE
- Verify g_CiOptions is in either .data or CiPolicy
Fixes #31 (regression due to KB5003173 fix)
|
| |
|
|
|
|
|
|
| |
EfiDSEFix was not finding the address of CI!g_CiOptions correctly after KB5003173 changed the layout of CI!CiInitialize.
Fixes #28
|
| |
|
| |
|
| |
|
|
|
|
| |
Fix PE section alignment on Clang by using MS '/ALIGN:XXX' instead of GCC's '-z common-page-size=XXX'
|
| |
|
|
|
|
|
|
| |
Note that BmSetMemoryTypeInformationVariable() is told by the loader that the image being loaded is *not* a boot application, which is a blatant lie. The reason for doing this is to prevent BmSetMemoryTypeInformationVariable() from performing a warm reset of the system due to a change in the memory type info. (Again, and again, and again...)
This is an attempt to fix S4 (hibernate) entry/resume issues; see #12.
|
| |
|
| |
|
|
|
|
| |
KiSwInterrupt is present since Windows 10 and is the interrupt handler for int 20h. This interrupt is a spurious interrupt on older versions of Windows, and does nothing useful on Windows 10. If int 20h is issued from kernel mode, the PatchGuard verification routine KiSwInterruptDispatch is called. This leads to a bugcheck if PatchGuard has not been initialized.
|
|
|
|
| |
Fixes #9
|
| |
|
|
|
|
| |
This makes this optional pattern scan work on the current Windows 10 20H1 preview release
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The EFI variable "BootCurrent" corresponds to XXXX in some variable "BootXXXX", and this value was being used to guard against recursive self-booting. However, EfiBootManagerGetLoadOptions() already returns the options sorted by the contents of the "BootOrder" variable, which means that XXXX does not necessarily correspond to the linear index in a for loop. Instead use BootOptions[Index].OptionNumber to retrieve and compare the original value of XXXX
Fixes #5
|
|
|
|
|
|
| |
- Make hde64_table const to prevent it from ending up in .data
- #include <intrin.h> because Clang gets confused by __stosb without it
- Fix various warnings
|
| |
|