Commit graph

67695 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto c8a8975faf [TREE]: Rework the utility (use explicit UNICODE, use WIN32 types, remove useless dependency to user32...), and add support for console ConUtils streams.
CORE-12677 #resolve

svn path=/trunk/; revision=73622
2017-01-29 16:51:23 +00:00
Hermès Bélusca-Maïto ff5f825f59 [FREELDR]
- Simplify the implementation of the 'DiskGetBootPath' function;
- Cache the retrived freeldr boot path (corresponding to a given 'FrldrBootDrive' number);
- Introduce a 'DiskIsCdRomDrive' function to attempt to fix CORE-12692 .

svn path=/trunk/; revision=73621
2017-01-29 15:43:12 +00:00
Thomas Faber 841f48d8f2 [CALC]
- Do not push memory stores onto the operation stack since they can't be acted upon. Based on a patch by Katayama Hirofumi MZ.
CORE-12325 #resolve

svn path=/trunk/; revision=73620
2017-01-29 14:25:28 +00:00
Hermès Bélusca-Maïto a5fd03e6e1 [SHELL32]: Fix build on *sane* compilers (wth, is that an assignment without the equal sign, or a called constructor, missing its parentheses?!).
svn path=/trunk/; revision=73619
2017-01-29 13:48:39 +00:00
Hermès Bélusca-Maïto 9a649094dc [FREELDR]: Part 3 of my local changes merging:
- Remove the DiskVtbl functions (machxbox.c) of the XBOX and share them instead with those of the PC, since they are basically the same.
  They just however differ by which 'DiskGetPartitionEntry' function they use. To cope with this, 'DiskGetPartitionEntry' becomes a pointer
  to either the default function 'DiskGetMbrPartitionEntry' (which indeed assumes a MBR-layout, see partition.c), or the special function
  'XboxDiskGetPartitionEntry' in the case of partitionless XBOX disks.
  Note that, by the way, partition.c should in the future support GPT-layout disks as well...
- The boot devices pre-initialization code can also be shared as well, thus getting rid of 'XboxInitializeBootDevices', because we note that
  this is exactly what the (old) XBOX version of 'DetectBiosDisks' did at its beginning.
- But then, we can also share 'DetectBiosDisks' XBOX code with its PC version, and also *fix* the PC code version as well!
  'DetectSystem' and 'DetectBiosDisks' are therefore merged *as they should be*. Thanks to the boot devices pre-initialization code that has
  run before the hardware detection, 'DetectBiosDisks' can just use the cached information.
- Now we correctly initialize the PC root HW system configuration key: we first create it, then, after the bios disks (floppies + HDDs) are enumerated
  we set the BIOS INT13h disk data to the system key's configuration data.

svn path=/trunk/; revision=73618
2017-01-29 02:35:28 +00:00
Thomas Faber 17990b28a2 [FREELDR]
- Correctly check for buffer overflow in DetectPnpBios. Patch by Serge Gautherie.
CORE-12623 #resolve

svn path=/trunk/; revision=73617
2017-01-29 00:00:22 +00:00
Hermès Bélusca-Maïto dde1f97a02 [FREELDR]: More local changes merging, part 2/x:
- Move the HW detection code specific to the PC architecture from hardware.c to machpc.c, keeping in hardware.c the code that is shared between PC and XBOX.
- Move what remained of i386disk.c into pcdisk.c (specific to PC architecture) + code formatting.
- Move what remained of xboxhw.c into machxbox.c (specific to XBOX architecture); we discover that some code related to disk management is actually shared with PC architecture (in hwdisk.c): hwdisk.c therefore contains disk-management routines common to both PC & XBOX.
- xboxdisk.c: Code formatting only.
- Cleanup in disk.c/disk.h

