Commit graph

682 commits

Author SHA1 Message Date
Vadim Galyant ac843d7b82
[NTOS:MM] Make the definitions and macros for x86 more human-readable. (#2487)
- Move also PDE_MAPPED_VA definition from common miarm.h to ..arch/mm.h.
- Add assert "PAE not yet implemented".
2020-04-04 14:26:15 +02:00
Vadim Galyant b78cb36d91
[NTOS:MM] Using the macro MiIsPteOnPdeBoundary(). (#2496)
The SYSTEM_PD_SIZE constant should not be used to determine the page boundary for page tables. It is better to use the portable MiIsPteOnPdeBoundary() macro for this.
2020-04-02 12:15:33 +02:00
Hervé Poussineau 76a41370d0 [NTOS:KD] Move dump of stack trace on crash to debugger
Release builds now show again the bugcheck screen, instead of freezing.
2020-03-30 15:23:34 +02:00
Hervé Poussineau fd8cacae4c [NTOS:KE] Remove dead code 2020-03-30 15:23:25 +02:00
Hervé Poussineau 8b6e441a6e [NTOS:KD] Fix compilation with CMAKE_BUILD_TYPE=Release
This was broken by commit a890fc64d1
2020-03-30 15:23:25 +02:00
Hervé Poussineau 38e53eea4f [NTOS:KD] Fix compilation with CMAKE_BUILD_TYPE=Release
This was broken by commit f7ec84eea0
2020-03-30 15:23:25 +02:00
Jérôme Gardou 0b5033e2ff [NTOSKRNL] Fix build 2020-03-30 07:36:30 +00:00
Mark Jansen 177ae91bf6
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
2020-03-29 21:27:38 +02:00
Victor Perevertkin 99f9c1666d
[NTOS:MM] Make _X86PAE_ the only define for PAE-enabled kernel 2020-03-28 18:11:42 +03:00
Eric Kohl 93e72ed3d6 [NTOS:IO] Fix indentation. No code changes! 2020-03-21 14:32:18 +01:00
Eric Kohl 52d22630f5 [NTOS:PNP] Fix indentation. No code changes! 2020-03-21 13:23:23 +01:00
Eric Kohl a8846037e1 [NTOS:PNP] Map device capabilities to capability flags
This fixes a devices Capabilities value in the registry.
2020-03-21 13:23:22 +01:00
Thomas Faber 72c51aabba
[NTOS:IO][GDI32][CMD] Fix some under-sized variables. CORE-14922
Fixes x64 boot with RTC.
2020-03-13 20:45:06 +01:00
Dmitry Borisov 222e79232c
[CPORTLIB][NTOS:INBV][KDCOM][FREELDR] Add ComPort library for NEC PC-98 series (#2407)
There are 2 known serial ports:
    COM1 - based on Intel 8251A
    COM2 - National Semiconductor 16550
2020-03-06 19:50:31 +01:00
Thomas Faber 6831468ccf
[NTOS:MM] Assert PFN lock ownership in MiInsertPageInFreeList.
AMD64 initialization previously only raised the IRQL.
It now acquires the lock where needed, as i386 does.
2020-03-02 20:50:54 +01:00
Eric Kohl 7a7212f984 [NTOS:IO] Fix indentation. No code changes! 2020-03-01 23:34:30 +01:00
Eric Kohl 9a07cde37f [NTOS:IO] Improve the device action worker
- Improve the device action worker to support more than just a single action
- Move the action queue code from IoInvalidateDeviceRelations to a new function IopQueueDeviceAction.
2020-03-01 23:32:25 +01:00
Eric Kohl a05051f554 [NTOS:IO] Move IopRemovePlugPlayEvent around and add the ResponseData parameter (not used yet) 2020-02-29 14:26:16 +01:00
Eric Kohl 482eb909fe [NTOS:CONFIG] Fix NtSetValueKey data probing
Probe the data before allocating a copy buffer. Otherwise NtSetValueKey returns an unexpected status code in case of too large data size.

This fixes the NtSetValueKey ntdll api tests.
2020-02-23 21:35:57 +01:00
Serge Gautherie 1a83762ccc [REACTOS] Fix '\n.' typos 2020-02-23 12:35:50 +01:00
Thomas Faber 754e175d12
[NTOS:MM] Use MI_ZERO_PTES as the number of usable zeroing PTEs, not the total allocated. CORE-11856
We'll now have 32 usable zeroing PTEs instead of 31.
MP kernels will (some day) zero up to 32 pages at a time.
2020-02-22 12:33:54 +01:00
Thomas Faber 5e891f727f
[NTOS:WMI] WMIP_GUID_OBJECT must start with an event object, as it is waitable.
The initializer for WmipGuidObjectType does not set UseDefaultObject,
and it's possible for user mode to obtain a handle to a GUID object
with SYNCHRONIZE access. Therefore that handle can be passed to
NtWaitForSingleObject, which means it must start with a DISPATCHER_HEADER.
2020-02-15 20:43:26 +01:00
Thomas Faber feb7275bc8
[NTOS:MM] Use POOL_BILLED_PROCESS_INVALID constant. 2020-02-08 13:00:32 +01:00
Serge Gautherie 2c6747aff0
[NTOS:MM] Stop using PD_COUNT, PDE_COUNT and PTE_COUNT (#2294)
Directly use PPE_PER_PAGE, PDE_PER_PAGE, PTE_PER_PAGE constants from hardware-specific MM headers instead
2020-02-05 23:48:26 +01:00
Hervé Poussineau 8314c8eeba [NTOS] Move FORCEINLINE specifier where appropriate 2020-01-22 20:57:01 +01:00
Thomas Faber 07de9d1da3
[NTOS:KE] In KiExitV86Mode, restore KTSS::Esp0 to its standard value. CORE-16531
The trap frame is in a random location on the stack, and setting Esp0 there
wastes significant amounts of space and may lead to unexpected stack overflows.

Also use a more descriptive expression for the V86 members of the KTRAP_FRAME.
2020-01-03 11:28:09 +01:00
Eric Kohl 9538c3ccd7 [NTOS:IO] Fix indentation. No code changes! 2020-01-02 23:25:26 +01:00
Hermès Bélusca-Maïto 9ba5594599
Happy New Year 2020 to everyone!!
🎊 🎆 🍾 🥳

.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:.
   __,  ,__)            __,  ,__)       __, ,__)        ░░▄████▄░▄███▄░▄████▄░▄███▄░░
  (--|__| _ ,_ ,_      (--|\ | _       (--\ | _  _ ,_   ░░▀▀░▄██░██░██░▀▀░▄██░██░██░░
    _|  |(_||_)|_)(_|    _| \|(/_(_|_)     \|(/_(_||    ░░░▄██▀░░██░██░░▄██▀░░██░██░░
   (        |  |  ,_|   (                (__|           ░░██████░▀███▀░██████░▀███▀░░
.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:.

   ███████████████████████████████████████████████████████████████████████████████
   ██████████████████▓▒▒▒▒▒▒▓▓█████████████████████████▓▓▒▒▒▒▒▒▓██████████████████
   ███████████████▒▒▒▒▓▓███▓▓▓▒▒░▒▓▓█████████████▓▒▒░▒▒▓▓████▓▓▒▒▒▓███████████████
   █████████████▓░░░░░░░░░▒▒▓██████▓▒▒▒▓█████▓▒▒▒▓██████▓▒▒░░░░░░░░░▓█████████████
   ███████████▒▓░▒█████████▓▓▒░▒▓███▓▓▓▓▓▓▓▓▓▓▓▓████▒▒▒▒▓▓████████▓▒░▓▓███████████
   ██████████▒▒▓░▓██████████████▓▓▓▓▓█████▓▓▓▓▓▓▓▓▒▒███████████████▓░▓░▒██████████
   █████████▓░▓█░▓██████████▓▒▒▒▒▓▓▓▓███████▓▓▓▓▓▓▓▓▓▒▒▓███████████▓░█▒░▓█████████
   █████████▓▒██▒▒████████▒▒░░░░▒▒▓▓▓███████▓▓▓▓▓▓▓▓▓▓▓▒▒░█████████▒▒█▓▒▒█████████
   █████████▓░██▓░▓█████▓▓▒▒░░░░▒▒▓▓▓▓████▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▒░░▓█████▓░▓█▓░▓█████████
   ██████████░▓██▒▒▓██▓▓▓▓▓▒▒▒▒▒▒▓▓▓▓██████▓▓▓▓▓▓▒▒▒▒▒▓▓▓▓▒▒░░███▓░▒██▒░██████████
   ██████████▒▒▓██▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█████████▓▓▓▒▒▒▒▒▒▒▒▒▓▒▒▒▒░░▓█▒▒██▓░▓██████████
   ███████████▒▒███▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓████▓▓▓▓▓▓▒▒░▒▒▒▒▒▒▒▒▒░░░▒███▒▓███████████
   ████████████▒▒█▓▓▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░░▒▒░░░▒▒▒░░░▓██▒▒████████████
   █████████████▒▒▒▒▒▒░▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▒▒░░░░░░░░░░░░░▒▒▒▓▒▒█████████████
   ██████████████░░▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒░░░░░░░░░▒░░▒░▒██████████████
   ██████████████▓▒░▒▒▒▒▒░░▒▒░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░▓███████████████
   ██████████████▓▒▓░░▒▒▒▒░░░░░░░░░░░░░░░░░▒▒▒▒▒▒░░░░░░░░░░▒░░░░░▓▒▓▓█████████████
   ███████████▓▒▓▓▓▒▒░░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░░░░░▒▒▒█▒▒▓███████████
   ██████████▓▒▒█▓▓▒▒░▒░░░░░▒░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░░░░▓▒▒▒▒██▒▒▓██████████
   █████████▓▒▓██▓▒▒▒▒░░▒░░░░░▒░░░░░░░░░░░░░░░░░░░░░░░▒░░░░░▒▒▒▒▒▒▓███▓▒▓█████████
   ████████▓▒▓███▓▒▒▒▒░░░▒░░░░░░▒░░░░░░░░░░░░░░░░░░░▓▒▒▒▒░▒▓▒▒▓▓▒▒▓▒▓██▓▒▓████████
   ███████▓▒▓███▒▓▓▒▒▒░░░░░▒░░░░░░▒░░░░░░░░░░░░░░░▓▒▒▒▒░▒▓▒▓▓▓▓▒▒██▓▒▓██▓▒████████
   ███████▒▒██▓▒▓█▓▓▒▒░░░░░░░▒░░░░░░▒░░░░░░░░░░░▓▒▒▒▒░▒▓▒▒▒▓▓▓▒▒▓███▓▒███▒▓███████
   ██████▓▒▓██▒▒███▓▒▒▒░░░░░░░░▒▒░░░░░▒▒░░░░░░░░▒▒░░▒▓▓▓▓▒▒▒▒▒▒▓█████▒▒██▓░▓██████
   ██████▒▒██▒▒█████▓▒▒▒░░░░░░░░░▒░░░░░░░▒░░░░▒▒░░▒▓▒▒▒▒▒▒▒▒▒▒████████▒▒██▒▒██████
   ██████▒▓██░▓██████▓▓▒▒▒░░░░░░░░░░▒░░░░░░░▒░░░░▒▒▒▒▒▒▒▓▓▒▒██████████▒░██▒▒██████
   ██████▒▒▓▓▒█████████▓▓▒▒▒░░░░░░░░░░▒▒░░░░▒▒▒▓░░░▒▒▒▒▒▓▓████████████▓▒▓▓░▒██████
   ██████▓░▒▒▒███████████▓▓▒▒░░░░▒▒▒░▒░▒▒▒▒░░▒▒▒▒▒▓▒░░▒▒██████████████▓░▒▒▒███████
   ███████▓▒░░▒█████████▓▒▒░░▒▓▓▒▒▒░░░░▒▒▒▓▒▓▒░░▒▒▓▓██▓▓▒░▒▒▓█████████▒░░▒████████
   ██████████▒░░░░░░░▒▒▓▓█████▓▓▒░░▒▓██▓▓████████▒░▒▒▓██████▓▓▒▒░░░░░░░▒██████████
   ███████████▓▒▒▒▓▓████▓▓▒▒▒░▒▒█████████████████████▒▒░▒▒▓▓▓███▓▓▒▒▒▒████████████
   ████████████████▓▓▓▓▓▓███████████████████████████████████▓▓▓▓▓▓████████████████
   ███████████████████████████████████████████████████████████████████████████████
   ███████████████████████████████████████████████████████████████████████████████
   ██████████████████████████████████████████████████████████▓░░▓████████░░░▓█████
   ███▒░░░░▒▓███████████████████████████████████████▒█████▓▒▒▓██▓▒▒▓████▓░█▓░▓████
   ███▒█████░▒███▓▒▒▒▒▒▓████▓▒▒▒▒▒▓█▓███▓▒▒▒▒▒▒▓██▓▒░▒▒▓▒▓█████████▓▒██▓▒█████████
   ███▒█████░▒█▓▒▒█████▒▒██▒▒▓████▓░▒██▒▒▓████▓▒▓██▓░▓██▓███████████▓▓██▓░░░▒█████
   ███▒█▓░░▒▓█▓▒▒▓▒░░▒▓▒░▒▓▒███████▒▒██▒████████████░███▓███████████▓▓██████░▒████
   ███▒██░▓███▓▒▓█████████▓▒███████▒▒██▒████████████░███▒▓██████████▓████████░▓███
   ███▒███░▒▓██▓▒▒████▓▒▓██▓▒▒▓██▓▒░▒██▓▒▒▓███▓▒▓███░████▓▒▒█████▒▒▓███▓▒▓██░▓████
   ███▒████▓░▓████▒▒▒▒▒██████▓▒▒▒▒▓█▓████▓▒▒▒▒▓█████▒███████▓▒▒▒▒▓███████▒▒▒▓█████
   ███████████████████████████████████████████████████████████████████████████████
2020-01-01 00:00:00 +01:00
Timo Kreuzer 7523a7b138 [NTOS:KE] Rename some locking functions to reflect the IRQL level changes
* KiAcquireApcLock -> KiAcquireApcLockRaiseToSynch
* KiAcquireApcLockAtDpcLevel -> KiAcquireApcLockAtSynchLevel
* KiReleaseApcLockFromDpcLevel -> KiReleaseApcLockFromSynchLevel
* KiAcquireApcLockAtApcLevel -> KiAcquireApcLockRaiseToDpc
* KiAcquireProcessLock -> KiAcquireProcessLockRaiseToSynch
* KiReleaseProcessLockFromDpcLevel -> KiReleaseProcessLockFromSynchLevel
* KiAcquireDispatcherLockAtDpcLevel -> KiAcquireDispatcherLockAtSynchLevel
* KiReleaseDispatcherLockFromDpcLevel -> KiReleaseDispatcherLockFromSynchLevel
* Add some ASSERTs
2019-12-31 15:30:27 +01:00
Thomas Faber c904983b49
[NTOS:IO] Use UNICODE_STRING operations in IopUnloadDriver.
Fixes several overflow vulnerabilities.
2019-12-31 15:18:17 +01:00
Thomas Faber 2a91ea855a
[NTOS] Make RtlFindCharInUnicodeString available in the kernel. 2019-12-31 15:17:59 +01:00
Timo Kreuzer f944f3a6cd [NTOS] In KeWaitFor*Object(s) assert that the current IRQL is SYNCH_LEVEL. not DISPATCH_LEVEL, since acquiring the dispatcher lock raises to SYNCH_LEVEL, which is != DISPATCH_LEVEL on x64 and SMP builds. 2019-12-31 09:43:14 +01:00
Timo Kreuzer 53f8cbad97 [NTOS:IO] Fix list enumeration in IopShutdownBaseFileSystems 2019-12-30 15:48:38 +01:00
Victor Perevertkin b6e33426bf [NTOS:KD] Fix wrong debug level checking logic in KdpPrint.
Use NtQueryDebugFilterState in that function for consistency.
Thanks Hermès Bélusca-Maïto for help
2019-12-30 05:57:49 +02:00
Eric Kohl 8faf38ed22 [NTOS:IO] Fix indentation. No code changes! 2019-12-29 14:37:13 +01:00
Thomas Faber b6df3c622e
[NTOS:CM] Probe for write in NtLockProductActivationKeys.
This doesn't technically make a difference, but it's good practice.
2019-12-29 10:41:47 +01:00
Thomas Faber 91cc1c3e4f
[NTOS:CM] Protect user memory access with SEH in NtQueryOpenSubKeys. 2019-12-29 10:41:44 +01:00
Hermès Bélusca-Maïto d32e96d602
This was not meant to be committed!
This reverts commit 5e14dbd648.
2019-12-26 17:19:11 +01:00
Hermès Bélusca-Maïto 5e14dbd648
WIP kdbg work. 2019-12-26 13:53:50 +01:00
Serge Gautherie ad21227ac8
[NTOS:PO] PopShutdownHandler(): Fully screen-center images. Addendum to 55aed4f8.
CORE-16342
2019-12-03 02:10:37 +01:00
Katayama Hirofumi MZ 55aed4f8fa [NTOSKRNL][INBV] Fix IDB_SHUTDOWN_MSG position
Make "shutdown.bmp" (IDB_SHUTDOWN_MSG: 213x11px) horizontally centered.
2019-12-02 16:55:02 +09:00
Timo Kreuzer 21647e2c4e [NTOS] Revert pool debugging code
Revert "[NTOS] On DBG builds, fill pool allocations with 0xCD and freed pool with 0xDD"
This reverts commit 24f240be8a.

Revert "[NTOS] Add compile time option to trace callers of pool allocations"
This reverts commit 8b20755040.

Revert "WIP"
This reverts commit 8cfd5c601f.
2019-11-25 19:32:06 +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 03a9ccce65
[NTOS:KE] Explicitly use IOPM_SIZE for initializing the IO map, that is indeed also equal to PAGE_SIZE * 2 but is self-documented. 2019-11-25 00:41:54 +01:00
Hermès Bélusca-Maïto b2ca7d3ed9
[NTOS:KE] Minor formatting fixes. 2019-11-25 00:41:54 +01:00
Hermès Bélusca-Maïto 592f01a594
[NTOS:INBV] InbvEnableBootDriver() is an export, thus can be called at any time, therefore it must NOT be an INIT_FUNCTION. 2019-11-25 00:41:54 +01:00
Timo Kreuzer 8cfd5c601f WIP 2019-11-24 18:26:19 +01:00
Timo Kreuzer 8b20755040 [NTOS] Add compile time option to trace callers of pool allocations 2019-11-24 18:26:19 +01:00
Timo Kreuzer 24f240be8a [NTOS] On DBG builds, fill pool allocations with 0xCD and freed pool with 0xDD
This matches what the MSVC runtime does with heap allocations on debug builds.
2019-11-24 18:26:19 +01:00
Hermès Bélusca-Maïto 40c57de728
[KDBG] If no parameters are given to the 'filter' command, display the list of available debug filter components. 2019-11-18 01:36:04 +01:00