[SDK][XDK][PSDK] Grab header changes needed for Wine-10.0 KernelBase (#8047)

* [SDK] Update ThreadInfoClass to wine-10.0

* [SDK][MODULES] Fix a test and add wine-10 entries to headers

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
This commit is contained in:
Justin Miller 2025-05-31 17:20:02 -07:00 committed by GitHub
parent babe6046e5
commit 45eff312cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 600 additions and 5 deletions

View file

@ -3448,12 +3448,12 @@ static void test_query_attribute_information_file(void)
ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %d\n", status);
ok(U(io).Status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %d\n", U(io).Status);
ok(ffai->FileSystemAttribute != 0, "Missing FileSystemAttribute\n");
ok(ffai->FileSystemAttributes != 0, "Missing FileSystemAttributes\n");
ok(ffai->MaximumComponentNameLength != 0, "Missing MaximumComponentNameLength\n");
ok(ffai->FileSystemNameLength != 0, "Missing FileSystemNameLength\n");
trace("FileSystemAttribute: %x MaximumComponentNameLength: %x FileSystemName: %s\n",
ffai->FileSystemAttribute, ffai->MaximumComponentNameLength,
trace("FileSystemAttributes: %x MaximumComponentNameLength: %x FileSystemName: %s\n",
ffai->FileSystemAttributes, ffai->MaximumComponentNameLength,
wine_dbgstr_wn(ffai->FileSystemName, ffai->FileSystemNameLength / sizeof(WCHAR)));
CloseHandle( dir );

View file

@ -0,0 +1,55 @@
/*
* Copyright (C) 2019 Alex Henrie
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_IP2STRING_H
#define __WINE_IP2STRING_H
#ifdef __cplusplus
extern "C" {
#endif
NTSYSAPI char * WINAPI RtlIpv4AddressToStringA(const IN_ADDR *address, char *str);
NTSYSAPI WCHAR * WINAPI RtlIpv4AddressToStringW(const IN_ADDR *address, WCHAR *str);
#define RtlIpv4AddressToString WINELIB_NAME_AW(RtlIpv4AddressToString)
NTSYSAPI NTSTATUS WINAPI RtlIpv4AddressToStringExA(const IN_ADDR *address, USHORT port, char *str, ULONG *size);
NTSYSAPI NTSTATUS WINAPI RtlIpv4AddressToStringExW(const IN_ADDR *address, USHORT port, WCHAR *str, ULONG *size);
#define RtlIpv4AddressToStringEx WINELIB_NAME_AW(RtlIpv4AddressToStringEx)
NTSYSAPI char * WINAPI RtlIpv6AddressToStringA(const IN6_ADDR *address, char *str);
NTSYSAPI WCHAR * WINAPI RtlIpv6AddressToStringW(const IN6_ADDR *address, WCHAR *str);
#define RtlIpv6AddressToString WINELIB_NAME_AW(RtlIpv6AddressToString)
NTSYSAPI NTSTATUS WINAPI RtlIpv6AddressToStringExA(const IN6_ADDR *address, LONG scope, USHORT port, char *str, ULONG *size);
NTSYSAPI NTSTATUS WINAPI RtlIpv6AddressToStringExW(const IN6_ADDR *address, LONG scope, USHORT port, WCHAR *str, ULONG *size);
#define RtlIpv6AddressToStringEx WINELIB_NAME_AW(RtlIpv6AddressToStringEx)
NTSYSAPI NTSTATUS WINAPI RtlIpv4StringToAddressA(const char *str, BOOLEAN strict, const char **terminator, IN_ADDR *address);
NTSYSAPI NTSTATUS WINAPI RtlIpv4StringToAddressW(const WCHAR *str, BOOLEAN strict, const WCHAR **terminator, IN_ADDR *address);
#define RtlIpv4StringToAddress WINELIB_NAME_AW(RtlIpv4StringToAddress)
NTSYSAPI NTSTATUS WINAPI RtlIpv4StringToAddressExA(const char *str, BOOLEAN strict, IN_ADDR *address, USHORT *port);
NTSYSAPI NTSTATUS WINAPI RtlIpv4StringToAddressExW(const WCHAR *str, BOOLEAN strict, IN_ADDR *address, USHORT *port);
#define RtlIpv4StringToAddressEx WINELIB_NAME_AW(RtlIpv4StringToAddressEx)
NTSYSAPI NTSTATUS WINAPI RtlIpv6StringToAddressA(const char *str, const char **terminator, IN6_ADDR *address);
NTSYSAPI NTSTATUS WINAPI RtlIpv6StringToAddressW(const WCHAR *str, const WCHAR **terminator, IN6_ADDR *address);
#define RtlIpv6StringToAddress WINELIB_NAME_AW(RtlIpv6StringToAddress)
NTSYSAPI NTSTATUS WINAPI RtlIpv6StringToAddressExA(const char *str, IN6_ADDR *address, ULONG *scope, USHORT *port);
NTSYSAPI NTSTATUS WINAPI RtlIpv6StringToAddressExW(const WCHAR *str, IN6_ADDR *address, ULONG *scope, USHORT *port);
#define RtlIpv6StringToAddressEx WINELIB_NAME_AW(RtlIpv6StringToAddressEx)
#ifdef __cplusplus
}
#endif
#endif

View file

@ -28,6 +28,7 @@ typedef void *DLL_DIRECTORY_COOKIE, **PDLL_DIRECTORY_COOKIE;
WINBASEAPI DLL_DIRECTORY_COOKIE WINAPI AddDllDirectory(const WCHAR *);
WINBASEAPI BOOL WINAPI RemoveDllDirectory(DLL_DIRECTORY_COOKIE);
WINBASEAPI BOOL WINAPI SetDefaultDllDirectories(DWORD);
WINBASEAPI INT WINAPI FindStringOrdinal(DWORD, const WCHAR *, INT, const WCHAR *, INT, BOOL);
#ifdef __cplusplus
}

View file

@ -0,0 +1,39 @@
/*
* Copyright (C) 2023 Paul Gofman for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __NTIORING_X_H_
#define __NTIORING_X_H_
enum IORING_VERSION
{
IORING_VERSION_INVALID = 0,
IORING_VERSION_1 = 1,
IORING_VERSION_2 = 2,
IORING_VERSION_3 = 300,
};
typedef enum IORING_VERSION IORING_VERSION;
enum IORING_FEATURE_FLAGS
{
IORING_FEATURE_FLAGS_NONE = 0,
IORING_FEATURE_UM_EMULATION = 0x00000001,
IORING_FEATURE_SET_COMPLETION_EVENT = 0x00000002,
};
typedef enum IORING_FEATURE_FLAGS IORING_FEATURE_FLAGS;
#endif

123
sdk/include/psdk/perflib.h Normal file
View file

@ -0,0 +1,123 @@
/*
* Copyright (C) 2017 Austin English
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _PERFLIB_H_
#define _PERFLIB_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef void * (__WINE_ALLOC_SIZE(1) CDECL * PERF_MEM_ALLOC)(SIZE_T,void*);
typedef void (CDECL * PERF_MEM_FREE)(LPVOID,LPVOID);
typedef ULONG (WINAPI * PERFLIBREQUEST)(ULONG,PVOID,ULONG);
typedef struct _PERF_COUNTERSET_INFO {
GUID CounterSetGuid;
GUID ProviderGuid;
ULONG NumCounters;
ULONG InstanceType;
} PERF_COUNTERSET_INFO, * PPERF_COUNTERSET_INFO;
/* PERF_COUNTERSET_INFO InstanceType values. */
#define PERF_COUNTERSET_FLAG_MULTIPLE 0x00000002
#define PERF_COUNTERSET_FLAG_AGGREGATE 0x00000004
#define PERF_COUNTERSET_FLAG_HISTORY 0x00000008
#define PERF_COUNTERSET_FLAG_INSTANCE 0x00000010
#define PERF_COUNTERSET_SINGLE_INSTANCE 0
#define PERF_COUNTERSET_MULTI_INSTANCES PERF_COUNTERSET_FLAG_MULTIPLE
#define PERF_COUNTERSET_SINGLE_AGGREGATE PERF_COUNTERSET_FLAG_AGGREGATE
#define PERF_COUNTERSET_MULTI_AGGREGATE (PERF_COUNTERSET_FLAG_AGGREGATE | PERF_COUNTERSET_FLAG_MULTIPLE)
#define PERF_COUNTERSET_SINGLE_AGGREGATE_HISTORY (PERF_COUNTERSET_FLAG_HISTORY | PERF_COUNTERSET_SINGLE_AGGREGATE)
#define PERF_COUNTERSET_INSTANCE_AGGREGATE (PERF_COUNTERSET_MULTI_AGGREGATE | PERF_COUNTERSET_FLAG_INSTANCE)
typedef struct _PERF_COUNTERSET_INSTANCE {
GUID CounterSetGuid;
ULONG dwSize;
ULONG InstanceId;
ULONG InstanceNameOffset;
ULONG InstanceNameSize;
} PERF_COUNTERSET_INSTANCE, * PPERF_COUNTERSET_INSTANCE;
typedef struct _PERF_COUNTER_INFO {
ULONG CounterId;
ULONG Type;
ULONGLONG Attrib;
ULONG Size;
ULONG DetailLevel;
LONG Scale;
ULONG Offset;
} PERF_COUNTER_INFO, *PPERF_COUNTER_INFO;
/* PERF_COUNTER_INFO Attrib flags. */
#define PERF_ATTRIB_BY_REFERENCE 0x00000001
#define PERF_ATTRIB_NO_DISPLAYABLE 0x00000002
#define PERF_ATTRIB_NO_GROUP_SEPARATOR 0x00000004
#define PERF_ATTRIB_DISPLAY_AS_REAL 0x00000008
#define PERF_ATTRIB_DISPLAY_AS_HEX 0x00000010
typedef struct _PROVIDER_CONTEXT {
DWORD ContextSize;
DWORD Reserved;
PERFLIBREQUEST ControlCallback;
PERF_MEM_ALLOC MemAllocRoutine;
PERF_MEM_FREE MemFreeRoutine;
LPVOID pMemContext;
} PERF_PROVIDER_CONTEXT, * PPERF_PROVIDER_CONTEXT;
typedef struct _PERF_COUNTER_IDENTIFIER {
GUID CounterSetGuid;
ULONG Status;
ULONG Size;
ULONG CounterId;
ULONG InstanceId;
ULONG Index;
ULONG Reserved;
} PERF_COUNTER_IDENTIFIER, *PPERF_COUNTER_IDENTIFIER;
#define PERF_WILDCARD_COUNTER 0xFFFFFFFF
#define PERF_WILDCARD_INSTANCE L"*"
typedef struct _PERF_DATA_HEADER {
ULONG dwTotalSize;
ULONG dwNumCounters;
LONGLONG PerfTimeStamp;
LONGLONG PerfTime100NSec;
LONGLONG PerfFreq;
SYSTEMTIME SystemTime;
} PERF_DATA_HEADER, *PPERF_DATA_HEADER;
PERF_COUNTERSET_INSTANCE WINAPI *PerfCreateInstance(HANDLE, const GUID *, const WCHAR *, ULONG);
ULONG WINAPI PerfDeleteInstance(HANDLE, PERF_COUNTERSET_INSTANCE *);
ULONG WINAPI PerfSetCounterRefValue(HANDLE, PERF_COUNTERSET_INSTANCE *, ULONG, void *);
ULONG WINAPI PerfSetCounterSetInfo(HANDLE, PERF_COUNTERSET_INFO *, ULONG);
ULONG WINAPI PerfStartProvider(GUID *, PERFLIBREQUEST, HANDLE *);
ULONG WINAPI PerfStartProviderEx(GUID *, PERF_PROVIDER_CONTEXT *, HANDLE *);
ULONG WINAPI PerfStopProvider(HANDLE);
ULONG WINAPI PerfAddCounters(HANDLE, PERF_COUNTER_IDENTIFIER *, DWORD);
ULONG WINAPI PerfCloseQueryHandle(HANDLE);
ULONG WINAPI PerfOpenQueryHandle(const WCHAR *, HANDLE *);
ULONG WINAPI PerfQueryCounterData(HANDLE, PERF_DATA_HEADER *, DWORD, DWORD *);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _PERFLIB_H_ */

View file

@ -0,0 +1,135 @@
/*
* Copyright (C) the Wine project
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _WINCONTYPES_
#define _WINCONTYPES_
typedef struct tagCOORD
{
SHORT X;
SHORT Y;
} COORD, *LPCOORD;
typedef struct tagSMALL_RECT
{
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
} SMALL_RECT,*LPSMALL_RECT;
typedef struct tagKEY_EVENT_RECORD
{
BOOL bKeyDown; /* 04 */
WORD wRepeatCount; /* 08 */
WORD wVirtualKeyCode; /* 0A */
WORD wVirtualScanCode; /* 0C */
union /* 0E */
{
WCHAR UnicodeChar; /* 0E */
CHAR AsciiChar; /* 0E */
} uChar;
DWORD dwControlKeyState; /* 10 */
} KEY_EVENT_RECORD,*LPKEY_EVENT_RECORD;
/* dwControlKeyState bitmask */
#define RIGHT_ALT_PRESSED 0x0001
#define LEFT_ALT_PRESSED 0x0002
#define RIGHT_CTRL_PRESSED 0x0004
#define LEFT_CTRL_PRESSED 0x0008
#define SHIFT_PRESSED 0x0010
#define NUMLOCK_ON 0x0020
#define SCROLLLOCK_ON 0x0040
#define CAPSLOCK_ON 0x0080
#define ENHANCED_KEY 0x0100
typedef struct tagMOUSE_EVENT_RECORD
{
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
} MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
/* MOUSE_EVENT_RECORD.dwButtonState */
#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
#define RIGHTMOST_BUTTON_PRESSED 0x0002
#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
/* MOUSE_EVENT_RECORD.dwEventFlags */
#define MOUSE_MOVED 0x0001
#define DOUBLE_CLICK 0x0002
#define MOUSE_WHEELED 0x0004
#define MOUSE_HWHEELED 0x0008
typedef struct tagWINDOW_BUFFER_SIZE_RECORD
{
COORD dwSize;
} WINDOW_BUFFER_SIZE_RECORD,*LPWINDOW_BUFFER_SIZE_RECORD;
typedef struct tagMENU_EVENT_RECORD
{
UINT dwCommandId;
} MENU_EVENT_RECORD,*LPMENU_EVENT_RECORD;
typedef struct tagFOCUS_EVENT_RECORD
{
BOOL bSetFocus;
} FOCUS_EVENT_RECORD,*LPFOCUS_EVENT_RECORD;
typedef struct tagINPUT_RECORD
{
WORD EventType;
union
{
KEY_EVENT_RECORD KeyEvent;
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD,*PINPUT_RECORD;
/* INPUT_RECORD.wEventType */
#define KEY_EVENT 0x01
#define MOUSE_EVENT 0x02
#define WINDOW_BUFFER_SIZE_EVENT 0x04
#define MENU_EVENT 0x08
#define FOCUS_EVENT 0x10
typedef struct tagCHAR_INFO
{
union
{
WCHAR UnicodeChar;
CHAR AsciiChar;
} Char;
WORD Attributes;
} CHAR_INFO,*LPCHAR_INFO;
typedef struct _CONSOLE_FONT_INFO
{
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO,*LPCONSOLE_FONT_INFO;
typedef void *HPCON;
#endif /* _WINCONTYPES_ */

View file

@ -23,6 +23,10 @@ extern "C" {
#endif
#define LOCALE_RETURN_GENITIVE_NAMES 0x10000000
#define LOCALE_ALLOW_NEUTRAL_NAMES 0x08000000
#define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002
#if (WINVER >= _WIN32_WINNT_VISTA)
#define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006f
#endif
#define LOCALE_ILANGUAGE 1
#define LOCALE_SLANGUAGE 2
#define LOCALE_SENGLANGUAGE 0x1001
@ -167,6 +171,10 @@ extern "C" {
#define LOCALE_SOPENTYPELANGUAGETAG 0x007a
#define LOCALE_SSORTLOCALE 0x007b
//#endif /* (WINVER >= _WIN32_WINNT_WIN7) */
#define LOCALE_SRELATIVELONGDATE 0x007C // Win8
#define LOCALE_SSHORTESTAM 0x007E
#define LOCALE_SSHORTESTPM 0x007F
#if (WINVER >= 0x0600)
#define LOCALE_NAME_USER_DEFAULT NULL
@ -181,9 +189,11 @@ extern "C" {
#define NORM_IGNORENONSPACE 2
#define NORM_IGNORESYMBOLS 4
#define NORM_IGNOREWIDTH 131072
#define LINGUISTIC_IGNORECASE 0x00000010
#define LINGUISTIC_IGNORECASE 0x00000010
#define LINGUISTIC_IGNOREDIACRITIC 0x00000020
#define NORM_LINGUISTIC_CASING 0x08000000
#define SORT_STRINGSORT 4096
#define SORT_DIGITSASNUMBERS 0x00000008 // _WIN32_WINNT_WIN7
#define LCMAP_LOWERCASE 0x00000100
#define LCMAP_UPPERCASE 0x00000200
#define LCMAP_SORTKEY 0x00000400
@ -205,6 +215,11 @@ extern "C" {
#define LCID_SUPPORTED 2
#define LCID_ALTERNATE_SORTS 4
#define FIND_STARTSWITH 0x00100000
#define FIND_ENDSWITH 0x00200000
#define FIND_FROMSTART 0x00400000
#define FIND_FROMEND 0x00800000
#define LOCALE_ALL 0x00
#define LOCALE_WINDOWS 0x01
#define LOCALE_SUPPLEMENTAL 0x02
@ -455,6 +470,8 @@ extern "C" {
#define CAL_GREGORIAN_ARABIC 10
#define CAL_GREGORIAN_XLIT_ENGLISH 11
#define CAL_GREGORIAN_XLIT_FRENCH 12
#define CAL_PERSIAN 22
#define CAL_UMALQURA 23
#define CSTR_LESS_THAN 1
#define CSTR_EQUAL 2
#define CSTR_GREATER_THAN 3
@ -728,6 +745,33 @@ EnumSystemLocalesEx(
BOOL WINAPI EnumTimeFormatsA(_In_ TIMEFMT_ENUMPROCA, _In_ LCID, _In_ DWORD);
BOOL WINAPI EnumTimeFormatsW(_In_ TIMEFMT_ENUMPROCW, _In_ LCID, _In_ DWORD);
WINBASEAPI
int
WINAPI
FindNLSString(
_In_ LCID Locale,
_In_ DWORD dwFindNLSStringFlags,
_In_reads_(cchSource) LPCWSTR lpStringSource,
_In_ int cchSource,
_In_reads_(cchValue) LPCWSTR lpStringValue,
_In_ int cchValue,
_Out_opt_ LPINT pcchFound);
WINBASEAPI
int
WINAPI
FindNLSStringEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFindNLSStringFlags,
_In_reads_(cchSource) LPCWSTR lpStringSource,
_In_ int cchSource,
_In_reads_(cchValue) LPCWSTR lpStringValue,
_In_ int cchValue,
_Out_opt_ LPINT pcchFound,
_In_opt_ LPNLSVERSIONINFO lpVersionInformation,
_In_opt_ LPVOID lpReserved,
_In_opt_ LPARAM sortHandle);
int
WINAPI
FoldStringA(

View file

@ -433,7 +433,7 @@ typedef struct _FILE_FS_DEVICE_INFORMATION {
/* FileFsAttributeInformation = 5 */
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttribute;
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];

View file

@ -2222,6 +2222,29 @@ typedef enum _SYSDBG_COMMAND {
SysDbgWriteBusData
} SYSDBG_COMMAND, *PSYSDBG_COMMAND;
typedef struct _CPTABLEINFO
{
USHORT CodePage;
USHORT MaximumCharacterSize;
USHORT DefaultChar;
USHORT UniDefaultChar;
USHORT TransDefaultChar;
USHORT TransUniDefaultChar;
USHORT DBCSCodePage;
UCHAR LeadByte[12];
USHORT *MultiByteTable;
void *WideCharTable;
USHORT *DBCSRanges;
USHORT *DBCSOffsets;
} CPTABLEINFO, *PCPTABLEINFO;
typedef struct _NLSTABLEINFO
{
CPTABLEINFO OemTableInfo;
CPTABLEINFO AnsiTableInfo;
USHORT *UpperCaseTable;
USHORT *LowerCaseTable;
} NLSTABLEINFO, *PNLSTABLEINFO;
/*************************************************************************
* Loader structures
@ -2431,6 +2454,7 @@ NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
NTSYSAPI NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*);
NTSYSAPI ULONG WINAPI NtGetCurrentProcessorNumber(void);
NTSYSAPI NTSTATUS WINAPI NtGetNlsSectionPtr(ULONG,ULONG,void*,void**,SIZE_T*);
NTSYSAPI NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG);
NTSYSAPI ULONG WINAPI NtGetTickCount(VOID);
NTSYSAPI NTSTATUS WINAPI NtGetWriteWatch(HANDLE,ULONG,PVOID,SIZE_T,PVOID*,ULONG_PTR*,ULONG*);
@ -2752,6 +2776,7 @@ NTSYSAPI ULONG WINAPI RtlGetFullPathName_U(PCWSTR,ULONG,PWSTR,PWSTR*);
NTSYSAPI NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN);
NTSYSAPI NTSTATUS WINAPI RtlGetLastNtStatus(void);
NTSYSAPI DWORD WINAPI RtlGetLastWin32Error(void);
NTSYSAPI NTSTATUS WINAPI RtlGetLocaleFileMappingAddress(void**,LCID*,LARGE_INTEGER*);
NTSYSAPI DWORD WINAPI RtlGetLongestNtPathLength(void);
NTSYSAPI ULONG WINAPI RtlGetNtGlobalFlags(void);
NTSYSAPI BOOLEAN WINAPI RtlGetNtProductType(LPDWORD);
@ -3076,6 +3101,145 @@ typedef struct
WCHAR curdir_buffer[MAX_PATH];
} WIN16_SUBSYSTEM_TIB;
/* Undocumented: layout of the locale data in the locale.nls file */
typedef struct
{
UINT sname; /* 000 LOCALE_SNAME */
UINT sopentypelanguagetag; /* 004 LOCALE_SOPENTYPELANGUAGETAG */
USHORT ilanguage; /* 008 LOCALE_ILANGUAGE */
USHORT unique_lcid; /* 00a unique id if lcid == 0x1000 */
USHORT idigits; /* 00c LOCALE_IDIGITS */
USHORT inegnumber; /* 00e LOCALE_INEGNUMBER */
USHORT icurrdigits; /* 010 LOCALE_ICURRDIGITS*/
USHORT icurrency; /* 012 LOCALE_ICURRENCY */
USHORT inegcurr; /* 014 LOCALE_INEGCURR */
USHORT ilzero; /* 016 LOCALE_ILZERO */
USHORT inotneutral; /* 018 LOCALE_INEUTRAL (inverted) */
USHORT ifirstdayofweek; /* 01a LOCALE_IFIRSTDAYOFWEEK (monday=0) */
USHORT ifirstweekofyear; /* 01c LOCALE_IFIRSTWEEKOFYEAR */
USHORT icountry; /* 01e LOCALE_ICOUNTRY */
USHORT imeasure; /* 020 LOCALE_IMEASURE */
USHORT idigitsubstitution; /* 022 LOCALE_IDIGITSUBSTITUTION */
UINT sgrouping; /* 024 LOCALE_SGROUPING (as binary string) */
UINT smongrouping; /* 028 LOCALE_SMONGROUPING (as binary string) */
UINT slist; /* 02c LOCALE_SLIST */
UINT sdecimal; /* 030 LOCALE_SDECIMAL */
UINT sthousand; /* 034 LOCALE_STHOUSAND */
UINT scurrency; /* 038 LOCALE_SCURRENCY */
UINT smondecimalsep; /* 03c LOCALE_SMONDECIMALSEP */
UINT smonthousandsep; /* 040 LOCALE_SMONTHOUSANDSEP */
UINT spositivesign; /* 044 LOCALE_SPOSITIVESIGN */
UINT snegativesign; /* 048 LOCALE_SNEGATIVESIGN */
UINT s1159; /* 04c LOCALE_S1159 */
UINT s2359; /* 050 LOCALE_S2359 */
UINT snativedigits; /* 054 LOCALE_SNATIVEDIGITS (array of single digits) */
UINT stimeformat; /* 058 LOCALE_STIMEFORMAT (array of formats) */
UINT sshortdate; /* 05c LOCALE_SSHORTDATE (array of formats) */
UINT slongdate; /* 060 LOCALE_SLONGDATE (array of formats) */
UINT syearmonth; /* 064 LOCALE_SYEARMONTH (array of formats) */
UINT sduration; /* 068 LOCALE_SDURATION (array of formats) */
USHORT idefaultlanguage; /* 06c LOCALE_IDEFAULTLANGUAGE */
USHORT idefaultansicodepage; /* 06e LOCALE_IDEFAULTANSICODEPAGE */
USHORT idefaultcodepage; /* 070 LOCALE_IDEFAULTCODEPAGE */
USHORT idefaultmaccodepage; /* 072 LOCALE_IDEFAULTMACCODEPAGE */
USHORT idefaultebcdiccodepage; /* 074 LOCALE_IDEFAULTEBCDICCODEPAGE */
USHORT old_geoid; /* 076 LOCALE_IGEOID (older version?) */
USHORT ipapersize; /* 078 LOCALE_IPAPERSIZE */
BYTE islamic_cal[2]; /* 07a calendar id for islamic calendars (?) */
UINT scalendartype; /* 07c string, first char is LOCALE_ICALENDARTYPE, next chars are LOCALE_IOPTIONALCALENDAR */
UINT sabbrevlangname; /* 080 LOCALE_SABBREVLANGNAME */
UINT siso639langname; /* 084 LOCALE_SISO639LANGNAME */
UINT senglanguage; /* 088 LOCALE_SENGLANGUAGE */
UINT snativelangname; /* 08c LOCALE_SNATIVELANGNAME */
UINT sengcountry; /* 090 LOCALE_SENGCOUNTRY */
UINT snativectryname; /* 094 LOCALE_SNATIVECTRYNAME */
UINT sabbrevctryname; /* 098 LOCALE_SABBREVCTRYNAME */
UINT siso3166ctryname; /* 09c LOCALE_SISO3166CTRYNAME */
UINT sintlsymbol; /* 0a0 LOCALE_SINTLSYMBOL */
UINT sengcurrname; /* 0a4 LOCALE_SENGCURRNAME */
UINT snativecurrname; /* 0a8 LOCALE_SNATIVECURRNAME */
UINT fontsignature; /* 0ac LOCALE_FONTSIGNATURE (binary string) */
UINT siso639langname2; /* 0b0 LOCALE_SISO639LANGNAME2 */
UINT siso3166ctryname2; /* 0b4 LOCALE_SISO3166CTRYNAME2 */
UINT sparent; /* 0b8 LOCALE_SPARENT */
UINT sdayname; /* 0bc LOCALE_SDAYNAME1 (array of days 1..7) */
UINT sabbrevdayname; /* 0c0 LOCALE_SABBREVDAYNAME1 (array of days 1..7) */
UINT smonthname; /* 0c4 LOCALE_SMONTHNAME1 (array of months 1..13) */
UINT sabbrevmonthname; /* 0c8 LOCALE_SABBREVMONTHNAME1 (array of months 1..13) */
UINT sgenitivemonth; /* 0cc equivalent of LOCALE_SMONTHNAME1 for genitive months */
UINT sabbrevgenitivemonth; /* 0d0 equivalent of LOCALE_SABBREVMONTHNAME1 for genitive months */
UINT calnames; /* 0d4 array of calendar names */
UINT customsorts; /* 0d8 array of custom sort names */
USHORT inegativepercent; /* 0dc LOCALE_INEGATIVEPERCENT */
USHORT ipositivepercent; /* 0de LOCALE_IPOSITIVEPERCENT */
USHORT unknown1; /* 0e0 */
USHORT ireadinglayout; /* 0e2 LOCALE_IREADINGLAYOUT */
USHORT unknown2[2]; /* 0e4 */
UINT unused1; /* 0e8 unused? */
UINT sengdisplayname; /* 0ec LOCALE_SENGLISHDISPLAYNAME */
UINT snativedisplayname; /* 0f0 LOCALE_SNATIVEDISPLAYNAME */
UINT spercent; /* 0f4 LOCALE_SPERCENT */
UINT snan; /* 0f8 LOCALE_SNAN */
UINT sposinfinity; /* 0fc LOCALE_SPOSINFINITY */
UINT sneginfinity; /* 100 LOCALE_SNEGINFINITY */
UINT unused2; /* 104 unused? */
UINT serastring; /* 108 CAL_SERASTRING */
UINT sabbreverastring; /* 10c CAL_SABBREVERASTRING */
UINT unused3; /* 110 unused? */
UINT sconsolefallbackname; /* 114 LOCALE_SCONSOLEFALLBACKNAME */
UINT sshorttime; /* 118 LOCALE_SSHORTTIME (array of formats) */
UINT sshortestdayname; /* 11c LOCALE_SSHORTESTDAYNAME1 (array of days 1..7) */
UINT unused4; /* 120 unused? */
UINT ssortlocale; /* 124 LOCALE_SSORTLOCALE */
UINT skeyboardstoinstall; /* 128 LOCALE_SKEYBOARDSTOINSTALL */
UINT sscripts; /* 12c LOCALE_SSCRIPTS */
UINT srelativelongdate; /* 130 LOCALE_SRELATIVELONGDATE */
UINT igeoid; /* 134 LOCALE_IGEOID */
UINT sshortestam; /* 138 LOCALE_SSHORTESTAM */
UINT sshortestpm; /* 13c LOCALE_SSHORTESTPM */
UINT smonthday; /* 140 LOCALE_SMONTHDAY (array of formats) */
UINT keyboard_layout; /* 144 keyboard layouts */
} NLS_LOCALE_DATA;
typedef struct
{
UINT id; /* 00 lcid */
USHORT idx; /* 04 index in locales array */
USHORT name; /* 06 locale name */
} NLS_LOCALE_LCID_INDEX;
typedef struct
{
USHORT name; /* 00 locale name */
USHORT idx; /* 02 index in locales array */
UINT id; /* 04 lcid */
} NLS_LOCALE_LCNAME_INDEX;
typedef struct
{
UINT offset; /* 00 offset to version, always 8? */
UINT unknown1; /* 04 */
UINT version; /* 08 file format version */
UINT magic; /* 0c magic 'NSDS' */
UINT unknown2[3]; /* 10 */
USHORT header_size; /* 1c size of this header (?) */
USHORT nb_lcids; /* 1e number of lcids in index */
USHORT nb_locales; /* 20 number of locales in array */
USHORT locale_size; /* 22 size of NLS_LOCALE_DATA structure */
UINT locales_offset; /* 24 offset of locales array */
USHORT nb_lcnames; /* 28 number of lcnames in index */
USHORT pad; /* 2a */
UINT lcids_offset; /* 2c offset of lcids index */
UINT lcnames_offset; /* 30 offset of lcnames index */
UINT unknown3; /* 34 */
USHORT nb_calendars; /* 38 number of calendars in array */
USHORT calendar_size; /* 3a size of calendar structure */
UINT calendars_offset; /* 3c offset of calendars array */
UINT strings_offset; /* 40 offset of strings data */
USHORT unknown4[4]; /* 44 */
} NLS_LOCALE_HEADER;
#endif /* __WINESRC__ */
#ifdef __cplusplus

View file

@ -319,6 +319,28 @@ typedef enum _THREADINFOCLASS {
ThreadUmsInformation,
ThreadCounterProfiling,
ThreadIdealProcessorEx,
ThreadCpuAccountingInformation, // 6.2
ThreadSuspendCount, // 6.3
ThreadHeterogeneousCpuPolicy, // 10.0+
ThreadContainerId,
ThreadNameInformation,
ThreadSelectedCpuSets,
ThreadSystemThreadInformation,
ThreadActualGroupAffinity,
ThreadDynamicCodePolicyInfo,
ThreadExplicitCaseSensitivity,
ThreadWorkOnBehalfTicket,
ThreadSubsystemInformation,
ThreadDbgkWerReportActive,
ThreadAttachContainer,
ThreadManageWritesToExecutableMemory,
ThreadPowerThrottlingState,
ThreadWorkloadClass,
ThreadCreateStateChange,
ThreadApplyStateChange,
ThreadStrongerBadHandleChecks,
ThreadEffectiveIoPriority,
ThreadEffectivePagePriority,
MaxThreadInfoClass
} THREADINFOCLASS;

View file

@ -753,6 +753,18 @@ typedef struct _ACE_HEADER {
#define SUCCESSFUL_ACCESS_ACE_FLAG (0x40)
#define FAILED_ACCESS_ACE_FLAG (0x80)
#define SECURITY_APP_PACKAGE_AUTHORITY {0,0,0,0,0,15}
#define SECURITY_APP_PACKAGE_BASE_RID (0x000000002)
#define SECURITY_BUILTIN_APP_PACKAGE_RID_COUNT (0x000000002)
#define SECURITY_APP_PACKAGE_RID_COUNT (0x000000008)
#define SECURITY_CAPABILITY_BASE_RID (0x000000003)
#define SECURITY_CAPABILITY_APP_RID (0x000000400)
#define SECURITY_BUILTIN_CAPABILITY_RID_COUNT (0x000000002)
#define SECURITY_CAPABILITY_RID_COUNT (0x000000005)
#define SECURITY_PARENT_PACKAGE_RID_COUNT SECURITY_APP_PACKAGE_RID_COUNT
#define SECURITY_CHILD_PACKAGE_RID_COUNT (0x00000000c)
#define SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE (0x000000001)
typedef struct _ACCESS_ALLOWED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;