svn path=/trunk/; revision=73616
2017-01-28 23:47:35 +00:00
Mark Jansen 8c8c4f495c [EXPLORER] Re-save the start menu banner so that we can display it again (and touch the .rc so it will be used).
svn path=/trunk/; revision=73615
2017-01-28 23:05:04 +00:00
Giannis Adamopoulos 36f927df20 [SHELL32] - CDefView: When dragging an item it shouldn't interact with itself. So you can move a folder in itself. Highlight the item that we are dragging over if it can accept the item that is being dragged.
svn path=/trunk/; revision=73614
2017-01-28 21:43:53 +00:00
Thomas Faber 334e885321 [CMAKE]
- Add missing target-level dependency when passing a target to add_rostests_file

svn path=/trunk/; revision=73613
2017-01-28 21:41:12 +00:00
David Quintana 87b6094ea0 [EXPLORER]
* Recreated the start menu banner as a SVG file in Inkscape.
* Deleted old PSD (Photoshop) files.
* Replaced the explorer banner BMP with one exported by Inkscape from the SVG file.
The end result is slightly sharper text, but otherwise identical.

svn path=/trunk/; revision=73612
2017-01-28 21:11:39 +00:00
Hermès Bélusca-Maïto fd61c08de6 Fix build.
svn path=/trunk/; revision=73611
2017-01-28 20:11:38 +00:00
Hermès Bélusca-Maïto ca27ff05fc [FREELDR]: Gently merge my local changes, part 1/x:
- Adjust the prototype of DiskGetBootPath;
- Add back 1 HW helper function.

svn path=/trunk/; revision=73610
2017-01-28 20:06:03 +00:00
Thomas Faber 2c8cb9c285 [FREELDR]
- Add missing checks for allocation failure in DetectSerialPointerPeripheral and DetectPS2Mouse. Patch by Serge Gautherie.
CORE-12623

svn path=/trunk/; revision=73608
2017-01-28 13:55:50 +00:00
Thomas Faber 7d54bdf9cc [NTOS:MM]
- Support MmSpecialPoolTag == '*' to mean all tags. By Serge Gautherie.
CORE-12711 #resolve

svn path=/trunk/; revision=73607
2017-01-28 13:08:19 +00:00
Hermès Bélusca-Maïto 081ba36892 [FREELDR]
- Use 'DiskReadBufferSize' instead of hardcoded values in hwdisk.c
- Transform reactos_arc_disk_info into a ARC_DISK_SIGNATURE_EX structure, so that its conversion into a ARC list in winldr.c becomes a bit simpler.
- In winldr.c:
  * In case we fail to either open the SYSTEM hive or scan it, bail out with an error message, instead of trying to continue loading ROS.
  * Fix an old comment related to ACPI;
- In memory.c/h: Do some cleanup (in particular, just use the MachXXX macros instead of also defining functions with the same names as the macros, and which just redirect into the virtual table).

svn path=/trunk/; revision=73606
2017-01-27 14:43:41 +00:00
Amine Khaldi 9bbe22afa8 [HIDPARSE][HIDPARSER][LIBUSB][USBHUB] Merge USB stack improvements by Vardan Mikayelyan in GSoC.
svn path=/trunk/; revision=73605
2017-01-27 11:09:36 +00:00
Amine Khaldi 92d1110c00 [STORAHCI] Merge Storport Miniport driver by Aman Priyadarshi in GSoC.
svn path=/trunk/; revision=73604
2017-01-27 10:11:30 +00:00
Hermès Bélusca-Maïto 8d91d51710 [SHELL32]: Replace some animations with RLE-8 compressed ones; courtesy Jared Smudde. Thanks!
CORE-11643

