Commit graph

857 commits

Author SHA1 Message Date
Victor Perevertkin 016dc28793
[NTOS:CONFIG] Release the lock in a failure case in CmLoadKey
This is a workaround, the real issue is still not resolved
CORE-17263
2020-12-08 13:44:27 +03:00
Hermès Bélusca-Maïto 3d980c4a2c
[NTOS:FSTUB] Addendum to 29615fee and 8d2fe541: Further remove useless casts.
Also, fix the MBR checksum calculation (missing ~CheckSum + 1), to fix
the calculation in accordance with how MS calculates the MBR checksums
(and what we do as well in
https://github.com/reactos/reactos/blob/master/base/setup/lib/utils/partlist.c#L1581
https://github.com/reactos/reactos/blob/master/boot/freeldr/freeldr/arch/i386/hwdisk.c#L291
).
2020-12-07 22:52:42 +01:00
Hermès Bélusca-Maïto fd053237cb
[NTOS:FSTUB] Minor formatting; put the PAGED_CODE() macros in evidence (instead of being lost in the declarations). 2020-12-07 22:51:15 +01:00
Victor Perevertkin 29615feeb6
[FSTUB] Fix bugs from 8d2fe54188
The buffer is now PUCHAR or PVOID everywhere
2020-12-07 19:50:51 +03:00
Victor Perevertkin 8d2fe54188
[FSTUB] Fix out of bounds access in IoReadDiskSignature
- Convert PARTITION_TABLE_OFFSET to the number of bytes instead of
  (number of bytes) / 2. This avoids many confusing casts
- Use a cache aligned buffer for MBR
2020-12-07 14:43:34 +03:00
Victor Perevertkin 582ca68696
[NTOS:PNP] Improve and refactor PnP notifications
- BUGFIX: do not call IoGetRelatedTargetDevice while guarded mutex is acquired
  (the function issues an APC, but they are disabled inside a critical section)
- BUGFIX: only the beginning of a structure for GUID_PNP_CUSTOM_NOTIFICATION was copied and queued.
  Just pass it as-is to a subscriber, without copying
- Don't convert event GUID to string, store and compare GUID struct itself
- Split IopNotifyPlugPlayNotification into 3 functions for each type of notification
  (less stack usage and for future changes)
