mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 00:23:10 +00:00
[KERNEL32][KERNEL32_APITEST] Implement user-mode UEFI / Firmware API (#5149)
- Implement firmware environment variable read/write APIs - Add, fix and improve related definitions and declarations - Add kernel32:UEFIFirmware apitest CORE-11954
This commit is contained in:
parent
961893a712
commit
4c8a2a8815
10 changed files with 618 additions and 102 deletions
|
@ -396,9 +396,9 @@ NTAPI
|
|||
NtQuerySystemEnvironmentValueEx(
|
||||
_In_ PUNICODE_STRING VariableName,
|
||||
_In_ LPGUID VendorGuid,
|
||||
_In_ PVOID Value,
|
||||
_Out_opt_ PVOID Value,
|
||||
_Inout_ PULONG ReturnLength,
|
||||
_Inout_ PULONG Attributes
|
||||
_Out_opt_ PULONG Attributes
|
||||
);
|
||||
|
||||
__kernel_entry
|
||||
|
@ -550,9 +550,9 @@ NTAPI
|
|||
NtSetSystemEnvironmentValueEx(
|
||||
_In_ PUNICODE_STRING VariableName,
|
||||
_In_ LPGUID VendorGuid,
|
||||
_In_ PVOID Value,
|
||||
_Inout_ PULONG ReturnLength,
|
||||
_Inout_ PULONG Attributes
|
||||
_In_reads_bytes_opt_(ValueLength) PVOID Value,
|
||||
_In_ ULONG ValueLength,
|
||||
_In_ ULONG Attributes
|
||||
);
|
||||
|
||||
__kernel_entry
|
||||
|
|
|
@ -1432,7 +1432,29 @@ typedef struct _SYSTEM_HANDLE_INFORMATION_EX
|
|||
SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handle[1];
|
||||
} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;
|
||||
|
||||
// FIXME: Class 65-97
|
||||
// FIXME: Class 65-89
|
||||
|
||||
// Class 90
|
||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||
typedef struct _SYSTEM_BOOT_ENVIRONMENT_INFORMATION
|
||||
{
|
||||
GUID BootIdentifier;
|
||||
FIRMWARE_TYPE FirmwareType;
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||
ULONGLONG BootFlags;
|
||||
#endif
|
||||
} SYSTEM_BOOT_ENVIRONMENT_INFORMATION, *PSYSTEM_BOOT_ENVIRONMENT_INFORMATION;
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||
typedef struct _SYSTEM_BOOT_ENVIRONMENT_V1
|
||||
{
|
||||
GUID BootIdentifier;
|
||||
FIRMWARE_TYPE FirmwareType;
|
||||
} SYSTEM_BOOT_ENVIRONMENT_V1, *PSYSTEM_BOOT_ENVIRONMENT_V1;
|
||||
#endif
|
||||
|
||||
// FIXME: Class 91-97
|
||||
|
||||
//
|
||||
// Hotpatch flags
|
||||
|
@ -1540,6 +1562,17 @@ typedef struct _SYSTEM_MEMORY_LIST_INFORMATION
|
|||
SIZE_T ModifiedPageCountPageFile;
|
||||
} SYSTEM_MEMORY_LIST_INFORMATION, *PSYSTEM_MEMORY_LIST_INFORMATION;
|
||||
|
||||
//
|
||||
// Firmware variable attributes
|
||||
//
|
||||
#define VARIABLE_ATTRIBUTE_NON_VOLATILE 0x00000001
|
||||
#define VARIABLE_ATTRIBUTE_BOOTSERVICE_ACCESS 0x00000002
|
||||
#define VARIABLE_ATTRIBUTE_RUNTIME_ACCESS 0x00000004
|
||||
#define VARIABLE_ATTRIBUTE_HARDWARE_ERROR_RECORD 0x00000008
|
||||
#define VARIABLE_ATTRIBUTE_AUTHENTICATED_WRITE_ACCESS 0x00000010
|
||||
#define VARIABLE_ATTRIBUTE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020
|
||||
#define VARIABLE_ATTRIBUTE_APPEND_WRITE 0x00000040
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; // extern "C"
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue