22.3.4 QueryMode() Implementation
The
QueryMode()
function returns information supported modes. The UEFI Driver is required to return the number of Rows and number of Columns for each supported ModeNumber. ModeNumber must be less than Mode->MaxMode
.Note: All devices that support the Simple Text Output Protocol must minimally support an 80 x 25 character mode. Additional modes are optional. This means a basic Simple Text Output Protocol implementation supports a single ModeNumber of 0 with a geometry of 80 Columns and 25 Rows, and reports a Mode->MaxMode value of 1.
The
QueryMode()
function is typically used one of two ways:1. Query for the geometry of the current mode. The following line populates the Columns and Rows variables with the geometry of the currently active console output.
#include <Uefi.h>
#include <Protocol/SimpleTextOut.h>
EFI_STATUS Status;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOutput;
UINTN Columns;
UINTN Rows;
Status = SimpleTextOutput->QueryMode (
SimpleTextOutput,
SimpleTextOutput->Mode->Mode,
&Columns,
&Rows
);
2. Loop through all valid geometries that a given console can support. The following line populates (repeatedly) the Column and Row variables with the geometry of the each supported output mode.
#include <Uefi.h>
#include <Protocol/SimpleTextOut.h>
EFI_STATUS Status;
UINTN Index;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOutput;
UINTN Columns;
UINTN Rows;
for (Index = 0 ; Index < SimpleTextOutput->Mode->MaxMode ; Index++) {
Status = SimpleTextOutput->QueryMode (
SimpleTextOutput,
Index,
&Columns,
&Rows
);
}
Last modified 2yr ago