Commit graph

76083 commits

Author SHA1 Message Date
Katayama Hirofumi MZ 72e5c2e77c [CPL][DESK] hShell32 is always non-NULL in epilogue 2019-10-22 09:43:34 +09:00
Katayama Hirofumi MZ ce498aa571 [CPL][HDWWIZ] Move 'Index' and 'Item' variables to prologue 2019-10-22 09:41:09 +09:00
Katayama Hirofumi MZ 6fc6e3c398 [WIN32SS][NTGDI] Unite duplicate of condition 'UsesSource' 2019-10-22 09:33:32 +09:00
Katayama Hirofumi MZ 1bf982ff88 [WIN32SS][NTGDI] 'otm' is always non-NULL in epilogue 2019-10-22 09:29:15 +09:00
Joachim Henze f2f833c53c [COMCTL32] Address regression CORE-14622
"Avira Antivir Personal 6.35.00.243" had issues painting its
setup wizard dialog with correct background color.
That part was a regression of SVN r74136 == git
b1b42795a9

and also did not draw its umbrella bmp, which did never work
in ros up to now afaik.

https://reactos.org/testman/compare.php?ids=69394,69478 VBOX
https://reactos.org/testman/compare.php?ids=69395,69479 KVM

Thanks to patches author Doug Lyons and HBelusca.

Wine has been reported to be affected by that bug as well:
https://bugs.winehq.org/show_bug.cgi?id=46636
Not sure whether our patch will be accepted by Wine,
to my naive eye this looks like an interim solution.
2019-10-22 01:10:28 +02:00
Pierre Schweitzer 5ab1cfc553
[NTOSKRNL] Rewrite IoAssignDriveLetters to make NT5 compliant
The major change with this rewrite is the support for the mount
manager. Fstub will now assume that most of the devices are PnP
and that they are already registered to the mount manager.
It will thus ask the mount manager to assign the drive letter.
Fstub will keep assigning drive letters non mission critical devices
such as CDs, floppies and other removable devices.

See MountMgr:QueryPoints API test that will now return mount points :-).
2019-10-21 18:28:40 +02:00
Pierre Schweitzer b68104dd87
[DISK] Forcibly declare our partitions to the MountMgr
Because our disk.sys doesn't do anything related to PnP
(compared to disk_new.sys), forcibly declare our partitions
to the MountMgr so that it can references them and assign
them a DOS drive letter on demand later on.
2019-10-21 16:50:36 +02:00
Pierre Schweitzer 410c606999
[CLASS2] Hackplement support for IOCTL_MOUNTDEV_QUERY_UNIQUE_ID
This is required so that MountMgr can handle devices that are still
using class2 instead of classpnp.
Given we have no unique ID to return, we'll return device path, which
is far from perfect but which is enough for now to have everything
working.
2019-10-21 16:45:28 +02:00
Pierre Schweitzer 11db7c9e5d
[NTOSKRNL] Define TAG_FSTUB in the dedicated internal header 2019-10-21 14:26:00 +02:00
Pierre Schweitzer 80cc287cf6
[NTOSKRNL] Declare IoRemoteBootClient in internal headers 2019-10-21 14:16:58 +02:00
Pierre Schweitzer 16fcf694ef
[MOUNTMGR] Fix setting up reparse index file name
This fixes memory smashing while attempting to volume
reparse index (we were previously trying to copy the
name on itself, in the middle of itself...).
This code won't go farther on FAT, it requires NTFS.

Now, with this, ReactOS can properly boot with MountMgr
handling DOS devices without any crash or code disabled.
Cf: what was written in 7608ac9.

Modifications in class2, disk, and ntoskrnl are still to
be committed to enable all this.
2019-10-21 12:58:30 +02:00
Pierre Schweitzer bced3eaa25
[MOUNTMGR] That was not meant to be committed
Even though it shows there might be a bug in the
code handling remote databases in the MountMgr ;-)

