// Get device path of the file Status = gBS->HandleProtocol(LoadedImage->DeviceHandle, &gEfiDevicePathProtocolGuid, (VOID**)&FilePath); if (EFI_ERROR(Status)) return Status;

msg db 'Not a Windows 10 bootloader', 0 times 510 - ($-$$) db 0 dw 0xaa55

// Open root directory Status = Volume->OpenVolume(Volume, &Root); if (EFI_ERROR(Status)) return Status;

// Build full device path (file path appended) EFI_DEVICE_PATH_PROTOCOL *FullPath = FileDevicePath(LoadedImage->DeviceHandle, L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi");

// Open our own loaded image protocol to get device handle Status = gBS->HandleProtocol(ImageHandle, &gEfiLoadedImageProtocolGuid, (VOID**)&LoadedImage); if (EFI_ERROR(Status)) return Status;

[org 0x7c00] start: mov si, msg call print hlt print: lodsb or al, al jz done mov ah, 0x0e int 0x10 jmp print done: ret

// Open Windows Boot Manager file Status = Root->Open(Root, &File, L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi", EFI_FILE_MODE_READ, 0); if (EFI_ERROR(Status)) Print(L"Error: bootmgfw.efi not found\n"); return Status;