Nikolay Sivov (@nsivov) commented about dlls/kernel32/process.c:
/***********************************************************************
GetFirmwareEnvironmentVariableA (KERNEL32.@)
*/ DWORD WINAPI GetFirmwareEnvironmentVariableA(LPCSTR name, LPCSTR guid, PVOID buffer, DWORD size) {
- FIXME("stub: %s %s %p %lu\n", debugstr_a(name), debugstr_a(guid), buffer, size);
- SetLastError(ERROR_INVALID_FUNCTION);
- return 0;
- DWORD dwAttributes;
- return GetFirmwareEnvironmentVariableExA( name, guid, buffer, size, &dwAttributes );
+}
+/***********************************************************************
GetFirmwareEnvironmentVariableExW (KERNEL32.@)
- */
+DWORD WINAPI GetFirmwareEnvironmentVariableExW(LPCWSTR name, LPCWSTR guid, PVOID buffer, DWORD size, PDWORD attributes)
It should be the other way around. ExW calls Nt function that accepts UNICODE_STRING or WCHARs, and ExA converts acp->wchar and calls ExW function. Assuming returned buffer contents are the same for both functions of course.