Skip to content

Commit b1bc755

Browse files
committed
[SDK] kernelbase SDK changes
1 parent e05bd62 commit b1bc755

9 files changed

Lines changed: 345 additions & 33 deletions

File tree

dll/win32/advapi32/CMakeLists.txt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,20 @@ list(APPEND PCH_SKIP_SOURCE
5252
${CMAKE_CURRENT_BINARY_DIR}/svcctl_c.c
5353
${CMAKE_CURRENT_BINARY_DIR}/winreg_c.c)
5454

55+
add_custom_target(advapi32_rpc_headers DEPENDS
56+
${CMAKE_CURRENT_BINARY_DIR}/eventlogrpc_c.h
57+
${CMAKE_CURRENT_BINARY_DIR}/lsa_c.h
58+
${CMAKE_CURRENT_BINARY_DIR}/seclogon_c.h
59+
${CMAKE_CURRENT_BINARY_DIR}/svcctl_c.h
60+
${CMAKE_CURRENT_BINARY_DIR}/winreg_c.h)
61+
5562
# This static library is for kernelbase and vista APIs in kernel32
56-
add_library(win32_registry
57-
${PCH_SKIP_SOURCE}
63+
add_library(win32_registry STATIC
5864
reg/hkcr.c
5965
reg/reg.c
6066
)
67+
68+
add_dependencies(win32_registry advapi32_rpc_headers)
6169
target_link_libraries(win32_registry ${PSEH_LIB})
6270
target_compile_definitions(win32_registry PRIVATE _KERNEL32_ UNICODE _UNICODE)
6371

sdk/include/psdk/appmodel.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ typedef enum AppPolicyWindowingModel
3737
AppPolicyWindowingModel_ClassicPhone = 3
3838
} AppPolicyWindowingModel;
3939

40+
typedef enum AppPolicyMediaFoundationCodecLoading
41+
{
42+
AppPolicyMediaFoundationCodecLoading_All = 0,
43+
} AppPolicyMediaFoundationCodecLoading;
44+
4045
typedef struct PACKAGE_VERSION
4146
{
4247
union
@@ -99,6 +104,15 @@ AppPolicyGetWindowingModel(
99104
_In_ HANDLE processToken,
100105
_Out_ AppPolicyWindowingModel* policy);
101106

107+
WINBASEAPI
108+
_Check_return_
109+
_Success_(return == ERROR_SUCCESS)
110+
LONG
111+
WINAPI
112+
AppPolicyGetMediaFoundationCodecLoading(
113+
_In_ HANDLE processToken,
114+
_Out_ AppPolicyMediaFoundationCodecLoading* policy);
115+
102116
#ifdef __cplusplus
103117
} // extern "C"
104118
#endif

sdk/include/psdk/ioringapi.h

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright (C) 2023 Paul Gofman for CodeWeavers
3+
*
4+
* This library is free software; you can redistribute it and/or
5+
* modify it under the terms of the GNU Lesser General Public
6+
* License as published by the Free Software Foundation; either
7+
* version 2.1 of the License, or (at your option) any later version.
8+
*
9+
* This library is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+
* Lesser General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU Lesser General Public
15+
* License along with this library; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17+
*/
18+
19+
#ifndef __IORINGAPI_H_
20+
#define __IORINGAPI_H_
21+
22+
#include <ntioring_x.h>
23+
24+
struct IORING_CAPABILITIES
25+
{
26+
IORING_VERSION MaxVersion;
27+
UINT32 MaxSubmissionQueueSize;
28+
UINT32 MaxCompletionQueueSize;
29+
IORING_FEATURE_FLAGS FeatureFlags;
30+
};
31+
typedef struct IORING_CAPABILITIES IORING_CAPABILITIES;
32+
33+
#ifdef __cplusplus
34+
extern "C" {
35+
#endif
36+
37+
HRESULT WINAPI QueryIoRingCapabilities(IORING_CAPABILITIES *caps);
38+
39+
#ifdef __cplusplus
40+
}
41+
#endif
42+
#endif

sdk/include/psdk/processthreadsapi.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,20 @@ typedef enum _PROCESS_INFORMATION_CLASS
174174
ProcessInformationClassMax
175175
} PROCESS_INFORMATION_CLASS;
176176

