Alfred Agrell (@Alcaro) commented about dlls/kernel32/firmware.c:
+ char filename[128]; + struct stat sb = {0}; + struct wine_get_firmware_variable_params *params = args; + + int gsize = strlen(params->guid); + + if (params->guid[0] == '{' && params->guid[(gsize - 1)] == '}') { + if (gsize - 2 < sizeof(tguid)) + bytes = gsize - 1; + else + bytes = sizeof(tguid); + memcpy(tguid, params->guid + 1, bytes); + tguid[bytes - 1] = '\0'; + snprintf(filename, sizeof(filename), "/sys/firmware/efi/efivars/%s-%s", params->name, tguid); + } else { + snprintf(filename, sizeof(filename), "/sys/firmware/efi/efivars/%s-%s", params->name, params->guid); This is inaccurate, native returns ERROR_INVALID_PARAMETER if the {} is missing. (At least on my 10 VM, didn't check 11.)
(Conveniently, this is also what RtlGUIDFromString does.) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6423#note_81173