Commit graph

434 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
fc35f6eb4b
[MKHIVE] Return win32-like error codes for functions that expect to do so. Fix and comment out some unused ERROR_xxx/STATUS_xxx defines. 2018-10-14 17:10:04 +02:00
Hermès Bélusca-Maïto
8f82b00fa6
[MKHIVE] Minor code formatting. 2018-10-14 16:28:13 +02:00
Hermès Bélusca-Maïto
d91a47826e
[MKHIVE] Implement RegDeleteKeyW() and RegDeleteValueW(). 2018-10-14 15:59:57 +02:00
Hermès Bélusca-Maïto
6a44c10d5d
[MKHIVE] Minor improvements.
- Fix a bug in RegpCreateOrOpenKey() when we attempt to open an
  non-existing (sub-)key.
- Check failure of RegCreateKeyExW() in CreateSymLink().
- Remove unneeded includes.
- Update few comments.
2018-10-14 15:59:54 +02:00
Hermès Bélusca-Maïto
ec3c61c233
[MKHIVE] Simplify CmiAddValueKey() by using CmpAddValueToList(). 2018-10-14 15:59:50 +02:00
Hermès Bélusca-Maïto
a965cf6e04
[MKHIVE] Sync a bit more of reginf.c with the corresponding setupapi code. 2018-10-14 15:59:46 +02:00
Hermès Bélusca-Maïto
81d435a181
[MKHIVE] Implement and use RegCloseKey(). 2018-10-14 15:59:41 +02:00
Hermès Bélusca-Maïto
4caf391324
[NTOS][MKHIVE] Minor code formatting. 2018-10-14 15:59:34 +02:00
Hermès Bélusca-Maïto
bf8a7d2db0
[CMLIB] Adjust parameter types and annotations. Add diagnostic assertions. 2018-10-14 15:59:31 +02:00
Mark Jansen
2d47c3be29
[CRT] spawn: define a unicode environment when needed
CORE-9182
2018-10-13 20:30:07 +02:00
Hermès Bélusca-Maïto
47d539e6e0
[RTL] Make a RtlQueryEnvironmentVariable_U() DPRINT a little bit more useful. 2018-10-13 19:44:13 +02:00
Mark Jansen
ef202724d8
[SDK] Implement __wine_spec_unimplemented_stub with ntdll functions 2018-10-12 19:30:36 +02:00
Mark Jansen
b494abbd72
[SDK] Add version option to our spec2def cmake command 2018-10-12 19:30:36 +02:00
Mark Jansen
4e3f76352a
[SDK] Add the WITH_RELAY option to msvc's spec2def command. (GCC already had it) 2018-10-12 19:30:35 +02:00
Mark Jansen
d564c7c8e3
[SPEC2DEF] Fix support for different OS versions. 2018-10-12 19:30:35 +02:00
Hermès Bélusca-Maïto
4e6fc201a0
[MKHIVE] Fixes for the previous fixes.
- Fix parsing of the options.
- Only uppercase the file name part and NOT the full path!
  And do it in a way GCC-Linux correctly understands, aka.:
      *ptr = toupper(*ptr); ++ptr;
  but NOT!:
      *ptr++ = toupper(*ptr);
  (that last one worked on GCC-Win and MSVC).

[CMAKE] Let's keep SETUPREG.HIV and BCD hive file names in uppercase
(use the '-u' switch) while keeping the other ones in lowercase.

Should definitively fix GCCLin builder!
2018-10-09 01:33:10 +02:00
Hermès Bélusca-Maïto
f37dd1e10a
[MKHIVE] Remove support for '/' options, this does not behave well under Linux. 2018-10-09 00:25:01 +02:00
Hermès Bélusca-Maïto
efbe071e02
[MKHIVE] Minor additional functionality.
- Add support for '/' switch characters.
- Add '-?' switch.

TEMPORARY:
- Add a '-u' switch to generate hive file names in uppercase (by default
  we keep these in lowercase). Should help in fixing GCCLin builder.

[CMAKE] Fix expected file name case. Should help in fixing GCCLin builder.
2018-10-09 00:15:14 +02:00
Hermès Bélusca-Maïto
c069ca1797
[MKHIVE] Improve dprint output (delimiting where strings start & end: is useful for empty strings).
svn path=/branches/setup_improvements/; revision=74768
2018-10-08 21:23:39 +02:00
Hermès Bélusca-Maïto
84d2264d9b
[MKHIVE][CMAKE] Make mkhive a bit more flexible, so that it can generate only specific hives on-demand (and not all of them always at once).
This commit is needed for building a single bootcd registry hive. It will also enable 1-st stage setup to have a proper registry present as done on Windows.
CORE-13347

