15#define _A2W(quote) __A2W(quote)
16#define __A2W(quote) L##quote
18#define EFI_TEST_GUID_STRING "{8768B7AC-F82F-4120-B093-30DFA27DA3B5}"
19#define EFI_TEST_VARIABLE_NAME "RosUefiVarTest"
21#define EFI_DUMMY_NAMESPACE_GUID_STRING "{00000000-0000-0000-0000-000000000000}"
22#define EFI_DUMMY_VARIABLE_NAME ""
29#if (_WIN32_WINNT >= 0x0602)
31 FIRMWARE_TYPE FirmwareType = FirmwareTypeUnknown, FirmwareExpect;
34 bResult = GetFirmwareType(&FirmwareType);
37 "GetFirmwareType failed with error: 0x%08lX\n",
43 FirmwareExpect = (bIsUEFI ? FirmwareTypeUefi : FirmwareTypeBios);
44 ok(FirmwareType == FirmwareExpect,
45 "FirmwareType is %d, but %d is expected.\n",
46 FirmwareType, FirmwareExpect);
48 skip(
"This test can be run only when compiled for NT >= 6.2.\n");
54 BOOL bResult, bResultTemp, bIsUEFI;
78 skip(
"Skipping tests that require UEFI environment.\n");
88 ok(dwLengthTemp ==
dwLength && dwErrorTemp == dwError,
89 "dwLength = %lu, LastError = %lu, expected bResult = %lu, LastError = %lu\n",
107 "bResult = %d, LastError = %lu, expected bResult = 0, LastError = ERROR_PRIVILEGE_NOT_HELD\n",
117 ok(bResultTemp == bResult && dwErrorTemp == dwError,
118 "bResult = %d, LastError = %lu, expected bResult = %d, LastError = %lu\n",
128 skip(
"OpenProcessToken failed with error: 0x%08lX, aborting.\n",
GetLastError());
137 skip(
"NtAdjustPrivilegesToken failed with status: 0x%08lX, aborting.\n",
Status);
148 "SetFirmwareEnvironmentVariableW failed with error: 0x%08lX\n",
158 "GetFirmwareEnvironmentVariableW failed with error: 0x%08lX\n",
163 "Retrieved variable different from what we set, "
164 "dwLength = %lu, dwValue = %lu, expected dwLength = %u, dwValue = %lu",
179 "SetFirmwareEnvironmentVariableA failed with error: 0x%08lX\n",
189 "GetFirmwareEnvironmentVariableA failed with error: 0x%08lX\n",
194 "Retrieved variable different from what we set, "
195 "dwLength = %lu, dwValue = %lu, expected dwLength = %u, dwValue = %lu",
209 "SetFirmwareEnvironmentVariableW failed with error: 0x%08lX\n",
217 ok(
dwLength == 0,
"SetFirmwareEnvironmentVariableW didn't delete the variable!\n");
227 skip(
"SetFirmwareEnvironmentVariableW failed to restore variable with error: 0x%08lX\n",
236 "SetFirmwareEnvironmentVariableA failed with error: 0x%08lX\n",
244 ok(
dwLength == 0,
"SetFirmwareEnvironmentVariableA didn't delete the variable!\n");
static DWORD EfiVariableValue
static VOID test_GetFirmwareType(BOOL bIsUEFI)
#define EFI_DUMMY_NAMESPACE_GUID_STRING
#define EFI_TEST_VARIABLE_NAME
#define EFI_TEST_GUID_STRING
#define EFI_DUMMY_VARIABLE_NAME
#define ERROR_INVALID_FUNCTION
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define GetCurrentProcess()
static DWORD DWORD * dwLength
BOOL WINAPI SetFirmwareEnvironmentVariableA(_In_ LPCSTR lpName, _In_ LPCSTR lpGuid, _In_reads_bytes_opt_(nSize) PVOID pValue, _In_ DWORD nSize)
BOOL WINAPI SetFirmwareEnvironmentVariableW(_In_ LPCWSTR lpName, _In_ LPCWSTR lpGuid, _In_reads_bytes_opt_(nSize) PVOID pValue, _In_ DWORD nSize)
DWORD WINAPI GetTickCount(VOID)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE
NTSYSAPI ULONG NTAPI RtlRandom(_Inout_ PULONG Seed)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtAdjustPrivilegesToken(_In_ HANDLE TokenHandle, _In_ BOOLEAN DisableAllPrivileges, _In_opt_ PTOKEN_PRIVILEGES NewState, _In_ ULONG BufferLength, _Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState, _When_(PreviousState!=NULL, _Out_) PULONG ReturnLength)
Removes a certain amount of privileges of a token based upon the request by the caller.
BOOL Privilege(LPTSTR pszPrivilege, BOOL bEnable)
DWORD WINAPI GetLastError(void)
#define ERROR_PRIVILEGE_NOT_HELD
FORCEINLINE LUID NTAPI_INLINE RtlConvertUlongToLuid(_In_ ULONG Val)
#define TOKEN_ADJUST_PRIVILEGES
#define SE_PRIVILEGE_ENABLED