As my previous email, I mentioned that I am able to find the protocol since the LocateProtocol returns 0 (EFI_SUCCESS) (using the exact code you wrote) . But when I want to open it either with OpenProtocol or HandleProtocol I get a RETURN_UNSUPPORTED. Are you implying that by calling LocateProtocol() the protocol would also be opened? or do I still need to open it? if I still need to open then I am still getting the UNSUPPORTED Status.
But if I don't need to open it I still don't know why I am not able to use the GOP methods.
one example of the many examples which I get this error is as below:
Status = gBS->HandleProtocol (SystemTable->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **)&GraphicsOutput);
if (EFI_ERROR (Status)) {
Status = gBS->LocateProtocol (&gEfiGraphicsOutputProtocolGuid, NULL, (VOID **)&GraphicsOutput);
if (EFI_ERROR (Status)) {
Print (L"Error: Could not find a GOP instance!\n");
Status = EFI_NOT_FOUND;
goto Done;
}
}
Blt = NULL;
ImageWidth = 0;
ImageHeight = 0;
Status = TranslateBmpToGopBlt (
BmpFileData,
BmpFileSize,
&Blt,
&BltSize,
&ImageHeight,
&ImageWidth
);
It is worth mentioning that the BmpFIleData and BmpFileSize are valid variables with the proper data stored. Anyways, the status code for the TranslateBmpToGopBlt returns a RETURN_UNSUPPORTED. This is the same with other GOP methods