[CMAKE]
Note that the mkhive commands should really depend on the generated UTF16 INF files since the latter are those that are actually used as input for mkhive.
Otherwise, the mkhive calls & the UTF16 INF file conversion is not serialized and we can generate "corrupted" hives due to the fact that mkhive is using
INF files that are in the process of being (and therefore, only partially) generated.

svn path=/branches/setup_improvements/; revision=74741
svn path=/branches/setup_improvements/; revision=74749
2018-10-08 21:23:38 +02:00
Hermès Bélusca-Maïto
287d35b84d
[BOOTDATA][CMAKE] Enumerate the four first installation directories in 'canonical' order, to keep compatibility with Windows' txtsetup.sif/layout.inf. 2018-10-08 21:16:58 +02:00
Eric Kohl
bb7292b287 [CRT] Fix two obvious typos in _mbbtype().
Patch by Kudratov Olimjon.

CORE-8545
2018-10-07 22:56:14 +02:00
Mark Jansen
57ed670b5a
[RTL] actctx: When probing a dll for a manifest, use the first manifest id present,
instead of always searching for CREATEPROCESS_MANIFEST_RESOURCE_ID.
CORE-9519
2018-10-01 20:16:10 +02:00
Amine Khaldi
82faa151e5 [XDK][PSDK][WINE] Unify ARRAY_SIZE definition for Wine modules. CORE-15127 2018-09-30 23:57:08 +01:00
Stanislav Motylkov
bae6e075e0
[UDMIHELP] Initialize output buffer if DMI string is NULL 2018-09-29 17:11:08 +03:00
Stanislav Motylkov
c356804550
[DMILIB] Process SKU and Family strings 2018-09-29 17:10:48 +03:00
Eric Kohl
da73c81259 [IDL][LSASRV] Improve the credentials interface a little and update the lsa server code accordingly. 2018-09-18 15:55:18 +02:00
Mark Jansen
06eb99edef
[NTDLL][KERNEL32] Implement FLS callbacks. 2018-09-15 17:56:03 +02:00
Pierre Schweitzer
a06184a9a4
[WINLOGON] Fix build
Add a specific internal header for MPR and include it in WinLogon.