- Move initialization code for notifications into a separate routine
- Use separate lists and locks for every type of notification
- Put "TargetDeviceChange" notifications into their place inside DEVICE_NODE
2020-12-05 22:25:40 +03:00
Victor Perevertkin e3198fb644
[NTOS:PNP] Check if APCs are enabled before waiting inside IopSynchronousCall 2020-12-05 22:25:39 +03:00
Victor Perevertkin 9eafb2971f
[NTOS:CONFIG] Comment out the assertion until fixed
CORE-17263
2020-12-05 22:17:08 +03:00
Jérôme Gardou 0db79d4aa9 [NTOSKRNL:FSRTL] Fix memory corruption when pruning tunnel cache 2020-12-04 16:08:14 +01:00
Thomas Faber 828d5fa93e
[NTOS:IO] Reduce stack usage in IopLoadServiceModule. CORE-17215 2020-11-27 12:44:35 +01:00
Thomas Faber 2858ff53ce
[NTOS:KD] Avoid large stack buffer in KdpPrint. CORE-17215 2020-11-27 10:31:45 +01:00
Thomas Faber ae1d272add
[NTOS:PNP] Avoid recursion in IopTraverseDeviceTree(Node). CORE-17215 2020-11-27 10:31:41 +01:00
Hervé Poussineau 1a3c607f53 [NTOS:KD] Change the way we detect if exception if from KernelMode/UserMode
CORE-17381
2020-11-22 18:17:59 +01:00
Hervé Poussineau 44c6df4b27 [NTOS:KD] Correctly define previous mode when entering KDBG (addendum to 0c76bbfe98) 2020-11-17 14:23:36 +01:00
Jérôme Gardou 9e7071e8fb [NTOSKRNL] DO not disable optimisations when compiling with CLang 2020-11-16 16:58:10 +01:00
Jérôme Gardou e00922a0fe [NTOSKRNL] Link memcmp to the import lib when using CLang
CLang performs some optimisations on e.g. strcmp, but memcmp is not exported by ntoskrnl
2020-11-16 16:58:10 +01:00
Hervé Poussineau d6d5caec7c [NTOS:KD] Move some KDBG-specific variables to KDBG-specific file 2020-11-16 08:55:04 +01:00
Hervé Poussineau 0c76bbfe98 [NTOS:KD] Merge KdpReportExceptionStateChange() with kd64 version 2020-11-16 08:55:04 +01:00
Hervé Poussineau baa47fa5e0 [NTOS:KD] Use a PCONTEXT instead of a PKTRAP_FRAME in KDBG 2020-11-16 08:55:03 +01:00
Hervé Poussineau ba37323a62 [NTOS:KD] Move some declarations where they belong 2020-11-16 08:55:03 +01:00
Hervé Poussineau 67e9cc00b2 [NTOS:KD] Remove useless define
KdbEnterDebuggerException() is only called when KDBG is defined.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 95faf65ebf [NTOS:KD] Remove useless variables/members
Those where only set and never read.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 8d3a395101 [NTOS:KD] Remove Bochs port debugging
You can use serial port debugging instead.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 8a62f277d8 [NTOS:KD] Remove useless implementation of BREAKPOINT_PRINT in KdSystemDebugControl
This is (as expected) handled in KdpTrap(), which also calls KdpPrint().
2020-11-16 08:55:03 +01:00
Hervé Poussineau 1eda7d7e99 [NTOS:KD] Merge KdpReportCommandStringStateChange() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau 6f7835d30c [NTOS:KD] Merge KdpReportLoadSymbolsStateChange() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau e31be4ec25 [NTOS:KD] Merge KdEnableDebuggerWithLock()/KdDisableDebuggerWithLock() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau ebb6f29e69 [NTOS:KD] Merge KdEnterDebugger()/KdExitDebugger() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau 81b184741d [NTOS:KD] Remove useless uses of _WINKD_ 2020-11-16 08:55:03 +01:00
Hervé Poussineau 329b9fa2fb [NTOS:KD] Merge KdpReport() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau a8662c73a5 [NTOS:KD] Merge KdpTrap() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau 5730394bd0 [NTOS:KD] Merge KdpPrintString()/KdpPromptString() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau d5fe15e5e6 [NTOS:KD] Merge KdpStub with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau c2946ced92 [NTOS:KD] Remove some now useless tests on _WINKD_ 2020-11-16 08:55:03 +01:00
Hervé Poussineau 660948ce6f [NTOS:KD] Merge some more functions with kd64
Functions are KdIsThisAKdTrap, KdUpdateDataBlock, KdEnterDebugger,
KdExitDebugger, KdRefreshDebuggerNotPresent, KdDisableDebugger,
KdEnableDebuggerWithLock, KdEnableDebugger, KdSystemDebugControl
2020-11-16 08:55:03 +01:00
Hervé Poussineau d0e2fada23 [NTOS:KD] Rename KdpEnterDebuggerException to KdpTrap + add KdpStub forwarder
This removes somes uses of _WINKD_ macro.
2020-11-16 08:55:02 +01:00
Hervé Poussineau 4d84c856ad [NTOS:KD] Merge KdInitDebugger with kd64 version + move variable declarations to kd64/kddata.c
Remove now unused file kd/kdinit.c
2020-11-16 08:55:02 +01:00
Hervé Poussineau 777a2d94da [NTOS:KD] Import KdpCallInitRoutine() into KdDebuggerInitialize1() 2020-11-16 08:55:02 +01:00
Hervé Poussineau 9b43a3a067 [NTOS:KD] Move implementation of banner display from each debug output type to common code 2020-11-16 08:55:02 +01:00
Hervé Poussineau 6025df33a5 [NTOS:KD] Make implementation of KdInitSystem more similar with the kd64 one
Move some kd initializations into KdDebuggerInitialize0() function.
2020-11-16 08:55:02 +01:00
Hervé Poussineau f417a53743 [NTOS:KD] Compile all kd64 files in kdbg mode 2020-11-16 08:55:02 +01:00
Hervé Poussineau e09554a06c [NTOS:KD] Merge KdPowerTransition/KdChangeOption with kd64 version 2020-11-16 08:55:02 +01:00
Hervé Poussineau 453edbb5da [NTOS:KD] Implement empty versions of KdDebuggerInitialize0/KdSendPacket/KdReceivePacket
Move KdDebuggerInitialize1 to common code.
Add #defines to local names to prevent clashes with kdcom.dll
2020-11-16 08:55:02 +01:00
Hervé Poussineau b18529de28 [NTOS:KD] Merge KdPollBreakIn() with kd64 version 2020-11-16 08:55:02 +01:00
Hervé Poussineau 1bee6bb8f3 [NTOS:KD] Remove invalid configuration (not _WINKD_ on amd64)
This was not working, as the file ntoskrnl/kd/amd64/kd.c was non-existent.
2020-11-16 08:55:02 +01:00
Hervé Poussineau 458f4edfd5 [NTOS:KD] Remove 'support' for Pice. It was only setting a flag. 2020-11-16 08:55:02 +01:00
Hervé Poussineau 0e391eecd1 [NTOS:KD] Remove GDB stubs
drivers/base/kdgdb/ should be used instead.
2020-11-16 08:55:02 +01:00
Hervé Poussineau 083cf05f7b [NTOS:KDBG] Remove useless file 2020-11-16 08:55:02 +01:00
Hervé Poussineau 129e009a2c [NTOS:IO] Do not translate resources of type CmResourceTypeDevicePrivate
CmResourceTypeDevicePrivate resources are created the the bus driver, for its own later use,
when children devices will receive the IRP_MN_START_DEVICE.

Do not translate them, as they have no meaning outside bus driver.
2020-11-15 18:38:37 +01:00
Thomas Faber 507c442473
[NTOS:CM] Implement support for KeyValuePartialInformationAlign64. CORE-17358 2020-11-14 15:11:00 +01:00