177+
#define PROCESS_MACHINE_ATTRIBUTE_KERNEL_ENABLED 0x00000001
178+
#define PROCESS_MACHINE_ATTRIBUTE_USER_ENABLED 0x00000002
179+
#define PROCESS_MACHINE_ATTRIBUTE_NATIVE_OS 0x00000004
180+
#define PROCESS_MACHINE_ATTRIBUTE_WOW64_CONTAINER 0x00000008
181+
182+
typedef enum _THREAD_INFORMATION_CLASS
183+
{
184+
ThreadMemoryPriority,
185+
ThreadAbsoluteCpuPriority,
186+
ThreadDynamicCodePolicy,
187+
ThreadPowerThrottling,
188+
ThreadInformationClassMax
189+
} THREAD_INFORMATION_CLASS;
190+
177191
#ifdef __cplusplus
178192
} // extern "C"
179193
#endif

sdk/include/psdk/winbase.h

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,6 +1105,7 @@ typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC
11051105
#ifndef _USE_FULL_PROC_THREAD_ATTRIBUTE
11061106
typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
11071107
ProcThreadAttributeParentProcess = 0,
1108+
ProcThreadAttributeExtendedFlags = 1,
11081109
ProcThreadAttributeHandleList = 2,
11091110
ProcThreadAttributeGroupAffinity = 3,
11101111
ProcThreadAttributePreferredNode = 4,
@@ -1129,10 +1130,26 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
11291130
} PROC_THREAD_ATTRIBUTE_NUM;
11301131
#endif // _USE_FULL_PROC_THREAD_ATTRIBUTE
11311132

1132-
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1133-
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
11341133
#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
1134+
#define PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS (ProcThreadAttributeExtendedFlags | PROC_THREAD_ATTRIBUTE_INPUT | PROC_THREAD_ATTRIBUTE_ADDITIVE)
1135+
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
1136+
#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY (ProcThreadAttributeGroupAffinity | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1137+
#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE (ProcThreadAttributePreferredNode | PROC_THREAD_ATTRIBUTE_INPUT)
1138+
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1139+
#define PROC_THREAD_ATTRIBUTE_UMS_THREAD (ProcThreadAttributeUmsThread | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1140+
#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1141+
#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES (ProcThreadAttributeSecurityCapabilities | PROC_THREAD_ATTRIBUTE_INPUT)
1142+
#define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL (ProcThreadAttributeProtectionLevel | PROC_THREAD_ATTRIBUTE_INPUT)
1143+
#define PROC_THREAD_ATTRIBUTE_JOB_LIST (ProcThreadAttributeJobList | PROC_THREAD_ATTRIBUTE_INPUT)
1144+
#define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY (ProcThreadAttributeChildProcessPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1145+
#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (ProcThreadAttributeAllApplicationPackagesPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1146+
#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER (ProcThreadAttributeWin32kFilter | PROC_THREAD_ATTRIBUTE_INPUT)
1147+
#define PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY (ProcThreadAttributeDesktopAppPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1148+
#define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE (ProcThreadAttributePseudoConsole | PROC_THREAD_ATTRIBUTE_INPUT)
1149+
#define PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY (ProcThreadAttributeMitigationAuditPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
11351150
#define PROC_THREAD_ATTRIBUTE_MACHINE_TYPE (ProcThreadAttributeMachineType | PROC_THREAD_ATTRIBUTE_INPUT)
1151+
#define PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER (ProcThreadAttributeComponentFilter | PROC_THREAD_ATTRIBUTE_INPUT)
1152+
#define PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES (ProcThreadAttributeEnableOptionalXStateFeatures | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
11361153

11371154
#if (_WIN32_WINNT >= 0x0600)
11381155
#define ProcThreadAttributeValue(Number, Thread, Input, Additive) \
@@ -1147,23 +1164,6 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
11471164
#define PROCESS_CREATION_CHILD_PROCESS_OVERRIDE 0x02
11481165
#define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE 0x04
11491166
#define PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT 0x01
1150-
1151-
#define PROC_THREAD_ATTRIBUTE_JOB_LIST \
1152-
ProcThreadAttributeValue(ProcThreadAttributeJobList, FALSE, TRUE, FALSE)
1153-
1154-
#define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY \
1155-
ProcThreadAttributeValue(ProcThreadAttributeChildProcessPolicy, FALSE, TRUE, FALSE)
1156-
1157-
#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY \
1158-
ProcThreadAttributeValue(ProcThreadAttributeAllApplicationPackagesPolicy, FALSE, TRUE, FALSE)
1159-
1160-
#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER \
1161-
ProcThreadAttributeValue(ProcThreadAttributeWin32kFilter, FALSE, TRUE, FALSE)
1162-
#endif //(_WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD)
1163-
1164-
#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
1165-
#define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE \
1166-
ProcThreadAttributeValue(ProcThreadAttributePseudoConsole, FALSE, TRUE, FALSE)
11671167
#endif //(NTDDI_VERSION >= NTDDI_WIN10_RS5)
11681168

