- Create a wrapper version of HalpEndSoftwareInterrupt that frees its stack before calling the noreturn version of the next software interrupt handler. Fixes excessive stack usage when DPCs are queued in quick succession.
CORE-11123 #resolve
svn path=/trunk/; revision=71307
- Keep track of physical pages allocated for special pool, and respect the initially calculated MiSpecialPagesNonPagedMaximum
svn path=/trunk/; revision=71304
Improvements to the file types property page:
- Always show the selected file type.
- Set the focus to the listview control when the file types page gets activated.
- Enable/disable the Delete button for the initial file type selection too.
svn path=/trunk/; revision=71300
- Use the correct size of ServiceBuffer in getnameinfo. Patch by Víctor Martínez Calvo. CID 716150
CORE-11214 #resolve
svn path=/trunk/; revision=71293
- Add missing null termination for the line buffer in GetProtoGetNextEnt. Patch by Víctor Martínez Calvo. CID 716700
CORE-11218 #resolve
svn path=/trunk/; revision=71292
- Work around a ROS bug (CORE-11206) by doing some better bounds checking.
- Silence a VAD warning by checking for NULL instead of blindly passing mem to NtUnmapViewOfSection
- Rewrite module type lookup code to use an enum and to return the found header.
svn path=/trunk/; revision=71290
- In RtlpGrowBlockInPlace, copy the heap block's user value if the old block has the HEAP_ENTRY_EXTRA_PRESENT flag, instead of looking at the flags of the following block (where this will never be set).
CORE-11196 #resolve
svn path=/trunk/; revision=71279
Improvements to the file type property page:
- Read the EditFlags value for each file type from the registry.
- Sort the file type list by extension and description.
- Do not add a file type to the list if the FTA_Exclude flag is set for the file type.
- Disable the delete button if the FTA_NoRemove flag is set fot the file type.
- Set the FTA_Exclude flag for the dllfiles, lnkfiles and piffiles file types.
- Set the FTA_NoRemove flag for the batfile, cmdfile, comfile and exefile file types.
svn path=/trunk/; revision=71275
In case we're performing an in-place move (ie, in the same directory), if short name matches before and after, keep it.
This avoids that a file with long file name sees its short name changing on normally 'non-effect' renames.
For instance, in case of case-change only rename, short name will now be preserved.
See ya, you 7y old bug :-)
CORE-3875 #resolve #comment Fixed with r71270
svn path=/trunk/; revision=71270
The onliner:
- Move to next entry by applying the offset to the previous entry, and not to the first entry
This fixes enumerating ADS from files with 3+ streams. Previously, doing dir /R in a directory would have lead to a cmd crash.
CORE-11164 #resolve #comment Fixed by r71245
svn path=/trunk/; revision=71245
- Move recyclebin static lib in the shell32 folder and name it shellrecyclebin alongside shelldesktop and shellmenu static libs.
svn path=/trunk/; revision=71243
- lnk files are .. files so don't pretend that CDrivesFolder and CControlPanelFolder can contain lnk files.
- Don't create a full pidl just to parse it right away (which is a costly operation) when an IShellLink is queried from a folder.
- Fix a bug in CDesktopFolder::GetDisplayNameOf that was exposed by changes above.
svn path=/trunk/; revision=71237
Cherry pick a change from r71224 by Trevor:
- Don't fail too early in NtfsCreateFile() when requesting write/supersede operation. This allows already setting appropriate error in certain cases and making the driver more consistent
svn path=/trunk/; revision=71229
- Remove IExtractIconA_Constructor and rename IExtractIconW_Constructor to GenericExtractIcon_CreateInstance which will handle both A and W.
- Make GenericExtractIcon_CreateInstance accept a pointer to a IShellFolder and a simple pidl.
- Avoid using SHGetPathFromIDListW. Use ILGetDisplayNameExW instead. May make loading icons for folders and exe files slightly faster as it does fewer I/O and less allocations.
svn path=/trunk/; revision=71227
- Disentangle icon extraction for control panel. Add CCPLExtractIcon_CreateInstance and isolate control panel handling in CControlPanelFolder.cpp.
svn path=/trunk/; revision=71225
- Don't leak memory in KspValidateConnectRequest(), patch by Victor Martinez
- Also compute connect medium ID string only twice (could be even computed once) instead of doing so in each loop iteration
CORE-11099 #resolve #comment Committed in r71221
svn path=/trunk/; revision=71221
- Get rid of CPrintersExtractIconW and add CPrintersExtractIconW_CreateInstane which creates and initializes CExtractIcon.
- Also add CNetFolderExtractIcon_CreateInstance and CRecyclerExtractIcon_CreateInstance.
svn path=/trunk/; revision=71217
- Add an overload of SHSetStrRet which loads strings by default from shell32.
- Remove some dead code fomr CDrivesFolder.
svn path=/trunk/; revision=71213
- Accept parsing paths like "C:". Also simplify CDrivesFolder::ParseDisplayName a bit.
Note: trying to run "c:" from the run dialog doesn't have the right result due to a bug in ShellExecute.
svn path=/trunk/; revision=71212
Addendum to r69601:
host-tools are "no longer required" but actually still exist.
Add the CMakeCache cleanup for them.
svn path=/trunk/; revision=71204
Don't remove an entry list twice in add_to_space_list().
This fixes a BSOD when trying to create a new file on a Btrfs volume.
Already sent upstream. Delayed due to inactivity.
CORE-11057 #resolve #comment Fixed with r71202
svn path=/trunk/; revision=71202
- Add a list of hardcoded tags, for all versions up to win7 they are checked against windows.
- Update SdbTagToString with a few missing strings
- Hardcode the used version to Win7 for now, as backporting these strings would not make much sense.
svn path=/trunk/; revision=71200
- Stub the Property pages
- Disable some code that prevented the property pages from working (CORE-11140)
- Leave the menu item disabled for now, since a dialog that does not do anything will only confuse people (CORE-11141)
svn path=/trunk/; revision=71192
- Add an apitest for our delayload functions.
- Improve the delayload (mainly the failure cases, throw exceptions where expected etc).
- Add some tests for advanced delayload features (currently blocked on CORE-6504 and CORE-10957)
svn path=/trunk/; revision=71190
Use the PairCount variable of the MCB to store the current amount of runs in the table. This will be properly used later on.
CORE-11002
svn path=/trunk/; revision=71178
Add more failing tests for MCB. These are pretty basics and deal with holes.
They are pretty handy to show how broken the current MCB implementation is, in regard to holes management: it fails at properly counting runs when there are holes and it creates virtual runs (hence the broken count) for each hole. This shouldn't happen.
CORE-11002
svn path=/trunk/; revision=71177
Modify the ret8 interrupt return path in KiTrapExitStub, so that nested interrupts (e.g. as a result of an interrupt storm from a broken driver) will work more "like on Windows", i.e., now the broken driver will not cause stack exhaustion anymore, but a proper system hang! And it will be an even more efficient system hang than Windows has! This is not the '90s. You can't just walk up and crash the system, you have to do something cool first and do it properly "like Windows does", even if you're not using the same assembly instructions.
svn path=/trunk/; revision=71174
- Initialize the window station object before calling ObInsertObject, since the object will be deleted in case of failure.
CORE-11124
svn path=/trunk/; revision=71164
- Revert the changes adding arbitrary bit length read/write support since they cause problems on VirtualBox and will be reworked upstream.
CORE-11115 #resolve
svn path=/trunk/; revision=71158
In FsRtlAddBaseMcbEntry(), try to detect incompatible LBNs before altering mappings.
This fixes a few tests failures
CORE-11002
svn path=/trunk/; revision=71145
- CDefViewDual::get_Application now returns a new CDefView to fix the winetest.
- Update CFolder, CFolderItem(s), CFolderItemVerb(s), CShell to use the new IDispatchImpl
- Enable the last two skipped testcases (test_ShellFolderViewDual, test_ShellWindows)
svn path=/trunk/; revision=71144
doxygen.reactos.org is back, with a revamped Doxyfile and a new design! (= the standard Doxygen design :P)
This is mostly the default Doxyfile, with just obvious settings imported from our old one.
I've also enabled some advanced features such as dependency graphs and the treeview.
The configuration is far away from perfect, but everybody is invited to tune it and see the results on the next day.
Doxygen is regenerated everyday at 4:00 UTC. RosApps and RosTests are also included now.
You're also invited to add Doxygen comments everywhere. Right now, the documentation is dominated by our third-party imports.
svn path=/trunk/; revision=71143
Add a simple test for FsRtlAddLargeMcbEntry() which shows how hard it's broken... Not only it doesn't support mismatching LBNs, but it also replaces current mapping with broken one
CORE-11002
svn path=/trunk/; revision=71141
- Implement Typelib registration in CComModule::RegisterServer, based on dll/win32/atl/atl.c and dll/win32/atl80/atl80.c
- Add oleaut32 to devmgr and stobject import libraries
CORE-11104 #resolve
svn path=/trunk/; revision=71139
Because the underlying shim infrastructure is not active yet, the page is disabled by default.
Hello Reactos :)
CORE-10375
svn path=/trunk/; revision=71131
- In USBSTOR_GetMaxLUN, correctly handle devices that do not support this request. Patch by Vadim Galyant.
CORE-10515 #resolve
svn path=/trunk/; revision=71128
Change the cylliric glyphs for "Ы" and "ы", to allow them to have a pixel space before the next character. By Dmitri Poguliayev.
svn path=/trunk/; revision=71125
- Apply Wine commit 110665a3 (ole32: Don't call spy on IMalloc::Free(NULL)) by Nikolay Sivov. Fixes test failures in atl:CComHeapPtr
CORE-11107 #resolve
svn path=/trunk/; revision=71119
- Add stubs for the shell dispatch object, CShell, and its relatives. Patch by Mark Jansen.
[SHELL32_WINETEST]
- We no longer need to skip test_ParseName and test_Verbs thanks to Mark's work.
CORE-6892
ROSTESTS-209
svn path=/trunk/; revision=71116
- Correctly calculate the buffer size if the PATH variable is set but empty in BasepComputeProcessPath. Yes, this is a bug in Windows.
CORE-11080 #resolve
svn path=/trunk/; revision=71097
- Fix parsing of the -p option and enable / as option indicator.
- Display foreign address of a listening TCP port as '<host>:0'.
svn path=/trunk/; revision=71095
Automatic Fixup of the whole RAPPS DB with a Python sync script from Christopher Reimer (based on the script from Ismael Ferreras Morezuelas): https://dl.dropboxusercontent.com/u/30053674/shaonificator.py
- Fixed ANY INI parsing errors like double language sections, missing braces, missing variable descriptions, typos...
- Fixed ANY sizes of downloads + all language specific alterations.
- Fixed ANY dead links.
- Fixed ANY SHA1 hashes.
- Comments are no more. All ppl who contributed and left their names in the comments of the files are now found in CONTRIBUTORS.
++ Removed offbyone.txt. The Browser is no more.
svn path=/trunk/; revision=71093
Add more tests for LargeMcb functions.
These are not invented but real cases: they are extracted from Ext2Fsd driver attempting to read a file from disk. The read file in ReactOS is totally corrupted.
This shows how broken our current MCB implementation is. And unfortunately confirms CORE-11002.
I recommend not to import any other FSDs relying on MCB as long as this is not fixed (eg. CORE-11040); it makes them pretty pointless.
CORE-11002
svn path=/trunk/; revision=71091
CredWriteDomainCredentialsW missing in advapi32.dll.
Patch by Jared Smudde.
CORE-11055 #resolve #comment Thanks a lot!
svn path=/trunk/; revision=71086
- Add apphelp.dll. Patch by Mark Jansen, partially based on work by Mislav Blažević and the Wine team.
CORE-10367 #resolve
svn path=/trunk/; revision=71084
- Correctly handle desktop pidls in CDesktopFolder::CompareIDs. Based on a patch by Sylvain Deverre.
CORE-10747 CORE-10801 #resolve
svn path=/trunk/; revision=71081
- Correctly handle NULL pidls in CDesktopFolder::CompareIDs and CDrivesFolder::CompareIDs. Based on a patch by Sylvain Deverre.
CORE-10745 #resolve
CORE-10747
svn path=/trunk/; revision=71080
- Add tests for IShellFolder::CompareIDs. Patch by Mark Jansen, with additional test cases by Sylvain Deverre.
CORE-10747
svn path=/trunk/; revision=71064
- Fix crash by use of MDI container rules.
- Patch by Michael Müller: Preserve beginning of extra data for MDI windows.
- Patch by Jacek Caban : Ignore WM_CHILDACTIVATE on disabled windows in DefMDIChildProc.
- CORE-10912 Wine Staging 1.9.4
svn path=/trunk/; revision=71059
- Patch by Piotr Caban : Select text control content while setting dialog focus.
- CORE-10912 Wine Staging 1.9.4
- Added comments.
svn path=/trunk/; revision=71058
- Use the correct, previously calculated width and height in BITMAP_LoadImageW instead of assuming pbmi is an actual BITMAPINFO. Fixes loading bitmaps using BITMAPCOREINFO format. Patch by Mark Jansen.
CORE-10889
svn path=/trunk/; revision=71056
- Reduce the C COM "ugliness" by using suitable macros. Thanks to Mark Jansen for having pointed that.
- Use sizeof() instead of ARRAYSIZE() * sizeof(WCHAR) to do the same thing.
svn path=/trunk/; revision=71051
Allow for an optional working directory in the shortcuts definitions in the shortcuts.inf file.
Patch by Mark Jansen
CORE-11020 #comment Thank you very much!
[SHORTCUTS.INF]
As an application of the previous feature, make the shortcuts (desktop & start menu) of cmd.exe start it from the user directory.
CORE-11018 #comment Please retest with r71049.
svn path=/trunk/; revision=71049
- Define a new macro function KmtGetSystemOrEmbeddedRoutineAddress() which is to be used to get a function address from Mm if it exists system-wide or to fallback to embedded function if it doesn't exist
- Use this mechanism to add tests for the newly implemented FsRtlRemoveDotsFromPath() which is Vista+.
That allows, with a single build (and thus, same binaries), testing a function in ReactOS and in Windows.
svn path=/trunk/; revision=71046
BUGBUG in fileinfo.c: 'datalen' is used but not initialized!
[NTOSKRNL_VISTA]
Add most of the same compile-time definitions as for ntoskrnl proper, since this static library can be seen as part of the kernel! Fixes MSVC build.
svn path=/trunk/; revision=71039
Import the WinBtrfs 0.2 driver from https://github.com/maharmstone/btrfs.
Based on the initial work from Peter Hater, with various modification and patches sent upstream (yay, yet another collaboration :-)).
This driver is in its earlies, so expect crashes, issues, and so on. We'll keep it updated to get rid of these issues.
For now, it reads really well from a btrfs volume!
CORE-10892
svn path=/trunk/; revision=71037
Introduce a new library dedicated to recent drivers: ntoskrnl_vista.
Its purpose is to provide some Vista+ syscalls to drivers that would require them.
Only 'simple' syscalls not depending on internal structures can land in this library (for the others, you're doomed ;-)).
This library is to be statically linked to your driver.
For the initial commit, the following syscalls have been implemented:
- RtlUnicodeToUTF8N(), RtlUTF8ToUnicodeN(), taken from Wine trunk, implemented by Thomas
- FsRtlRemoveDotsFromPath() implemented for the library
These three are required by the WinBtrfs FS driver
CORE-10892
svn path=/trunk/; revision=71036
Update the driver to release 0.63.
One notable change is support for ExtX links (hard/sym). They work out of the box due to all the previous work that was done for supporting reparse points on NTFS.
Full changelog available at: http://www.ext2fsd.com/?p=195
CORE-10996 #resolve #comment Commited in r71031
svn path=/trunk/; revision=71031
Implement in a really simple way CcSetBcbOwnerPointer() and CcUnpinDataForThread(). They don't do everything the Windows Cc does, but at least, they do the basic job.
CORE-10996
svn path=/trunk/; revision=71030
Set correct locale in RtlGenerate8dot3Name test.
This makes the test reproducible on every target plateform.
Patch by Mark Jansen.
ROSTESTS-218 #resolve #comment Patch commited in r71027. Thanks!
svn path=/trunk/; revision=71027
Import Wine commit:
- e8c8ddcbfc8bc4458add06062005a4022162deab, Don't send lpRemoteName when requesting network place.
This is the end: ReactOS WNet is fully in sync with Wine, with all the features required for network providers in.
Enjoy your VBox/VMware shared folders working with synced upstream!
CORE-10878
CORE-10032
svn path=/trunk/; revision=71019
Hint for future and current developers: there's a hidden feature in ReactOS, you can build it locally before committing, so that you can check whether your commit breaks build...
Amazing, isn't it?
svn path=/trunk/; revision=71017
Update Simplified Chinese and Traditional Chinese Translation.
Patch by Henry Tang Ih.
CORE-10939 #resolve #comment Thanks a lot!
svn path=/trunk/; revision=71005
- Add few missing #ifdef __GNUC__ before including msvctarget.h.
- The contents of intrin.h is included only if RC_INVOKED is not defined. Compatible with MinGW and WinSDK.
- Ignore PROBE_ALIGNMENT definition if no platform is defined, in case RC_INVOKED is defined. Compatible with MinGW and latest WinSDK.
The two last fixes are also necessary to not make the Visual Studio resource compiler complain when a resource file is opened in it.
svn path=/trunk/; revision=70984
Implement support for recognizing the Btrfs volumes.
Patch by Peter Hater.
CORE-10892 #comment The fs_rec part has been committed, thanks!
svn path=/trunk/; revision=70955
- Fix the Shell-About box.
- Whitespace/indentation fixes in string.c
- Add missing size for the ICON resource item of the dialog "Program attributes". MSVC resource compiler considered that as an error, while GCC's windres compiled that without warning (who knows what they took as the default value...).
svn path=/trunk/; revision=70919
- bootsup.c/.h, usetup.c: Save the old MBR sector in the system partition (this makes easier to restore the old one).
- fslist.c/.h, usetup.h: Fix header inclusion order.
- partlist.c/.h, usetup.c: On BIOS-PC architectures, the system partition can be formatted in any FS as long as it is the active partition (on the contrary, on architectures where such system partition is required, it is formatted in FAT). We currently do not have write support for all FSes out there (apart for FAT until now), so do a "clever" "trick" to work around this problem: on initialized disks, find the active partition and check its FS. If we support write access to this FS then we're OK, otherwise we change the (active) system partition for the one on which we are going to install ReactOS (which is, by construction, formatted with a FS on which we support write access).
The MBR (resp. the VBR) of the disk (resp. of the system partition) are always saved into files, making easy for people to boot on them (using FreeLdr) or restoring them.
CORE-10898
svn path=/trunk/; revision=70837
The Ewoks concil said it's fine to dereference null pointers in the kernel, so, partly revert r70819 (by partly, I mean: revert everything excepted the comments that were fixed!).
Also add asserts that exist on Windows to make it obvious we're about to kill the whole kernel
To make it clear: fix the FSD!
svn path=/trunk/; revision=70824
Don't attempt to null-dereference fastio routine without checking whether it was set first.
This fixes RW with FSDs using cache but no FastIO possibilities.
CORE-10892
svn path=/trunk/; revision=70819
- Update Testman web service URI for the new website since a redirect from the old address will not work for POST. Should fix WHS Testbot.
ROSTESTS-215 #resolve
svn path=/trunk/; revision=70817
- Based on patch : Jacek Caban : Don't use window' s parent as an owner if WS_CHILD style is not set.
- https://www.winehq.org/pipermail/wine-cvs/2016-February/111835.html
- Pass all win:test_parent_owner.
- Add window last view to Desktop Information structure.
svn path=/trunk/; revision=70813
Handle generated tests on all architectures.
Update i386 files.
The kernel32 generated remains disabled,
Wine's definition of COMMCONFIG differs from our/MSDN definition.
Commented out nonexisting LPEXCEPTION_RECORD.
svn path=/trunk/; revision=70802
Prevent removal of all languages from the language list by disabling the 'Remove' button when only one item remains. Enable the 'Remove' button when there is more than one item in the list.
CORE-3587 #resolve
svn path=/trunk/; revision=70799
Fix enumeration of network places root directory when starting the enumeration from network providers enumeration
CORE-10878 #resolve #comment Fixed with r70793
svn path=/trunk/; revision=70793
- Use a more complete list of partition type names for displaying the partition types in the list.
CORE-4043 #resolve
- HACK (for ChkDsk): Guess the filesystem type of the current partition, based on its partition type ID. This is hackish because partitions with the same ID can be formatted with different file systems (e.g.: Linux partition ID 0x83 can cover EXT2/3/4, ReiserFS, etc). Therefore do NOT use GetPartTypeStringFromPartitionType for that!! (see r68156 and r70283).
svn path=/trunk/; revision=70792
Also had the nasty partition number hack to IOCTL_DISK_GET_PARTITION_INFO_EX.
It is required for some file system to work in ReactOS (teasing :-))
svn path=/trunk/; revision=70781
- Move CComBSTR and CComPtr to atlcomcli.h
- Patch from Mark Jansen
CORE-10610[ATL]
- Move CComBSTR and CComPtr to atlcomcli.h
- Patch from Mark Jansen
CORE-10610
svn path=/trunk/; revision=70776
- Remove one hack that seems not to be required anylonger.
- Add a comment to highlight the usage of the infamous partition 0 hack (who's the IopParseDevice() hack friend!)
svn path=/trunk/; revision=70771
Starting NT 5.1 a mysterious "VideoPortCheckForDeviceExistance" (with a 'a') export made its apparition, and is the same as the already existing "VideoPortCheckForDeviceExistence" (with a 'e') ^^
I add it only to be compatible with Win2k3 SP2 videoprt.sys exports.
svn path=/trunk/; revision=70770
- Complete the table of exported VideoPort functions (compatible Win2k3 SP2), some functions were missing in it: see for example the last picture of http://www.reactos.org/forum/viewtopic.php?f=4&t=14727#p120344 .
- Don't redirect the VideoPortInterlockedIncrement/Decrement/Exchange functions directly to NTOS, because otherwise they cannot be included in the exports table.
svn path=/trunk/; revision=70769
If the cache wasn't initialized by the FSD serving the image, don't allow section creation to avoid later (dramatic) failure in CC.
Based on a patch by Sylvain Deverre.
CORE-10038 #comment Modified patch committed in r70756
svn path=/trunk/; revision=70756
Import Wine commit:
- d070c263adf840cc14dde84eb8e73b04490d1900, Partially implement WNetUseConnectionW().
This reduces diff to Wine, by providing a cleaner implementation of WNetUseConnectionW().
CORE-10032
svn path=/trunk/; revision=70755
Import Wine commit (by Nikolay Sivov):
- 164fe0470ccf7cb3c0946cbb52d4139aec0c4a03, Query for NPAddConnection and NPAddConnection3 when loading a provider.
CORE-10032
svn path=/trunk/; revision=70754
Remove some dead code; fix comments; mention that some code is redundant. This is added to help future people in cleaning up that mess called "win32k/user32".
svn path=/trunk/; revision=70751
Cowardly refuse to continue processing (enumerating/reading) when stumbling upon a compressed entry.
This avoids infinite loops when enumerating, incorrect files contents when reading.
CORE-10814 #resolve #comment 'Fixed' with r70750
svn path=/trunk/; revision=70750
When discovering floppy controlers, immediately probe controlers to check whether they have a disk and if so, what's its geometry.
This avoids waiting for the first read, which will obviously never happen because FSD will try other operations depending on not set geometry.
This implies a modification in RWDetermineMediaType() to avoid infinite wait, in case there's no disk at all in the controler.
Addendum to r70725
svn path=/trunk/; revision=70746
- Cleanup window clipboard data while the window still exists and is not dereferenced.
- When a window is about to be destroyed (just before we send the WM_DESTROY message), if it is the current clipboard owner, make it release the clipboard. The WM_RENDERALLFORMATS message is then sent, and if needed, one WM_DRAWCLIPBOARD message.
- Send a WM_DRAWCLIPBOARD message when SetClipboardViewer is called.
WM_DRAWCLIPBOARD messages are sent as notifications to the corresponding windows.
svn path=/trunk/; revision=70744
Update Simplified/Traditional Chinese Translation.
Patch by Henry Tang Ih.
CORE-10825 #resolve #comment Thank you very much!
svn path=/trunk/; revision=70739
- Avoid calling OpenClipboard with a NULL window handle.
- Display the clipboard erasing confirmation message before actually opening and resetting its contents.
[WIN32K]
- Improve few comments.
- In UserOpenClipboard, return success early in case the clipboard was already opened by the clipboard owner.
svn path=/trunk/; revision=70738
- Update the name of the application.
[SHORTCUTS]
- Add a clipboard viewer shortcut into the start menu (for boot and live-cd).
CORE-10853
Translators, please review!
svn path=/trunk/; revision=70737
- Add clipboard file icon by Jared Smudde.
- Open any clipboard data file given in the command line.
[BOOTDATA]
- Add registry entries for file extension .clp.
CORE-10853 #resolve #comment Support added in revision 70736.
svn path=/trunk/; revision=70736
Add the BS_TOP flag to the multiline checkboxes. The checkbox will display at the top of the control rather than at the middle.
svn path=/trunk/; revision=70734
- Disable message box messages added for testing purposes (but still keep them here in case one needs them).
- Start implementing clipboard write file support. Work in progress. See CORE-10852
svn path=/trunk/; revision=70732
There actually exist two clipboard file formats, so-called "Win3.1" and a "WinNT" formats. Strangely enough Win2k (and Win2k3) clipboard viewer always save the files under the "Win3.1" format, whichever one you select.
I discovered the subtle difference between those two formats by looking at a very old MSDN sample program "EMFDCODE (Enhanced Metafile Decoder)" by Dennis Crain (see https://web.archive.org/web/20080406095812/http://msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_emfdcode.asp? ) that still can be found on the Internet...
CORE-10550 #comment Read support fixed in r70730.
svn path=/trunk/; revision=70730
Add the ReactOS famous... hack? fix? whatever? already present in FastFAT, NTFS...:
When accessing a floppy disk, our floppy storage stack can return that the disk type is unknown (some would say it's legit - see comments in FastFAT) and will also return a disk sector size of 0.
Then, when trying to read the floppy disk with said size, everything goes wrong (null length read is never a good thing). So, as in any other FSD in ReactOS, for disk sector size to 512 bytes in this really specific case.
This fixes BSOD when having a floppy drive in ReactOS (whatever its filesystem).
CORE-10464 #resolve #comment Fixed with r70725
svn path=/trunk/; revision=70725
Temporarily disable the WS_EX_DLGMODALFRAME test whose presence broke opening the system menu when the user clicks on the window caption icon.
This half-broken DefWndNCHitTest comes from user32; see r70718 for more details.
svn path=/trunk/; revision=70719
- Both functions UserGetInsideRectNC and NC_GetInsideRect are the same: remove the redundant code and keep only NC_GetInsideRect.
- Move default WM_NCHITTEST into kernel side, getting rid of half-broken DefWndNCHitTest in user32. Note that we use a DefWndNCHitTest version almost unmodified in uxtheme.dll.
I did this move also because otherwise, we didn't correctly checked for the presence of the window system menu icon. On the contrary the function GetNCHitEx (obviously taken from Wine's NC_HandleNCHitTest) correctly checks for this.
James, please review!
svn path=/trunk/; revision=70718
- Fix orthograph
- Mention in the code that some stuff are hacks & need to be fixed.
- Add parentheses around bit checks.
svn path=/trunk/; revision=70713
- Hide STATUS_SXS_INVALID_ACTCTXDATA_FORMAT in BasepProbeForDllManifest and fake a manifest not found status instead. Windows's RtlCreateActivationContext will always return this code since we call it with a completely invalid structure. Should fix boot on VMware-Hybrid testbot.
CORE-10843
svn path=/trunk/; revision=70697
- Whitespace fixes only in the disk code.
- Fix the name of the EXT2 FS driver.
- Move I/O initialization after Mm init so that we can properly read disk data into the correct buffers if needed (and I will need that).
svn path=/trunk/; revision=70695
Start splitting FreeLdr in the same spirit as our new UEFI boot manager/loader: split into a boot library, the boot manager code, and the NT loader.
- The boot library provides the basic support (read INI/INF files, memory management, debugging, ARC compatibility/emulation, ...).
- The boot manager code is FreeLdr proper.
- The NT loader is used for loading Windows or ReactOS. Because of that fact I rename its directory "windows" into "NTLDR" to underline the fact it can load NT-type OSes (more exactly version 5.x), to which both Windows 2k/XP/2k3 and ReactOS belong. The APIs will certainly be renamed "NtLdrXXX" instead of "WinLdrXXX".
- The general PE loader is put into the boot library since it is needed also by FreeLdr proper to be able to load SCSI drivers (on x86/64/... architectures; on ARC systems SCSI support is automatically provided).
svn path=/trunk/; revision=70692
- The PE code can be built as an executable, it works as expected and nothing changes (the size of the generated code doesn't change).
- Export the Scsi functions also on x86 MSVC builds. Because of that, increase the number of expected PE sections in the FreeLdr image check function. Note that x64 MSVC build do not have the Scsi code ready yet, hence it doesn't export the corresponding functions.
- The spec2def command should have the name of the generated PE file.
- Remove one hardcoded value.
During my investigations I noticed that using a section alignment of 0x400 for freeldr MSVC builds (instead of the default 0x1000) made the MSVC builds *bigger*. Furthermore, using the default alignment of 0x1000 makes the freeldr MSVC builds unbootable. I don't understand why. Maybe a freeldr guru knows that?
svn path=/trunk/; revision=70687
- Make BmMain stdcall as it's an entry point, the same way as ROSLOAD's OslMain.
[ROSLOAD]
- Fix a comment.
- Fix compilation on x64 and on GCC by specifying the entrypoint stack, exactly as what we do for KiSystemStartup in the kernel.
svn path=/trunk/; revision=70686
- Move the NTOS loader files that were scattered in many places into their own directory (now all that stuff is inside freeldr/windows).
- Split arch/arm/winldr.c into the real winldr code (going into freeldr/windows) and entry point code (going into arch/arm/entry.c).
svn path=/trunk/; revision=70683
Replace old bugzilla report IDs to their JIRA counterparts.
[LIBUSB]
The third parameter of IoRegisterDeviceInterface is a pointer (optional). Use NULL instead of 0.
svn path=/trunk/; revision=70680
- Initialize global variables to known default values.
- When Inbv initializes the display, reset the video mode *ONLY* if we do not have a custom boot logo (because otherwise we want to see our custom boot logo!). This also fixes the video mode used by ReactOS when booting it using Windows ntldr!
svn path=/trunk/; revision=70678
- Use defines instead of hardcoded values for partition type IDs.
- Add some support for installing ReactOS on EXT2 partitions.
- Add few code that will be needed when we support NTFS installation.
- Refactor InstallFatBootcodeToPartition and its auxiliary functions. CORE-4870
svn path=/trunk/; revision=70675
Time to (re)act!
Step 2/2: continue Giannis' UNC hack in Shell32:
- Implement the ILCreateFromNetworkPlaceW() helper, which is just Giannis' code to allow creating a hacky PIDL for enumeration.
- Implement the CNetFolderEnum class, which allows enumerating network places. So far, it's pretty basic (no tree structure) but, it does its job. It would be to improve
- Implement the CNetFolder::EnumObjects() function.
This commit, in itself, more or less obsoletes hackssign application. Indeed, now, you just need to go to your network places, to be able to browse your network shares (like VMware or VBox shares) provided you installed the VMware/VBox additions in your VM.
However, hackssign will remains in rosapps for now: we don't have any other way to assign a drive letter to a network place so far, and VMware doesn't provide such feature.
Furthermore, this is a big hack. And until we have a correct implementation, we can keep another hack along ;-).
Feel free to decently enjoy your network shares in ReactOS :-).
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70671
Time to (re)act!
Step 1/2:
- Implement WNetUseConnectionA() as a simple forwarder to WNetUseConnectionW().
This function should make it somehow, somewhen to Wine. Feel free to help the process by lighting cierges.
- Halplement WNetUseConnectionW() to match a really specific case: it can handle requests from VBoxTray and pass them properly to VBox NP.
In its current state, this function isn't to be shared with Wine.
Other calls (specifically without local path, nor network provider) aren't handled and will lead to an error.
But, in itself, this commit obsoletes rosvboxmgmt by making ReactOS able to autostart (on VBoxTray demand :-)) the VBox shared folders.
Furthermore, if you ask for a drive letter to be assigned to your shared folder, it will happen!
Now, in order to use VBox shared folders, just configure VBox to assign them a drive letter, install ReactOS, install VBox Guest Additions... Profit!
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70670
- Fix a typo in kernel32's manifest prober routine
- Don't RtlGetActiveActivationContext if it's already existing
- Improve actctx and ldr debug prints
- This fixes numerous LDR bugs, such as the famous bug with MSVCR90 CORE-7313, .NET installation issues CORE-7489 and, hopefully, many other. Thank you very much for putting your trust in me!
svn path=/trunk/; revision=70646
Import Wine commit:
- 80eb2fa08eb21ba9504438493fa66097ed03faf5, Add support for REG_EXPAND_SZ for providers path.
This fixes VMware network provider (vmhgfs.dll) not being able to be loaded in ReactOS.
CORE-10032
svn path=/trunk/; revision=70645
- Remove the code that hides the system menu and the cancel button. Users should be able to cancel the installation process.
- Add code to reboot ReactOS after completing or cancelling the wizard. It is disabled for now.
- Remove the groupbox on the device page.
- Resize / realign the controls on the drive page.
- Replace the listbox on the drive page by a list view.
svn path=/trunk/; revision=70643
- Fix height of the inner wizard pages.
- Do not show the header for the finish page.
- Remove the language selection page and the ReactOS logo because they have been moved to userinit.
- Start removing groupbox controls from the wizard pages. They just occupy a lot of space.
- Resize / realign the install type page and add some descriptive text to all languages.
- Allocate setup data from the heap and pass the setup data pointer to each wizard page.
- Move the drive wizard page (DriveDlgProc) to a separate file.
- Move the common declarations to a new header file.
svn path=/trunk/; revision=70638
[BOOTLIB]: Implement most of ImgpLoadPEImage. The checksum of the mapped image file matches the checksum in the flat PE file, meaning our load loop works as designed.
Next step are relocations and we'll be done.
svn path=/trunk/; revision=70632
[BOOTMGR/BOOTLIB]: Fix factorings that were incorrect but not noticed when bootmgr was the only bootlib user. Now with rosload in the picture, they became obvious.
[EFISYS]: BCD should not be on the EFISYS.BIN, only on the boot volume, just like a Windows DVD.
svn path=/trunk/; revision=70626
[BOOTMGR]: Stub support for boot errors.
[BOOTMGR]: Stubplement support for device creation for boot applications (only for fully specified devices)
[BOOTMGR]: Implement support for execution transfer, including recovery mode/sequence.
[BOOTMGR]: Implement support for launching a boot entry.
[BOOTLIB]: Support for EFI Firmware device enumeration, driver attachment, and comparison.
[BOOTLIB]: Support for appending BOOLEAN or INTEGER BCD options.
Next step is the PE loader.
svn path=/trunk/; revision=70618
[BOOTMGR]: Stubplement support for catching keystrokes right before boot (such as F8, F10). No key input is actually read.
Boot Manager now attempts to load the winload entry as part of BmpLaunchBootEntry.
svn path=/trunk/; revision=70615
[BOOTMGR]: Implement boot sequence population. We correctly detect our winload.efi entry in the BCD hive.
[BOOTMGR]: Document more application entry flags.
[BOOTLIB]: Document and implement BCD object description parsing. Based off BCD Reference Guide / Geoff Chappel's website.
[BOOTLIB]: Add support for appending a boot option to an entry.
svn path=/trunk/; revision=70614
[BOOTLIB]: Implement BlGetOptionGuid. All BCD option APIs should now be implemented.
[BOOTLIB]: Fix memory corruption + out-of-bounds bugs in BlAppendBootOptions, which made the BCD options remain empty.
svn path=/trunk/; revision=70611
[BOOTLIB]: Fix a bug in BCD parsing which was causing massive heap corruption. Became evident with the increased complexity of the new BCD hive.
svn path=/trunk/; revision=70610
[BOOTLIB]: Implement BCD element deletion (bootreg: implement key deletion)
[BOOTMGR]: Implement BL_FATAL_ERROR_BCD_ENTRIES fatal error.
[BOOTMGR]: Stubplement support for memory list data parsing (when memtest.efi will run), and stubplement support for boot persistent data blobs.
[BOOTMGR]: Stubplement boot sequence support, create stub for boot entry population.
[BOOTMGR]: Stubplement boot entry selection, create stub for boot entry enumeration.
Mostly factoring-level changes to get us closer to the needed code paths.
svn path=/trunk/; revision=70609
Add two dialogs that are shown when the LiveCD is booted. The first dialog is used to select the language and keyboard layout. The second dialog is used to either start the shell or the GUI installer. Language and keyboard layout selection are still work in progress.
svn path=/trunk/; revision=70607
- Now that both FreeLdr and MKHIVE use the regular (aka. the "NT-style public") CMLIB functions, get rid of the "old-style public" cmlib functions, with the exception of CmCreateRootNode and CmPrepareHive which remain for now due to a slight different implementation difference between NT and ours. Remove the cmtools.c file containing those old functions.
- Remove the now-deprecated VALUE_LIST_CELL structure (which was an old version of CELL_DATA:KeyList).
- When freeing hive bins (in HvpFreeHiveBins), use the storage number count stored in the hive instead of a constant value.
- Flat hives have only one storage type (they are read-only and reside only in memory).
CORE-10802
CORE-10793
svn path=/trunk/; revision=70605
- Fix two warnings in GCC Linux build (in KeBugCheckEx and in a call to the helper function RepGetValueData).
- Remove two unused RTL ANSI functions.
- Fix USHORT vs. ULONG type misuage.
- Fix SIZE_T vs. ULONG usage.
svn path=/trunk/; revision=70603
- Make mkhive tool correctly initialize the Max(Value)[Name|Data]Length members of HHIVE structure. CORE-10794 #resolve
- Add default security hive descriptors to our mkhive-built registry hives. CORE-10795 #resolve
- Make MKHIVE fully using the CMLIB library. CORE-10802
CORE-10793
svn path=/trunk/; revision=70602
- One less hardcoded number.
- Minor code formatting.
[NTOS]
- Minor code formatting (cmvalche.c).
- The key-node timestamp can usually be retrieved without using another temporary value.
- The security descriptor copy allocated for the hive can be freed after it was assigned to it.
[MKHIVE]
- Minor formatting of the source headers.
- Update the list of registry value types; add another error code (to be used later on).
- Remove now unused "ntoskrnl.h" header.
CORE-10793
svn path=/trunk/; revision=70601
- Add "aif" and "aiff" to the supported MCI Extensions.
- Remove an extra erroneous "rmi" entry that was wrongly marked as being of type "MPEGVideo".
svn path=/trunk/; revision=70597
- Since the registry handling rewrite of Timo in r61595 all the freeldr-specific registry structures got deprecated. Remove them, as well as few other prototypes of non-existing functions.
- Use the CMLIB registry flags instead of some (already-removed) flags --> fix build.
svn path=/trunk/; revision=70594
- Do not define _NTOSKRNL_ at compilation time, keep only the _NTSYSTEM_ define (and NASSERT).
- Remove deprecated unused private flags.
- Modify CmCreateRootNode to make it look more similar to the CmpCreateRootNode function of ntoskrnl/config/cmsysini.c, to ease future code adaptation in cmlib & mkhive and then deprecate CmCreateRootNode in favour of CmpCreateRootNode.
svn path=/trunk/; revision=70593
- Fix HBLOCK_SIZE vs. HSECTOR_SIZE mix-ups in HvpGetHiveHeader.
- Add a function to create cluster-aligned hive base blocks (HBASE_BLOCK) based on the existing code of HvpGetHiveHeader, and use it everytime we need to allocate HBASE_BLOCKs.
- Keep the actual base block size in the BaseBlockAlloc member, and use this value for the "quota" parameter when we free the blocks.
- Introduce & use a function to initialize the hive file name array (mainly used for debugging purposes).
- "HvpInitializeMemoryInplaceHive" should read "HvpInitializeFlatHive" instead since this function is used to initialize a flat hive. Memory-in-place hives are a different thing.
- Fix some memory leaks in the error paths of HvLoadHive.
- Initialize some additional hive members in HvInitialize(Hive).
svn path=/trunk/; revision=70582
- Fix some structure definitions to match Win2k3 symbols (define also _SECURITY_DESCRIPTOR_RELATIVE for the host-tools so that the CM_KEY_SECURITY structure is always correctly defined).
- Complete other structure definitions with respect to the NT version defined at compile time; http://msdn.mirt.net/ was used as the source of information.
- Add the definition of CM_BIG_DATA for supporting big valued keys (see also http://www.msuiche.net/2009/06/07/windows-vista-and-later-registry-secrets/ for what they are).
[NTOS]
- Move CM functions defined in the CMLIB out of the internal ntoskrnl headers.
svn path=/trunk/; revision=70579
Let's add hacks to glue hacks together:
In case rosvboxmgmt is started with its current directory not being the directory where it is along with hackssign_client.exe, then autoassign fails finding the hackssign client executable and thus, fails assigning drive letter.
This is what happens when you starts rosvboxmgmt on boot with shell.
So, when using autoassign, first look for the location of rosvboxmgmt and set our current directory there.
This fixes rosvboxmgmt autoassign not working on boot.
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70578
Resolution selection improvement patch by Mark Jansen:
- Fix a bug that allowed only a subset of resolutions to be visible.
- Update the preview on the fly when dragging the resolution slider.
- Fix a bug that prevented the monitor preview from properly invalidating the preview, leaving the old preview partially visible.
Needs to be included in 0.4 branch.
CORE-10786
svn path=/trunk/; revision=70577
- Use a single wipe function (FatWipeSectors) for FAT12, FAT16 and FAT32.
- Code has been reviewed by Hermès and me. Ready for merge into 0.4.
svn path=/trunk/; revision=70576
Remove a very old hack (that dated back from the Configuration Manager rewrite): now the hives are already correctly loaded in memory, therefore there is no need to call CmCreateRootNode after creating a hive, because the root node is subsequently initialized with calls to CmpCreateLinkNode. The comment saying that calls to CmCreateRootNode can be removed when CmpCreateLinkNode is used, is now in order. This means we correctly parse & mount the hives. The CmCreateRootNode function is now only used in the 'mkhive' tool in order to create file hives, since this tool needs to create new hives from nowhere (that's why also our bootloaders do not need this function: they only load & parse existing hive files).
The fact that this hack remained caused us hidden troubles: some hives (SAM, SOFTWARE) had "two" root keys: a first one that was unused (which was created by this hackish call), and the second one which was the one used (and was created by CmpCreateLinkNode as expected).
svn path=/trunk/; revision=70575
- Remove the Advanced page for non-admin users.
- Disable the 'complex script' and 'east asian language' checkboxes for non-admin users.
svn path=/trunk/; revision=70571
- Implement retrieving export names from forwarders
- Add error() function to print errors
- Refactor image/symbol loading
- Fix some bugs and add some hacks, so that it compiles in out tree
- Add to build
svn path=/trunk/; revision=70569
- The BaseBlock->Length member is really the size in bytes of the full hive, minus the header (base) block size.
- Remove the last remnents of the "hack of doom" aka. the one similar in magnitude to the US national debt, addendum to r61621 and r26712. The FileSize can be computed with BaseBlock->Length.
svn path=/trunk/; revision=70565
- Use the standard "CmHive" naming (that is used in all the rest of the 'config' module) for the first parameter of CmpInitializeHive.
[CMLIB]
- Fix the order of the 'HiveFlags'/'FileType' parameters in HvInitialize (the function 'CmGetSystemControlValues' in ntoskrnl/config/cmcontrl.c got them right already).
svn path=/trunk/; revision=70564
- HV_BLOCK_SIZE and HBLOCK_SIZE are the same thing; prefer the newly introduced HBLOCK_SIZE define.
- Improve the HvGetCell* macros.
- Add next to the defined hive signatures what their corresponding strings are (for documentation purpose).
- Some whitespace fixes in the headers.
svn path=/trunk/; revision=70561
Set the focus to the treeview when the main window recieves a WM_ACTIVATE message.
CORE-10769 #resolve #comment Fixed in r70560.
svn path=/trunk/; revision=70560
Small utility to auto-create spec files. Uses MS symbol server to evaluate data not available in the export table. Features:
- Parse export table for export names and forwarders
- Find function name for nameless exports
- Recognize calling convention / data exports
- Analyze function parameters
svn path=/trunk/; revision=70559
[BOOTMLIB]: Implement a few more BCD option functions.
Minus a PE loader (BmpLaunchBootEntry) and some more BCD parsing (BmpGetSelectedBootEntry) with some glue in between, the UEFI Boot Manager is nearly done. Once it is, it will be time to implement the actual loader -- Winload.efi. The good news is that we'll have all of bootlib already good to go (with all its hacks). The bad news is that Winload will turn on paging, so all those unimplemented paths and UEFI mode switches will have to be made to work.
svn path=/trunk/; revision=70556
- #if _WIN32 --> #ifdef _WIN32
- Define the "max" macro only if needed.
- Fix a comment.
- Plug a memory leak ('case_name' not freed in the "!*case_name" case of the dir_hash_create_dir function).
- Return a non-zero value (the file structure pointer) from dir_hash_add_file in case we succeed in creating the file in the ISO structure, and NULL otherwise (i.e. when the filename is empty). In that latter case we fail the hard way. No-named files are completely invalid in ISO archives. Now, the following testcase (e.g. to be added into bootcd.lst):
reactos/reactos.exe/=C:/test/reactos.exe
fails as expected (before, we were able to create a directory named "reactos/reactos.exe", and inside, a no-named file with the contents of C:/test/reactos.exe).
svn path=/trunk/; revision=70553
- Optimize splitting paths (merge chop_dirname and chop_filename functions).
- Make the code working as expected for the following testcases (you can test these by adding the following lines into e.g. bootcd.lst):
testdir1 --> create "testdir1" in the root directory.
testdir2/ --> create "testdir2" in the root directory. No no-named subdirectory is created.
testdir3// --> create "testdir3" in the root directory. No no-named subdirectory is created.
dir1//\/dir14///\//\// --> create "dir1" in the root directory, and "dir14" inside dir1. No no-named subdirectory is created.
EFI/ReactOS/Boot/Fonts//chs_boot.ttf=C:/somepath/chs_boot.ttf --> create the directories "EFI/ReactOS/Boot/Fonts", no no-named subdirectory is created, and create in the Fonts directory the file "chs_boot.ttf".
Before those changes, empty no-named (therefore, invalid) subdirectories were created in the second, third and fourth testcases, and an obscure error was returned in the fifth testcase.
svn path=/trunk/; revision=70552
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.