Addendum to 7608ac9
2019-10-21 11:03:43 +02:00
Pierre Schweitzer 7608ac9f71
[MOUNTMGR] Misc. fixes for WorkerThread()
- Properly quit the active loop when we're out of work items;
- Fix timeout duration (setting it to 1s);
- Fix handling the "Unloading" variable in case of a shutdown
  so that waiting loop is properly stopped;
- Documented why we're waiting on VolumesSafeForWriteAccess.

This fixes shutting down ReactOS with work items queued.
This is needed here because no one ever sets that event (properly)
created by SMSS though. A. Ionescu was explaining in 2018 that it's
autochk responsibility, but it doesn't seem to be the case in W2K3.
To be investigated.

This fix with all the previous ones and more uncommitted stuff (yet ;-))
allows reaching the first steps towards a NT5 storage stack:
https://twitter.com/HeisSpiter/status/1186199631740506112
2019-10-21 10:58:14 +02:00
Eric Kohl b0d4763f2b [IPCONFIG] Implement the /flushdns option and most of the /displaydns option 2019-10-20 23:24:28 +02:00
Eric Kohl 4455dcb26e [DNSAPI][REACTOS] Add a header for undocumented dnsapi functions and use it in dnsapi.dll 2019-10-20 23:13:46 +02:00
Amine Khaldi 4601b11fc9 [HNETCFG_WINETEST] Sync with Wine Staging 4.18. CORE-16441 2019-10-20 20:04:04 +01:00
Amine Khaldi 7c98f2203d [HNETCFG] Sync with Wine Staging 4.18. CORE-16441 2019-10-20 20:03:33 +01:00
Amine Khaldi c73a46af9c [PSDK][UUID] Import natupnp.idl from Wine Staging 4.18. CORE-16441 2019-10-20 20:01:58 +01:00
Amine Khaldi 8cc0d363dc [DEVENUM_WINETEST] Sync with Wine Staging 4.18. CORE-16441 2019-10-20 18:56:45 +01:00
Amine Khaldi c1585bb868 [DEVENUM] Sync with Wine Staging 4.18. CORE-16441 2019-10-20 18:56:05 +01:00
Amine Khaldi a186e66945 [PSDK] Add missing OVERLAPPED_ENTRY. CORE-16441 2019-10-20 17:58:55 +01:00
Mark Jansen 1f362c1a5a
[SHELL32] CDefaultContextMenu: Don't render a medium just to query if it is present 2019-10-20 17:10:12 +02:00
Mark Jansen e45beb55f8
[SHELL32] CDefaultContextMenu: Always add the wanted operation to the IDataObject 2019-10-20 17:10:12 +02:00
Mark Jansen c31327114b
[SDK][SHELL32] Augment the internally used IDataObject with some extra formats
This is needed because our code seems to use CF_HDROP a lot, instead of HIDA...
2019-10-20 17:10:12 +02:00
Mark Jansen f9d3c2c608
[SHELL32] Mark an unexpected failure as unexpected 2019-10-20 17:10:11 +02:00
Mark Jansen 2318bda651
[SHELL32_APITEST] Show that SHCreateDataObject behaves exactly like CIDLData_CreateFromIDArray 2019-10-20 17:10:11 +02:00
Mark Jansen 75cabb07be
[SHELL32] Properly release an StgMedium 2019-10-20 17:10:11 +02:00
Mark Jansen 0f2cb5abc7
[SHELL32_APITEST] Show that the default data object does not have a preferred drop effect 2019-10-20 17:10:11 +02:00
Mark Jansen 87fa11f54b
[FONTEXT] Return the correct error in GetDisplayNameOf 2019-10-20 17:10:04 +02:00
Eric Kohl 2ed4b3f780 [NETCFGX] Free all component data on INetCfg_fnUninitialize() 2019-10-20 15:01:55 +02:00
Thomas Faber c1eccaffaa
[MBEDTLS] Update to version 2.7.12. CORE-16440 2019-10-20 12:46:35 +02:00
Thomas Faber e02cdcce68
[MPG123] Update to version 1.25.12. CORE-16440 2019-10-20 12:46:09 +02:00
Thomas Faber 983f57b6e0
[BZIP2] Remove unused library. CORE-16440
This was once used by the "ramdrv" driver, removed in r37739 (c47ab26e82).
2019-10-20 12:45:59 +02:00
Victor Perevertkin fdd1d7d60c [MSVCRT] Export __acrt_iob_func to fix GCC build with latest RosBE 2.2 (#1835)
This adds an evil hack to persuade libstdc++, which tries to import __acrt_iob_func from a DLL.
This can only be solved cleanly by adding a GCC-compatible C++ standard library to our tree later.
2019-10-20 12:44:17 +02:00
Mark Jansen d9e7c48c1a
[FONTEXT] Initial implementation
Create Fonts\desktop.ini when registering the shell ext
Also list the shell extension as needing to be registered at install
CORE-14690
2019-10-19 18:42:15 +02:00
Mark Jansen 730a99c860
[SHELL32] Update CDataObject,
allowing it to accept new formats and behave a bit more like windows
2019-10-19 18:42:15 +02:00
Mark Jansen f741dd8557
[SHELL32_APITEST] Add test for CIDLData_CreateFromIDArray 2019-10-19 18:42:15 +02:00
Mark Jansen 8ea04e276d
[FONTVIEW] Add /d option 2019-10-19 18:42:15 +02:00
Mark Jansen 5d54b65ceb
[SHELL32] Add support for custom View objects defined with UICLSID
CORE-16271
2019-10-19 18:42:15 +02:00
Mark Jansen a99325c716
[ZIPFLDR] Fix number of menu items returned for DFM_MERGECONTEXTMENU 2019-10-19 18:42:14 +02:00
Mark Jansen 936b54faa3
[PSDK] Add some missing defines to shlobj.h 2019-10-19 18:42:14 +02:00
Mark Jansen d315fd93d3
[FONTEXT_APITEST] Add simple api test showing interfaces
CORE-14690
2019-10-19 18:42:14 +02:00
Mark Jansen 5d7ae44059
[SHELL32] Demote an ERR to WARN 2019-10-19 18:41:52 +02:00
Pierre Schweitzer a058e680b6
[MOUNTMGR] Don't kill Mm when a device has several symlinks
On preflight to compute output size, device name & unique ID were
counted only once per device.
Then, on copy, these two were copied on every MOUNTMGR_MOUNT_POINT
structure. This is counter efficient (data duplication) but also,
it was overruning the output buffer, since the preflight was not
expecting these extra copies.
2019-10-19 18:04:30 +02:00
Pierre Schweitzer 67d3fbdd97
[MOUNTMGR_APITEST] Dump offsets
That shows that some offset are shared (everything but the symlinks)
2019-10-19 18:00:36 +02:00
Pierre Schweitzer a53992180d
[MOUNTMGR] Fix enumerating drive letter for creating new mountpoint
This is purely a copypasta error fix, which was causing MountMgrNextDriveLetterWorker
to fail as no drive letters were enumerated previously.

With that set of patches, MountMgr now properly assigns drive letters to
new devices!
2019-10-19 16:59:58 +02:00
Pierre Schweitzer e359a3c888
[MOUNTMGR] Fix interpretation of QueryDeviceInformation GptDriveLetter
Being TRUE doesn't mean the device is GPT and has a drive letter. It just
means that it's not a GPT device with GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER
attribute. In short, if TRUE, it means that the device can receive a drive
letter mount point.

This fixes MountMgrNextDriveLetterWorker bailing out for any attempt to
assign a drive letter to a device.
2019-10-19 16:59:58 +02:00
Pierre Schweitzer 961693f060
[MOUNTMGR] Fix IsFtVolume so that it returns TRUE only for FT volumes 2019-10-19 16:59:58 +02:00
Pierre Schweitzer 225a1e92bd
[MOUNTMGR] Query proper device when creating mount point
We must query the target device, and not the symbolic link
we attempt to create. The later will always fail as it doesn't
exist yet.

This fixes MountMgrCreatePointWorker not working.
2019-10-19 16:59:57 +02:00
Pierre Schweitzer 7b650d2c3e
[MOUNTMGR] Remove cancel routine before completing pending IRP 2019-10-19 16:59:57 +02:00