Commit graph

65 commits

Author SHA1 Message Date
Thomas Faber 053510467f
[NDK] RtlFindCharInUnicodeString is only available in user mode. 2019-12-31 15:17:53 +01:00
Hermès Bélusca-Maïto 28b77a40ca
[NDK][NTOS:INBV] Remove non-exported INBV functions from NDK; do some cleanup in INBV headers; label both InbvSetProgressBarSubset() and InbvSetProgressBarCoordinates() as INIT_FUNCTION since they are used only for the boot splash. And fix MSVC build. 2019-11-25 15:54:45 +01:00
Hermès Bélusca-Maïto 04c8ed493d
[NDK] Addendum to 592f01a5, fix build. 2019-11-25 02:28:08 +01:00
Hermès Bélusca-Maïto 54c03f6965
[NTOS:KD64] Some code formatting + add SAL2 annotations to the functions that are going to be involved in the next commit.
+ s/ReturnStatus/Status/ , and get rid of Win32 LPSTR and replace by
  PCHAR (since the concerned code deals with counted strings).
2019-11-17 23:21:53 +01:00
Hermès Bélusca-Maïto 6c1aac6948
[NTOS] Complete the support of Debug Filters. CORE-13529
- KD64: Update the list of supported Debug Filter Masks (KdComponentTable)
  with the more up-to-date one from KDBG, that includes some components
  that have been added in Vista+, but some of which we also use in ReactOS.

- NtQueryDebugFilterState(), NtSetDebugFilterState() and KdpPrint():
  Add the Vista+ behaviour or falling back to the DEFAULT component ID
  settings for unknown Components (compiled in only wheen NTDDI_VERSION >= NTDDI_VISTA).
  + Remove redundant comments and update these functions with SAL2 annotations.

- KDBG: Add extra documentation for the debug filter components list.

- CONFIG: Load all the supported Debug Filter Masks settings from the
  registry.
