Actually enable again the hack...
For whatever reason, it works with my WC but not with clean trunk...
Where are the you, magic and silent patch that fixes it? :-(
svn path=/trunk/; revision=65120
Finally, disable again the IopParseDevice hack.
Just for the record, opening a volume with FILE_READ_EA or FILE_READ_DATA is legal and works in Windows (NTFS Info for instance opens it with GENERIC_READ).
Let's hope we can rid of this hack forever now... It's been with us since 2006!
svn path=/trunk/; revision=65119
Don't over-reference our FCB in case of volume opening (vfatAttachFCBToFileObject() already references it).
This fixes 1st stage and beyond with IopParseDevice hack off
svn path=/trunk/; revision=65118
Now that we start to honor the storage stack (ie, without the IopParseDevice hack ;-)), we have to let FSDs forward device IOCTLs.
This allows back copying files on 1st stage
svn path=/trunk/; revision=65116
Don't attempt to mount any partition just because we have a valid partition table...
Restrict this to them being marked as FAT or compatible.
svn path=/trunk/; revision=65115
* Hopefully fix the start menu closing randomly. May have side-effects, but I think it's best to be conservative here and prefer the possibility of the menu staying open unexpectedly, rather than closing unexpectedly.
svn path=/branches/shell-experiments/; revision=65114
Implement support for the FSCTL_GET_NTFS_VOLUME_DATA user request in NtfsUserFsRequest().
This makes NTFSInfo capable of working in ReactOS :-). A picture to show it: http://www.heisspiter.net/~Pierre/rostests/NTFS_info.png
Yes, NTFS Zone isn't computed yet. I'll have a look at it later on.
This doesn't fix nfi.exe though. If it can get its data, it cannot continue. It loops forever on a FSCTL we don't handle yet.
CORE-8725
svn path=/trunk/; revision=65112
* Allow the static items in the Favorites menu to be received by the shell browse window.
* Handle the Organize Favorites menu item by opening either the USER favorites, or the COMMON version of the folder.
[RSHELL]
* Send the proper HWND together with the HMENU, when sending callbacks.
svn path=/branches/shell-experiments/; revision=65111
Finally, move old stuff back from disk.sys to ntfs.sys now it can be properly reached on volume opening:
- Halfplement NtfsUserFsRequest() and add support for IRP_MN_USER_FS_REQUEST in NtfsFsdFileSystemControl()
- Also, use the proper FSCTL code: FSCTL_GET_NTFS_VOLUME_DATA which exists and is documented instead of FSCTL_GET_NTFS_VOLUME_DATA. Spotted by Christoph.
CORE-8725
svn path=/trunk/; revision=65106
Revert r65097 and r65090.
Thanks to r65104, now the FSCTLs go to the right place: the FSDs!
Thanks to Thomas for pointing out that NTFSinfo was really talking with the FSD on Windows and not to disk.sys
CORE-8725
svn path=/trunk/; revision=65105
Disable the IopParseDevice hack. It appears it was triggered on volume opening and thus was breaking volume opening which were then forwarded down to disk.sys.
Not sure how legit it is to have it anylonger.
At least, disabling it reenables volume opening in ReactOS and associated FSCTL!
Alex & Aleksey, can you review please?
CORE-8725
svn path=/trunk/; revision=65104
- add metrics to classic themes (the flag 0xb0001 will result in a kinda esoteric value of type REG_QWORD)
- fixes switching from Lautus back to a classic theme
CORE-8718
svn path=/trunk/; revision=65100
* Fix a 'pasta.
* Open something less stupid when clicking on "Is this copy legal?" in the Help menu.
svn path=/branches/shell-experiments/; revision=65099
* Fix assumption that the USER folder will always exist and only the COMMON folder may be missing. Allows the Start Menu to work in livecd.
[BROWSEUI]
* Apply the same fix to the Favorites folder, although the LiveCD does not currently have the folder so it will not work regardless.
svn path=/branches/shell-experiments/; revision=65098
Actually, sysinternals used to release the source code of NTFSInfo (thanks Christoph!), so we know a bit more about the interface of the user FS request.
So, implement a bit more of the interface to validate it properly works (and so far, it does!)
CORE-8725
svn path=/trunk/; revision=65097
Get ready to enter into the 10th dimension... So:
- Implement support for IRP_MJ_FILE_SYSTEM_CONTROL. Yes... You read well! So, implemented a ScsiDiskFileSystemControl() function. The way it is added to the DriverObject is a big hack, class2 is not supposed to have such requests, so, we do it in its back. Fear!
- Stubplement the NtfsRussinovichism() function. This is the only function we're supposed to call with IRP MJ FSCTRL and with IRP MN USRFSRQST. Its purpose (when its implemented) is to reply back to the M. Russinovich tools (NFI & NTFSInfo) so that they can directly dump NTFS information without going into NTFS driver. They kind of bypass it.
We do all agree this is a ugly hack. But it exists in Windows, as these tools work in Windows. And it would be useful they actually work in ReactOS.
Soon, we'll be able to publish a book "ReactOS Internals" where we speak about undocumented FS controls to dump NTFS information to show how well our NTFS works ;-).
svn path=/trunk/; revision=65090
* CMenuBand: Refcount before assigning a return pointer.
* CMenuDeskBar: Revert change and protect the refcounting in case I was wrong to assume there will be exactly one OnFinalMessage for each OnCreate.
* CMenuToolbars: Add a debug message.
* CStartMenu: Refcount correctly.
svn path=/branches/shell-experiments/; revision=65088
- addendum to revision 64877 which slightly changed UserDrawCaption's logic
- fixes window title being drawn over the icon
svn path=/trunk/; revision=65087
- Move functions to the appropriate source files, zap hacks.c, stubs.c, stubsa.c and stubsw.c (sorry for the noise, but this mess had to be cleaned up)
svn path=/trunk/; revision=65086
For now, disable the VfatSetRenameInformation() asserts in trunk.
They can be reenabled for testing by commenting "#define NASSERTS_RENAME" out.
CORE-8721 #resolve #comment Fixed with r65085
svn path=/trunk/; revision=65085
Finally, implement NtfsGetFreeClusters() which will just read the $Data stream from $BITMAP file record to get the amount of free clusters to allow estimating the free space on a volume.
The implementation is likely under-optimized... But wwell, the rest of the FSD is not better. Who talked about caching?! ;-)
Because pictures are more relevant than words in such case: http://www.heisspiter.net/~Pierre/rostests/NTFS_disksize.png
svn path=/trunk/; revision=65082
* Properly return the toolbar status on QueryStatus.
* Properly make use of the returned into from QueryStatus.
svn path=/branches/shell-experiments/; revision=65080
[user32]
- Properly notify the theme engine that the caption needs to be repainted on WM_SETICON
- Fixes a classic frame appearing when themes are enabled and we navigate to a different folder
svn path=/trunk/; revision=65077
- Stop the log from being spammed when the session is idle and no screensaver is set
- Also checking if my login still works :)
svn path=/trunk/; revision=65076
- Disable querying if audio is muted or not for now.
- Hides an assert that happened in wdmaud.drv
svn path=/branches/shell-experiments/; revision=65073
- Return a readable folder name when SHGDN_FORADDRESSBAR was specified
- We no longer show GUIDs in the address bar
svn path=/branches/shell-experiments/; revision=65072
- Actually give focus to the start menu when CMenuDeskBar::Popup is called
- Fixes opening and navigating the start menu with the keyboard
svn path=/branches/shell-experiments/; revision=65071
- Use IMenuPopup_OnSelect to close the start menu when the win key is pressed.
- Fixes closing the start menu (on windows and on reactos)
svn path=/branches/shell-experiments/; revision=65070
- Send the HSHELL_TASKMAN notification to the shell when the windows key is pressed
- Needed to open and close the start menu with the keyboard
svn path=/branches/shell-experiments/; revision=65069