CORE-15012
2018-09-14 08:15:08 +02:00
Pierre Schweitzer
6f5da265c8
[SDK] Add WNetClearConnections() in the headers for undocumented stuff
CORE-15012
2018-09-11 08:30:31 +02:00
Amine Khaldi
3bf751e046 [USBEHCI_NEW] Bring-in the USB EHCI miniport driver created by Vadim Galyant. (#301) 2018-09-10 09:05:35 +02:00
Eric Kohl
45beb1a523 [PSDK] Add missing struct _GROUP_INFO_3 to lmaccess.h 2018-09-08 22:21:15 +02:00
Thomas Faber
5e6810d5d2
[SDK] Make gen_baseaddress.py compatible with Python 3. 2018-09-08 11:11:08 +02:00
Pierre Schweitzer
7554829576
[DDK] Add NT6+ implementation for Rx*PrefixTableLock macros 2018-09-08 10:06:40 +02:00
Mark Jansen
ea5912e4d1
[SDK] Generate msvc baseaddresses from an RTC build 2018-09-05 21:38:26 +02:00
Serge Gautherie
cb072fd0fe [CMLIB] Fix compiling as NT6+ (#840)
Addendum to r70582 (734bc291).
CORE-12596
2018-09-05 20:18:14 +02:00
Eric Kohl
f5b3a10885 [IDL] Add some Flags SamrSetInformationUser.UserInternal2Information 2018-09-04 22:42:47 +02:00
Eric Kohl
791f331d67 [IDL] Add the undocumented struct _SAMPR_USER_INTERNAL2_INFORMATION to sam.idl 2018-09-02 11:59:19 +02:00
Hermès Bélusca-Maïto
cb979bb293
[REACTOS] Introduce a "DEBUGFORMAT" environment variable that allows to select different debug trace formats.
CORE-12671

- The default format is used when no format name is specified: this is
  the one we use so far in ReactOS:

    <debug_class>:(<file>:<line>) <message>

  with "debug_class" being "trace", "warn", "err".

- The "wine" format is the one used by Wine. It can be used when trying
  to diff-compare traces for a module with the corresponding one
  obtained from a Wine run. It can also be useful because the logging of
  Wine-synced code assumes that the function names are automatically
  added by the helper macros "FIXME()", "TRACE()", "WARN()" or "ERR()",
  and not manually inside the logging string given to these macros:
  for example:

    FIXME("(%params) message\n", params);

  displays:

    fixme:<module>:SomeFunc(params) message

- The "extended" (or "ext") format is very noisy and tries to output a
  lot of information; it is a hybrid of the previous two formats:

    <debug_class>:(<file>:<line>):<channel>:SomeFunc <message>

Support for displaying the current process ID is added in
addition to the already existing support for thread ID.
2018-08-30 22:42:50 +02:00
David Quintana
823552d778 [CMAKE] Update baseaddress files to match latest changes. 2018-08-30 03:45:40 +02:00
David Quintana
ae11022712 [MC] Fix VS2017 build. 2018-08-30 00:27:55 +02:00
Pierre Schweitzer
a2f9762020
[SDK] Fix the implementation of the FsRtlIsAnsiCharacter* macros.
These macros should be implemented using the FsRtlTestAnsiCharacter() macro
that performs extended tests, especially for buffer overruns.
This fixes FsRtlIsAnsiCharacterWild(), FsRtlIsAnsiCharacterLegalFat(),
FsRtlIsAnsiCharacterLegalHpfs(), FsRtlIsAnsiCharacterLegalNtfs().

CORE-14067
2018-08-29 08:34:30 +02:00
Katayama Hirofumi MZ
0a8ade5dd4
[SDK][CRT] Fix _ismbblead undefined error on MSVC 2018-08-27 11:09:28 +02:00
Hermès Bélusca-Maïto
b277cbdf22
[CONUTILS] In ConWrite(), emit an \r when a \n is encountered but not already preceded by \r.
And, don't emit \r\n when an \r alone is encountered.
This fixes the problem of extra newlines appearing when redirecting
"more" output to a file.

CORE-14592
2018-08-23 17:04:53 +02:00
Joachim Henze
78b6e43d22 [SDK] "0.4.11-dev" Starts here.
tag will be added in next commit.
2018-08-23 01:22:43 +02:00
Jake Collins
72827bc514 [MODERN.MSSTYLES] Add the initial version of the modern theme.
CORE-13020
2018-08-20 15:06:53 +02:00
Timo Kreuzer
279d179ac4
[TRANSLATION] Polish translation of errcodes.mc (0-499) (#777) 2018-08-19 22:46:51 +02:00
Hermès Bélusca-Maïto
fd39f92fcb
[INCLUDE][WINLOGON] Rename the STARTF_SCRNSAVER flag to STARTF_SCREENSAVER,
as documented in "Advanced Windows NT" by Jeffrey M. Richter (Microsoft Press),
and in https://is.muni.cz/el/1433/jaro2010/PB167/um/cv5/undocumented_CreateProcess.pdf .

[INCLUDE][SERVICES][WIN32K:NTUSER] Add an undocumented STARTF_INHERITDESKTOP flag
for the STARTUPINFO::dwFlags structure member, whose purpose is to tell Win32k
that the created handles to the window station and desktop to which the
process is connecting to, can be inherited by its child processes.
It is used when starting interactive services.
Observed via API monitoring on Windows 2003.
2018-08-19 22:18:40 +02:00
Andrew Cook
8cd5c4e7bd CORE-14513 [CMAKE] Remove modules that are shipped with cmake (#575)
* Remove unused cmake modules - Both are unedited versions of modules provided by cmake itself
* Remove Compiler/GNU.cmake - Only chang was various _INIT flags, which are handled
via CMAKE_USER_MAKE_RULES_OVERRIDE instead
* Remove Platform/Windows.cmake - There's no clear explination for this file being in reactos
and is simply an old version of the one in cmake
* Remove Platform/Windows-MSVC.cmake - _INIT variable changes moved to overrides-msvc.cmake
Remove /implib from link commands
* Remove CMakeDetermineASMCompiler.cmake - Only change from 3.2 is the addition of a compiler list for the generic ASM dialect, but toolchain files explicitly set a compiler so the list is never used
2018-08-19 22:01:31 +02:00
Paweł Cholewa
8569c905ca [SDK][Translation] Polish translation update (#495)
* Polish translation update in neteventmsg.mc
2018-08-19 19:47:26 +02:00
Serge Gautherie
8283a9ece2 [LOG2LINES] Enforce "Iso" type when unpacking the Iso file
Work around some "7z" dealing with files not named "*.iso" as "Cab" type.
Issue at least with "7-Zip [64]  9.20" on "Ubuntu 16.04".

CORE-14734
2018-08-19 17:39:15 +02:00
Mark Jansen
69893ccf38 [ATL] Improve the order of operations in CComPtr and CComQIIDPtr 2018-08-19 17:35:18 +02:00
Mark Jansen
cf56e1cb58 [GDIPLUS] Add sxs registration for 1.0 version.
Needed by by some applications with MSVCR90.dll
CORE-14695
2018-08-18 18:25:13 +02:00
Timo Kreuzer
2c909db295 [NTOS:OB] Rename object types to their official names to satisfy WinDbg
- Rename ObDirectoryType to ObpDirectoryObjectType and remove it from NDK (this is not exported!)
- Rename ObSymbolicLinkType to ObpSymbolicLinkObjectType
- Remove duplicated ObpTypeObjectType from ob.h
2018-08-17 20:28:45 +02:00
Hermès Bélusca-Maïto
ed1de7184c
[SDK][UNDOCUSER] Add undocumented user32.dll SoftModalMessageBox() definition and its structure MSGBOXDATA.
Documented on http://www.vbforums.com/showthread.php?840593-Message-Box-with-Four-Buttons
and augmented from my own testings.

In addition, add also MessageBoxTimeoutA/W() and MB_GetString().
2018-08-17 17:12:20 +02:00
Hermès Bélusca-Maïto
7bfd6858fb
[PSDK] Add IDCANCEL and IDASYNC values (returned by MessageBoxTimeout() and WTSSendMessage() functions). 2018-08-17 17:12:19 +02:00
Mike Swanson
3c7e9bb332 Remove unnecessary executable bits 2018-08-15 18:29:09 +02:00
Mark Jansen
9b6fb9f2f8
[RTL][KERNEL32] Add a comment indicating we need SEH in RtlImageNtHeaderEx
CORE-14532
CORE-14857
2018-08-13 13:24:12 +02:00
Eric Kohl
9d26058a8e [UMPNPMGR] Partially implement ReenumerateDeviceInstance which is needed by the Lenovo T400 network driver installer 2018-08-12 22:26:22 +02:00
Eric Kohl
956086d369 [NETAPI32] Add DFS RPC interface and some DFS stubs 2018-08-12 14:31:07 +02:00
Stanislav Motylkov
4259aab7b0 [SDK] Add user-mode DMI/SMBIOS helper library
CORE-5961
2018-08-12 14:21:56 +02:00
Serge Gautherie
7d6bda16c6
[REACTOS] Improve how some ASSERTMSG() message values are printed: enforce ending "\n".
NB: Not touching calls in "third-party" code: class and classpnp.
2018-08-08 22:03:45 +02:00
Serge Gautherie
fb48381cb4
[CMLIB] Simplify an ASSERTMSG() as an ASSERT(). 2018-08-08 21:45:46 +02:00
Serge Gautherie
97d3b3ce33
[REACTOS] RtlAssert(): use "%lu" as LineNumber format. 2018-08-08 21:24:07 +02:00
Eric Kohl
0a5ccac599 [SRVSVC] Set and retrieve service bits and rename unknown functions
- Service bits are set by NetrServerSetServiceBits and can be retrieved by NetrServerGetInfo.
- The real name of function 42 is NetrServerSetServiceBitsEx and the real name of function 47 is NetrDfsSetServerInfo.
2018-08-05 15:05:19 +02:00
Katayama Hirofumi MZ
bfcbda227f [SHELL32] Fix handling of multiple parameters in the 'Run' dialog (#665)
The "Run" dialog failed when multiple parameters wee specified.
We use instead a newly-created ShellExecCmdLine() helper function to fix the problem (as found via API-tracing on Windows).
Note that ShellExecCmdLine() starts to be exported with Vista+.

- Implement ShellExecCmdLine() function in shell32.
- Add URL support.
- Fix RunDlgProc function in shell32.
- Add a testcase for ShellExecCmdLine() function.

CORE-14790
2018-08-05 13:39:17 +02:00
Mark Jansen
09719d25c4
[ATL] Fix the CComQIIDPtr template. 2018-08-05 11:54:56 +02:00
Eric Kohl
620217cec9 [LSASRV][SECUR32] Implement LsaRegisterPolicyChangeNotification and LsaUnregisterPolicyChangeNotification 2018-08-04 22:17:52 +02:00
Timo Kreuzer
cf77354dce [REACTOS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Timo Kreuzer
6f13066647 [APPLICATIONS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Timo Kreuzer
9e066abe2a [DRIVERS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Timo Kreuzer
c1944118ca [USBPORT] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Stanislav Motylkov
0854c69a75 [I8042PRT] Move DMI/SMBIOS parsing functions into library 2018-08-02 21:29:57 +02:00
Mark Jansen
370ffd1123
[XDK][NDK] Restore struct alignment for IO_STACK_LOCATION
CORE-14782
2018-07-25 20:22:36 +02:00
Hermès Bélusca-Maïto
b1c7fd08e9
[PSDK] Fix a typo. Has also been caught independently by George Bișoc (#686). 2018-07-17 01:59:51 +02:00
Victor Perevertkin
2ae1675208 [ASM] Fixed ".double" macro in asm.inc.
GAS uses ".double" symbol for declaring floating-point constants and
".quad" symbol for declaring 64-bit numbers.
This is not compatible with our macro for MASM and introduces bugs.
Now 64-bit constants are supposed to be declared using ".quad" macro.
2018-07-15 23:25:23 +02:00
Eric Kohl
4ffa0a2e55 [NTOSKRNL][NDK][UMPNPMGR] Define and use PLUGPLAY_CONTROL_PROPERTY_DATA.Properties values
NDK: Define PLUGPLAY_CONTROL_PROPERTY_DATA.Properties and PLUGPLAY_CONTROL_DEVICE_RELATIONS_DATA.Relations values.

NTOSKRNL: Map PLUGPLAY_CONTROL_PROPERTY_DATA.Properties values to IoGetDeviceProperty properties and add (dummy) code for unsupported cases.

UMPNPMGR: Use PLUGPLAY_CONTROL_PROPERTY_DATA.Properties values in PNP_GetDeviceRegProp.
2018-07-15 15:57:57 +02:00
Timo Kreuzer
82b2aef091 [PSDK] Add SymTagENum to dbghelp.h and imagehlp.h 2018-07-14 15:48:23 +02:00
Katayama Hirofumi MZ
75b09f3f88 [EXPLORER][SHELL32][USER32] Implement 'Show the Desktop' action of Task Bar (#668)
The keyboard shortcuts Win+D and Win+M are also enabled.

- Implement IShellDispatch4::ToggleDesktop().
- Implement some commands in CTrayWindow.
- Add "sdk/include/reactos/traycmd.h" for tray commands.
- Fix task window switching.
- Improve the user32!SwitchToThisWindow() function and use it.

CORE-14318, CORE-13157
See also: CORE-14806 and CORE-8723
2018-07-13 10:34:42 +02:00
Mark Jansen
80bac79070
[CMAKE] Update all base addresses, taking into account the reserved user32 address from CORE-12752
CORE-11382
2018-07-12 21:55:21 +02:00
Mark Jansen
6b92dd7323
[SDK] Update gen_baseaddress.py for reserved base addresses.
CORE-11382
2018-07-12 21:55:21 +02:00
Katayama Hirofumi MZ
a882ec7a02 [SHELL32][EXPLORER] Update system-wide environment variables (#663)
- Implement shell32 RegenerateUserEnvironment() function and use it.
- CShellBrowser and CDesktopBrowser implements WM_SETTINGCHANGE actions.

CORE-1459, CORE-14397
2018-07-08 16:32:42 +02:00
Mark Jansen
5a9dc5e791
[SDK] Add gen_baseaddress.py
This tool was already used to calculate the last baseaddress update.
It is based on baseaddress.sh that has been floating around.
CORE-11382
2018-07-01 20:17:46 +02:00
Mark Jansen
a3ddb8a4c2
[CMAKE] Change winspool.drv to winspool again.
CORE-14781
2018-07-01 19:21:59 +02:00
Mark Jansen
8fb0c5a0ab
[CMAKE] Update baseaddress for gcc with dwarf.
CORE-14781
2018-07-01 18:21:12 +02:00
Mark Jansen
82351bc6d4
[CMAKE] Update baseaddress for msvc & gcc with rossym.
CORE-14781
2018-07-01 15:35:57 +02:00
Timo Kreuzer
e39876dab7 [SDK] Fix 64 bit issues 2018-07-01 14:45:21 +02:00
Timo Kreuzer
ae9e9eaef3 [NDK] Fix definition of MSR_DEBUG_CTL_LBR and MSR_DEBUG_CTL_BTF 2018-07-01 14:45:21 +02:00
Timo Kreuzer
3b78272d39 [NDK] Fix alignment macros and add missing ones
Remove obsolete ALIGN_UP_BY macro definition
2018-07-01 14:45:21 +02:00
Timo Kreuzer
ca9fd861aa [DRIVERS][NTOS][NDK] Use IO_STACK_LOCATION instead of EXTENDED_IO_STACK_LOCATION and remove the latter from NDK 2018-07-01 14:45:21 +02:00
Timo Kreuzer
8719252e48 [XDK][NDK] Fix IO_STACK_LOCATION alignments
* Also add missing DIRECTORY_NOTIFY_INFORMATION_CLASS
2018-07-01 14:45:21 +02:00
Timo Kreuzer
03c86af7d5 [XDK] Stop randomly packing structures half throughout ntifs.h / wdm.h
Nothing in there should be packed!
2018-07-01 14:45:21 +02:00
Timo Kreuzer
de1b195837 [NDK] Fix the type of KPROCESS::ActiveProcessors
Also fix related logic in KiSwapProcess
2018-07-01 14:45:21 +02:00
Timo Kreuzer
158812409d [NDK] Update x64 version of KEXCEPTION_FRAME 2018-07-01 14:45:21 +02:00
Timo Kreuzer
a262e8da2d [LIBUSB] Add additional operator new/delete
This is required, since newer versions of MSVC demand that non-member operator new/delete are in the global namespace and neither static nor inline. See https://msdn.microsoft.com/en-us/library/mt723604.aspx ("Overloaded operator new and operator delete")
2018-07-01 14:45:21 +02:00
Timo Kreuzer
03830f67a7 [CMAKE] winspool.drv -> winspool in baseaddress_msvc.cmake 2018-07-01 14:45:21 +02:00
Timo Kreuzer
c73c4f0cb3 [MC] Fix build of message text files for latest VS version
* Latest VS does not like half translated files :/
* errcodes.mc is duplicated in kernel32
* It would probably be better to separate each language into it's own file, but we need a build mechanism for that
2018-06-30 21:21:36 +02:00
Timo Kreuzer
79ad68ddc3 [CMAKE] Zap builddir.h.cmake and instead define macros globally
This changes __RELFILE__ to always be relative and not rely on a GCC extension, since __FILE__ is *always* relative to the root.
2018-06-30 13:26:56 +02:00
Serge Gautherie
3766d836c7 [DBGHELP] Fix 3 MSVC warnings about MiniDumpWriteDump() (#643)
- Fixes MSVC errors: "...\dll\win32\dbghelp\minidump.c(857) : error C4028: formal parameter 5 different from declaration", for parameters 5, 6 and 7.
- Fix spec file too.
CORE-7538
2018-06-28 17:44:49 +02:00
Hermès Bélusca-Maïto
4d494caf61
[NTOS:SE] Overhaul the token management code.
- Overhaul SepCreateToken() and SepDuplicateToken() so that they
  implement the "variable information area" of the token, where
  immutable lists of user & groups and privileges reside, and the
  "dynamic information area" (allocated separately in paged pool),
  where mutable data such as the token's default DACL is stored.
  Perform the necessary adaptations in SepDeleteToken() and in
  NtSetInformationToken().

- Actually dereference the token's logon session, when needed, in the
  'TokenSessionReference' case in NtSetInformationToken().

- Overhaul SepFindPrimaryGroupAndDefaultOwner() so that it returns
  the indices of candidate primary group and default owner within the
  token's user & groups array. This allows for fixing the 'TokenOwner'
  and 'TokenPrimaryGroup' cases of NtSetInformationToken(), since the
  owner or primary group being set *MUST* already exist in the token's
  user & groups array (as a by-product, memory corruptions that existed
  before due to the broken way of setting these properties disappear too).

- Lock tokens every time operations are performed on them (NOTE: we
  still use a global token lock!).

- Touch the ModifiedId LUID member of tokens everytime a write operation
  (property change, etc...) is made on them.

- Fix some group attributes in the SYSTEM process token, SepCreateSystemProcessToken().

- Make the SeCreateTokenPrivilege mandatory when calling NtCreateToken().

- Update the token pool tags.

- Explicitly use the Ex*ResourceLite() versions of the locking functions
  in the token locking macros.
2018-06-27 23:40:18 +02:00