2019-11-17 23:21:53 +01:00
Eric Kohl 13bb5e2317 [umpnpmgr][ndk] Implement PNP_RequestDeviceEject() and update unknown type in PLUGPLAY_CONTROL_QUERY_REMOVE_DATA 2019-10-15 22:40:06 +02:00
Mark Harmstone 43a8d871bf
[FREELDR] Set LDRP_IMAGE_INTEGRITY_FORCED if necessary. (Part of PR #1905)
+ Add extra information.
Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2019-10-14 00:49:00 +02:00
Eric Kohl e83b256f65 [NDK] Fix coding style and indentation. No code changes! 2019-10-13 23:50:22 +02:00
Hermès Bélusca-Maïto 7d5577c21e
[SDK][NDK] Add two missing documented GDT selector names.
Add KGDT_NULL and KGDT_VDM_TILE to the list of known GDT name defines.
See https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/dg--display-selector-
2019-10-13 19:57:54 +02:00
Eric Kohl 7633ebcfde [NDK] Add PLUGPLAY_CONTROL_QUERY_REMOVE_DATA type 2019-10-13 15:25:47 +02:00
Pierre Schweitzer 8c7b84bb5c
[SDK] Define RtlGetNativeSystemInformation() 2019-10-02 10:50:59 +02:00
Pierre Schweitzer 3f63f236ba
[SDK] Make our MEMORY_SECTION_NAME definitions consistent.
I choose the definition which is also used by Wine & Chromium.

CORE-12043
2019-09-29 14:18:11 +02:00
Mark Jansen 8a86264f14
[NDK][ARM] Stub a few required types for bootlib 2019-08-20 22:28:11 +02:00
Mark Jansen b5dc79c963
[CMAKE] Some arm cmake fixes 2019-08-20 22:27:59 +02:00
Timo Kreuzer f18958ffa2 [NDK] Add BIOS call API for amd64 2019-08-15 14:13:54 +02:00
Andrew Boyarshin b607e0119f [NTOSKRNL][PS] Implement NtQueueApcThreadEx and use it in NtQueueApcThread
Actually rename NtQueueApcThread to NtQueueApcThreadEx and ignore one additional parameter for now.
2019-08-15 12:32:09 +02:00
Hermès Bélusca-Maïto bdb60afc86
[NDK] Use the correct __REACTOS__ define. 2019-07-29 00:33:19 +02:00
Pierre Schweitzer 522821bb8b [SDK] Add RtlInitString to the NDK 2019-06-30 23:07:54 +02:00
Thomas Faber 6cde208c6b [SDK] Properly define ZwQueryInformationProcess 2019-06-30 23:07:54 +02:00
Eric Kohl 6866c0aede [NTOSKRNL][USETUP][UMPNPMGR] Pass user response data to NtPlugPlayControl(PlugPlayControlUserResponse).
- Windows requires 16 bytes of response data.
- Add the PLUGPLAY_CONTROL_USER_RESPONSE_DATA type.
- Usetup and Umpnpmgr must fail if NtPlugPlayControl(PlugPlayControlUserResponse) does not return STATUS_SUCCESS.
2019-06-12 13:48:27 +02:00
woachk 8e048b8ae9 [NDK/TESTS] The world isn't only amd64 or i386 (#1596) 2019-06-02 00:39:57 +02:00
Mark Jansen 6abe0e50aa
[SDK][SHIMENG] Ensure that module entrypoints are not called while loading the shim engine
This is done by marking everything that is already loaded but not 'processed'.
After the shim engine is done initializing, the original state is restored,
with the exception of the shim engine itself.
CORE-15846
2019-03-14 20:02:01 +01:00
Serge Gautherie 6accaef3c7 [NDK] Fix 'DeletedChidren' typo (#1367)
On behalf of Vadim Galyant.
CORE-15769
2019-02-20 22:16:16 +01:00
Timo Kreuzer 68abf035c6 [NDK] Fix INIT_SECTION for Clang (use the GCC definition) 2019-02-12 19:31:33 +01:00
Mark Jansen e1aae1c620
[RTL] Implement RtlComputePrivatizedDllName_U 2019-02-07 18:48:49 +01:00
Timo Kreuzer 71fefa32db
[NDK][NTOS] Add global definition of INIT_FUNCTION/INIT_SECTION (#779)
* Add an NDK header to define INIT_FUNCTION/INIT_SECTION globally
* Use _declspec(allocate(x)) and _declspec(code_seg(x)) on MSVC versions that support it
* Use INIT_FUNCTION on functions only and INIT_SECTION on data only (required by MSVC)
* Place INIT_FUNCTION before the return type (required by MSVC)
* Make sure declarations and implementations share the same modifiers (required by MSVC)
* Add a global linker option to suppress warnings about defined but unused INIT section
* Merge INIT section into .text in freeldr
2018-12-30 12:19:11 +01:00
Serge Gautherie c34fa1e389 [SDK][NDK] Move SYSTEM_POWER_INFORMATION to ntpoapi.h (#869)
As suggested by Thomas Faber. See CORE-12587 for more details.
2018-12-05 13:48:01 +01:00
Andrew Boyarshin 8c710dc518 [SDK] Allow use of SYSTEM_MEMORY_LIST_INFORMATION in kernel code 2018-11-30 10:21:12 +01:00
Mark Jansen 06eb99edef
[NTDLL][KERNEL32] Implement FLS callbacks. 2018-09-15 17:56:03 +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
Mike Swanson 3c7e9bb332 Remove unnecessary executable bits 2018-08-15 18:29:09 +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 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 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 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
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
Hermès Bélusca-Maïto a3376cd50d
[NDK] Update NtCreateToken() prototype annotations. 2018-06-27 23:40:17 +02:00
Eric Kohl 4911382913 [NDK] Replace the SYSTEMTIME fields StandardDate and DaylightDate in RTL_TIME_ZONE_INFORMATION by TIME_FIELDs and fix resulting errors
Patch will be sent upstream.

CORE-14658
2018-05-31 17:48:29 +02:00
Pierre Schweitzer 69a7879e81
[SDK] Add more types for job objects information 2018-05-25 08:48:51 +02:00
Pierre Schweitzer fb9ffed1cd
[SDK] Add a few types for job objects information 2018-05-25 08:48:51 +02:00
Mark Jansen 5a68fbeb43
[SDK] Correct NtGlobalFlag names. 2018-05-12 13:34:24 +02:00
Hermès Bélusca-Maïto e6d7ed7080
[NDK] Increase MAXIMUM_HARDERROR_PARAMETERS for Win2k3 compatibility. 2018-04-07 18:48:00 +02:00
Thomas Faber 56e2bf2f92
[NTOS:CC] Avoid some magic numbers. 2018-02-22 14:03:03 +01:00
Denis Malikov 420c0360ac
[SDK] Fix NT6 building issues and improve SDK NT6 headers.
CORE-12596
2018-02-10 18:58:35 +01:00
Pierre Schweitzer c5139563db
[NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc!
This halfplements CcScheduleReadAhead() which is responsible for finding the next reads
to perform given last read and previous reads. I made it very basic for now, at least
to test the whole process.
This also introduces the CcExpressWorkQueue in the lazy writer which is responsible
for dealing with read ahead items and which is dealt with before the regular queue.
In CcCopyData(), if read was fine, schedule read ahead so that it can happen in background
without the FSD to notice it! Also, update the read history so that scheduling as a
bit of data.
Implement (à la "old Cc" ;-)) CcPerformReadAhead() which is responsible for performing
the read. It's only to be called by the worker thread.

Side note on the modifications done in CcRosReleaseFileCache(). Private cache map
is tied to a handle. If it goes away, private cache map gets deleted. Read ahead
can run after the handle was closed (and thus, private cache map deleted), so
it is mandatory to always lock the master lock before accessing the structure in
read ahead or before deleting it in CcRosReleaseFileCache(). Otherwise, you'll
just break everything. You've been warned!

This commit also partly reverts f8b5d27.

CORE-14312
2018-02-09 10:14:11 +01:00