This fixes high chance for BSOD 0x50 PAGE_FAULT_IN_NONPAGED_AREA
when booting after DVDwriteNow has been installed.
Many thanks to the fixes author Thomas Faber.
We believe this was a regression of SVN r55835
6ebf8c2537
The fix has not been applied to master yet.
Thanks to Thomas Faber, author of the patch.
I depend on external testers here for confirmation of effectiveness.
We think the problem was unhidden by 0.4.12-dev-757-g
789cfd3ddc
and surrounding works.
When traversing the device tree, keep a reference to the current device.
Devices can be deleted during the traversal, so in order to keep
the tree walk intact without use-after-free situations,
this just keeps the PDO around until we no longer need the device node.
It could be argued that this is a hack, however implementing it the "correct way"
(I haven't actually researched how Windows does this) is unlikely to be possible
with our current PNP manager -- so this should keep us going for a while.
to avoid CORE-15384 "ros corrupts FAT16 partition"
This reverts commit 0.4.11-dev-210-g
2a80ae2bb6
Like we did in 0.4.11rls.
I would happily switch over to a proper working fix from master later.
I would also do that if it appeared only after this interim solution got committed.
(cherry picked from commit 78cd6265d9)
- Add and initialize a global power capabilities variable.
- Return the global power capabilities via NtPowerInformation.SystemPowerCapabilities.
- Report the presence of power button, sleep button and lid.
It better captures the intent now in FsRtlIsNameInExpressionPrivate and
fixes a slight overallotion by 4 bytes in FsRtlIsDbcsInExpression.
While at it, use the ANSI_DOS_DOT macro in the Dbcs version.
CORE-15902
This allows querying volume information without issuing an IRP to the owner device.
The kernel is supposed to already have all the required information to return
to the caller.
Side effect: this allows querying volume information for devices not implementing
IRP_MJ_QUERY_VOLUME_INFORMATION such as null.sys
This fixes opening null device in Python.
Fix based on debugging by Maxim Smirnov in PR #1442
CORE-14551
"Release" builds should not BSoD on 'Freeing pool - invalid tag specified' case,
this is compatible with Windows behaviour.
Nothing changes otherwise concerning the "Debug" builds, where pool-tag mismatch
triggers a BSoD as expected.
CORE-15446