11691169
typedef DWORD
@@ -3665,6 +3665,12 @@ typedef BOOL
36653665
_Inout_opt_ PVOID Parameter,
36663666
_Outptr_opt_result_maybenull_ PVOID *Context);
36673667

3668+
3669+
#define RESOURCE_ENUM_LN 0x0001
3670+
#define RESOURCE_ENUM_MUI 0x0002
3671+
#define RESOURCE_ENUM_MUI_SYSTEM 0x0004
3672+
#define RESOURCE_ENUM_VALIDATE 0x0008
3673+
36683674
#if _WIN32_WINNT >= 0x0601
36693675

36703676
#define COPYFILE2_MESSAGE_COPY_OFFLOAD 0x00000001L

sdk/include/psdk/wincon.h

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -973,12 +973,36 @@ WriteConsoleOutputCharacterW(
973973
_Out_ LPDWORD lpNumberOfCharsWritten);
974974

975975

976-
#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
977-
// typedef VOID *HPCON;
978-
// CreatePseudoConsole()
979-
// ResizePseudoConsole()
980-
// ClosePseudoConsole()
981-
#endif // (NTDDI_VERSION >= NTDDI_WIN10_RS5)
976+
#if (NTDDI_VERSION >= NTDDI_WIN10_RS5) || defined(_KERNELBASE_)
977+
978+
typedef VOID *HPCON;
979+
980+
#define PSEUDOCONSOLE_INHERIT_CURSOR 0x00000001
981+
982+
WINBASEAPI
983+
HRESULT
984+
WINAPI
985+
CreatePseudoConsole(
986+
_In_ COORD size,
987+
_In_ HANDLE hInput,
988+
_In_ HANDLE hOutput,
989+
_In_ DWORD dwFlags,
990+
_Out_ HPCON *phPC);
991+
992+
WINBASEAPI
993+
void
994+
WINAPI
995+
ClosePseudoConsole(
996+
_In_ HPCON hPC);
997+
998+
WINBASEAPI
999+
HRESULT
1000+
WINAPI
1001+
ResizePseudoConsole(
1002+
_In_ HPCON hPC,
1003+
_In_ COORD size);
1004+
1005+
#endif // (NTDDI_VERSION >= NTDDI_WIN10_RS5) || _KERNELBASE_
9821006

9831007
#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
9841008
/* See https://github.com/microsoft/terminal/blob/main/doc/specs/%237335%20-%20Console%20Allocation%20Policy.md

sdk/include/psdk/winnls.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -485,13 +485,11 @@ extern "C" {
485485
#define CAL_SMONTHDAY 56
486486
#define CAL_SABBREVERASTRING 57
487487
#endif //(WINVER >= _WIN32_WINNT_WIN7)
488-
#if (WINVER >= _WIN32_WINNT_WIN8)
488+
#if (WINVER >= _WIN32_WINNT_WIN8) || defined(_KERNELBASE_)
489489
#define CAL_SRELATIVELONGDATE 58
490-
#endif //(WINVER >= _WIN32_WINNT_WIN8)
491-
//#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
492490
#define CAL_SENGLISHERANAME 59
493491
#define CAL_SENGLISHABBREVERANAME 60
494-
//#endif //(NTDDI_VERSION >= NTDDI_WIN10_RS2)
492+
#endif /* WIN8+ or kernelbase Wine build */
495493
#define CAL_GREGORIAN 1
496494
#define CAL_GREGORIAN_US 2
497495
#define CAL_JAPAN 3
@@ -543,6 +541,7 @@ extern "C" {
543541
#define MAP_EXPAND_LIGATURES 0x2000
544542
#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
545543
#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
544+
#define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
546545
#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
547546
#define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
548547

@@ -652,7 +651,7 @@ enum SYSGEOTYPE
652651
GEO_DIALINGCODE,
653652
GEO_CURRENCYCODE,
654653
GEO_CURRENCYSYMBOL,
655-
#if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
654+
#if (NTDDI_VERSION >= NTDDI_WIN10_RS3) || defined(_KERNELBASE_)
656655
GEO_NAME,
657656
GEO_ID
658657
#endif
@@ -703,7 +702,7 @@ typedef struct _nlsversioninfo {
703702
DWORD dwNLSVersionInfoSize;
704703
DWORD dwNLSVersion;
705704
DWORD dwDefinedVersion;
706-
#if (WINVER >= _WIN32_WINNT_WIN8)
705+
#if (WINVER >= _WIN32_WINNT_WIN8) || defined(_KERNELBASE_)
707706
DWORD dwEffectiveId;
708707
GUID guidCustomVersion;
709708
#endif

0 commit comments

Comments
 (0)