svn path=/trunk/; revision=73601
2017-01-27 01:07:47 +00:00
Giannis Adamopoulos 3dc773f430 [SDK] -rosctrls.h: Add GetItemPosition and SetItemPosition methods in CListView.
svn path=/trunk/; revision=73600
2017-01-26 17:03:35 +00:00
Giannis Adamopoulos 3938ea389a [SHELL32] -CDefView: Implement moving icons around. Note that the positions are never stored so a refresh returns them to their initial position.
svn path=/trunk/; revision=73599
2017-01-26 16:48:52 +00:00
Hermès Bélusca-Maïto 40768427f8 [FREELDR]: Fix GCCLin compilation (#if'd 0 an unused static function; I keep it there still in case it can become useful later).
svn path=/trunk/; revision=73597
2017-01-25 22:50:46 +00:00
Hermès Bélusca-Maïto bf571b10a0 [XDK]: Do not always redefine the ASSERT(MSG) macros with the NT_xxx ones, especially for the FreeLdr/... bootloader (where we don't use WinDbg for debugging, yet), because in this case the int 0x2c is hardly informative. We fall back to the good old RtlAssert which displays an assertion failure string in the default debug output port (e.g. serial), and then does an int 0x03.
[FREELDR]
- "static"-ify some printing helper functions;
- hide the textmode cursor before blue-screening;
- disable interrupts before hanging forever.

svn path=/trunk/; revision=73596
2017-01-25 22:43:04 +00:00
Colin Finck 9ec5efa4f7 [ISOHYBRID]
Import the isohybrid tool from http://repo.or.cz/syslinux.git/tree/138e850fab106b5235178848b3e0d33e25f4d3a2:/utils

I had to add a lot of glue code (getopt, err/errx/warn/warnx) to get it to compile under all our build platforms Windows, Linux and macOS.
GPT/Mac partition support is disabled at the moment (look for REACTOS_ISOHYBRID_EFI_MAC_SUPPORT), that would need a portable libuuid.
A fix for correctly opening ISOs as binary and not text-mode has been implemented and already sent upstream.

ISOs are not being patched automatically yet due to CORE-12692

CORE-12648

svn path=/trunk/; revision=73595
2017-01-24 22:53:20 +00:00
Colin Finck 29bebdf5b3 [BOOTSECT]
Overhaul our ISO boot sector:
- Add another entry point for hybrid booting (called by isombr) and the hybrid signature needed for isohybrid.
- Import latest isolinux.asm "API" from http://repo.or.cz/syslinux.git/blob/8bbb10b70905339b7ca6b58d6833b6a95ab03dae:/core/isolinux.asm (latest version to date) and http://repo.or.cz/syslinux.git/blob/9141c603930ef23da1e08e487a0c26750fbb4fbe:/core/isolinux.asm (latest version that came with all functions in ASM).
  Among other things, this brings us getlinsec_ebios (for reading setupldr.sys in hybrid/MBR mode) and BrokenAwardHack (for working around broken Award BIOSes)
- Fix upstream getlinsec_ebios to load files >64K.
- Load the HDD boot sector directly to 0x7C00 instead of trackbuf. This way, we don't have to load it again when the user decides to boot from HDD.
- Check for the 0xAA55 signature to decide if the HDD contains a valid MBR. This was done differently and inconsistently for isoboot and isobtrt.
- Adapt the file and comment style to ReactOS guidelines. Add meaningful comments to our main code. Remove stuff that was just taken from isolinux.asm, but makes no sense for our version.
- Remove DEBUG_MESSAGES ifdef. There is no chance they can ever fit into the 2K sector with all the added features. Debugging can still happen using Bochs or adding specific messages.

Tested with Bochs, QEMU, VMware, VirtualBox and four real computers.
Many thanks to Hermès for all the helpful suggestions and additional investigations! :)

CORE-12648

svn path=/trunk/; revision=73594
2017-01-24 22:45:37 +00:00
Robert Naumann b2c245865a [SUBST] improve/fix German translation. Patch by "Joefish". CORE-12654 #resolve
svn path=/trunk/; revision=73593
2017-01-24 22:22:58 +00:00
Robert Naumann 07392e555e [HELP] Small grammar correction. Based on parch by Doug Lyons. CORE-12669 #resolve
svn path=/trunk/; revision=73592
2017-01-24 22:18:24 +00:00
Giannis Adamopoulos 2e07736507 [SHELL32]
- CDefaultContextMenu: Fix the implementation of the QueryContextMenu to respect how IContextMenu should function. Don't ignore idCmdFirst and idCmdLast parameters. Return a correct HRESULT. For now I'm not sure how 0 cmd ids should be handled and if the standard menu items should also be affected by these parameters.

svn path=/trunk/; revision=73591
2017-01-24 16:35:36 +00:00
Hermès Bélusca-Maïto b40958162a [WELCOME]
- Start implementing the possibility of customizing the Welcome.exe utility using configuration INI files (e.g. what we would do for FOSDEM, CLT, etc...)
- Resources cleanup.

svn path=/trunk/; revision=73590
2017-01-24 14:42:07 +00:00
Hermès Bélusca-Maïto 9e499d4fb4 [i8042prt]: Yet another hack for Dell Latitude E4310 for touchpad.
CORE-12434

svn path=/trunk/; revision=73589
2017-01-24 00:58:52 +00:00
Eric Kohl 44f312e477 [FREELDR]
Add VESA DDC detection and EDID read code. Work in progress.

svn path=/trunk/; revision=73587
2017-01-22 15:03:11 +00:00
Jérôme Gardou b63e5725ae [CDFS]
- Reduce stack usage by manipulating UNICODE_STRINGS we are given instead of copying it a gazillion times
 - Do not assume said strings are null-terminated

svn path=/trunk/; revision=73586
2017-01-22 11:55:29 +00:00
Eric Kohl b9b510dbc1 [ADVAPI32]
Add I_ScIsSecurityProcess() stub.

svn path=/trunk/; revision=73585
2017-01-21 11:57:43 +00:00
Hermès Bélusca-Maïto a7253195cd [PSDK]: Add the declarations for IsNetDrive, DriveType and RealDriveType functions (from shell32).
svn path=/trunk/; revision=73584
2017-01-19 19:39:53 +00:00
Hermès Bélusca-Maïto 7b725d5d8f [SHELL32]: Follow-ups to r73579 and r73580: use PathYetAnotherMakeUniqueName.
CORE-12684

svn path=/trunk/; revision=73583
2017-01-18 23:47:38 +00:00
Hermès Bélusca-Maïto 47df3c243f [SHELL32]: Code formatting only.
svn path=/trunk/; revision=73582
2017-01-18 23:44:46 +00:00
Hermès Bélusca-Maïto 1f1f5a4c49 [SHELL32]: Remove trailing whitespace.
svn path=/trunk/; revision=73581
2017-01-18 21:03:46 +00:00
Hermès Bélusca-Maïto a770bf5f98 Fix a bug introduced in r73579.
CORE-12684

svn path=/trunk/; revision=73580
2017-01-18 12:59:35 +00:00
Hermès Bélusca-Maïto 99b6de6618 [SHELL32]: Fix the "CNewMenu.cpp:432: Unexpected failure 80070002." debug line that appears when one tries to create a new file using the explorer (note: did not happen for new directories).
CORE-12684 #resolve #comment Fixed in r73579.

svn path=/trunk/; revision=73579
2017-01-18 12:48:50 +00:00
Hermès Bélusca-Maïto a3aa3fb107 [SHELL32]
- Now that we correctly handle the shell link data block list with APIs, no need to hack an extra zeroed DWORD at the end of shortcut files!
- Fix the display of the shortcut target location: this typically displays the (last) directory where the target resides. Addendum for r53624, r54957 and CORE-5730 CORE-6104

svn path=/trunk/; revision=73578
2017-01-18 11:51:42 +00:00
Hermès Bélusca-Maïto ef268d1301 [SYSSETUP][SHORTCUTS.INF]: Follow-up of r71049 and CORE-11020 :
- Make more shortcuts start from the user directory;
- The desktop shortcut of the ReadMe file should not use an icon location, so that the shell correctly retrieves the icon to display from the type of the file (in our case, .txt).
- Make the necessary adjustments in syssetup/install.c :
  * opt-out setting the icon location;
  * in addition, since we now support shell link targets containing environment variables, don't always expand the target path before setting up the shortcut, but do it just in the case we have to compute a suitable working directory.

svn path=/trunk/; revision=73577
2017-01-18 00:19:12 +00:00
Hermès Bélusca-Maïto 766a0d27df [SHELL32]: CShellLink fixups Part 2:
- Add COM inheritance for interfaces IExtractIconA/W, and add in comment the missing other ones, the ordering of which is given by the apitests/com/shell32.
- Add proper support for the extra data block list (which is added at the end of the .lnk files), by using the API from shlwapi.dll: SH[Read|Write|Free]DataBlockList, SH[Add|Find|Remove]DataBlock.
- Using this support, getting/setting the MSI data block becomes as simple as child's play, and opens the possibility for implementing support for the other types of blocks.
- This in particular enables support for paths with environment variables for the link's target and icon: CORE-9236 #resolve
- Fix all the "shell32_winetest shelllink" tests: CORE-7158 #resolve
  Some of the fixes are inspired from a patch by Katayama Hirofumi MZ.
- Fix all the "shell32_apitest CShellLink" tests *but* those calling IExtractIcon::GetIconLocation().
- Implement a hackish substitute to the shell32!PathResolve API until someone writes a correct one (see the code & the FIXMEs for some ideas), possibly using the SHELL_xxx helpers in Wine's shellpath.c.
- In CFSExtractIcon_CreateInstance: Because IShellLink::GetIconLocation can return no icon location, in case none is specified in the .lnk (proved by apitests), we have to call the shell link's IExtractIcon::GetIconLocation in order to retrieve the icon of its target (yes, some shortcuts are made like that, e.g. Notepad++ 6.9 one...).

- More fixes...
- ... and a lot of documentation added in the code for you!

CORE-12682

svn path=/trunk/; revision=73576
2017-01-17 23:53:55 +00:00
Giannis Adamopoulos ef0d1d640c [KERNEL32_APITEST] -Make FindActCtxSectionStringW test less strict.
svn path=/trunk/; revision=73575
2017-01-17 23:11:11 +00:00
Giannis Adamopoulos 8896e6a8c4 [KERNEL32_APITEST] -Try to avoid crashes in DefaultActCtx test.
svn path=/trunk/; revision=73574
2017-01-17 22:40:36 +00:00
Hermès Bélusca-Maïto 0aeb3f07b1 [SHELL32]: CShellLink fixups Part 1:
- Use STDMETHODCALLTYPE for the interface methods calling convention;
- Use the naming convention "m_Member" for the class members (note that I haven't applied the convention for some members: because they will go away in the next commits);
- Use _countof() where needed;
- Make the ANSI CShellLink::GetIconLocation call the UNICODE version;
- Move some functions around to put them closer to the functions that call them;
- Very minor code formatting.
CORE-12682

svn path=/trunk/; revision=73573
2017-01-17 21:32:18 +00:00
Giannis Adamopoulos 749f780aef [KERNEL32_APITEST] -Add redir2dep.manifest to the testdata.
svn path=/trunk/; revision=73572
2017-01-17 19:41:26 +00:00
Giannis Adamopoulos 74365d512d [KERNEL32_APITEST] -Fix gcc build
svn path=/trunk/; revision=73571
2017-01-17 19:24:29 +00:00
Hermès Bélusca-Maïto 57ba1bd2d4 [SHELL32]
- Use explicit unicode SHFILEINFOW structure (where needed);
- In CFSExtractIcon_CreateInstance, use _countof instead of hardcoding the MAX_PATHs; add some FIXMEs about the 'flags' parameter;
- Code formatting in CExtractIcon.cpp.

svn path=/trunk/; revision=73570
2017-01-17 19:16:50 +00:00
Giannis Adamopoulos c799fd3e4f [regtest.cmd] -RENAME parameter in add_rostests_file doesn't have any effect on the name of the installed file so rename sine files manually before starting tests.
svn path=/trunk/; revision=73569
2017-01-17 19:13:12 +00:00
Giannis Adamopoulos 1dc1c3f7ef [KERNEL32_APITEST]
- Fix and enable tests for redirection support in LoadLibraryExW.
- Add tests for the default activation context that is active for every process.

svn path=/trunk/; revision=73568
2017-01-17 19:11:05 +00:00