Dashboard

[NTOBJSHEX]

Make nt object symlinks work more like shortcuts. Fixes the addressbar not quite knowing what to show when you click on a symlink.

[NTOBJSHEX]

Make GCC happy.

[NTOBJSHEX]

* Added a common superclass for the ntobj and registry folders.

* Refactored the ntobj and registry folders to make use of this superclass.

* Removed the concept of a "pidl helper", since it works best to just have the methods be part of the folders.

* Cleaned up the ItemID comparison logic.

    • -95
    • +55
    /trunk/reactos/dll/shellext/ntobjshex/regfolder.h
    • -0
    • +676
    /trunk/reactos/dll/shellext/ntobjshex/foldercommon.h
    • -0
    • +10
    /trunk/reactos/dll/shellext/ntobjshex/foldercommon.cpp
    • -716
    • +198
    /trunk/reactos/dll/shellext/ntobjshex/ntobjfolder.cpp
[QCKLNCH]

-Added Browse Folder Interface (under test).

-Now buttons can show respective icons.

-Minor code cleanup.

[MPR]

Import Wine commit:

- 8d461c1f42b0b667b2aa6a235d007eea1dd6f561, Don't stop enumeration on the first failing network provider.

This fixes 'net use' stoping connections enumeration when a network returns an error or no connection.

CORE-13475

[MPR]

Import Wine commit:

- 51b4a42969366cc409808aded23d3602a34206e2, Properly handle the count set to -1 when enumerating connections.

This fixes 'net use' not being able to enumerate multiple connections served by multiple network providers.

CORE-13475

    • -5
    • +10
    /trunk/reactos/dll/win32/mpr/wnet.c
[NTOS]: Improve a bit CmpDeepCopyKeyInternal():

- Normally getting the SrcNode and DestNode must succeed (checked with assert);

- Set the DestNode Flags member, in particular when this is the new root node of the saved registry hive;

- Copy the key class cell (OK), and the key security cell (currently done in a hackish way; proper way: call the CmpAssignSecurity* function);

- Add more clean-up on failure;

- Warn in code about the fact that CmpDeepCopyKeyInternal is recursive, and will easily exhaust kernel stack. This function will need to be reworked later...

CORE-10793 CORE-10796

    • -11
    • +81
    /trunk/reactos/ntoskrnl/config/cmapi.c
[NTFS] - Fix IncreaseMftSize(); check IrpContext to see if waiting for exclusive access to the MFT is allowed. As pointed out by Pierre.
[QCKLNCH]

-Added IShellFolderBand and stubbed its methods.

-Implemented InitializeSFB.

-Tested enumeration of IShellFolder within CISFBand.

[RAPPS]

* Added individual icons loading for each app

The icons are loaded by the Name field in the DB for the proof-of-concept.

It falls back to default icon if none present.

TODO: It would be best to make another entry there for icon name.

It is clear that, if this function needs to be again called with PreviousMode == KernelMode, such a handle conversion must be performed. And... the file handle must be converted anyways to kernel m...

It is clear that, if this function needs to be again called with PreviousMode == KernelMode, such a handle conversion must be performed.
And... the file handle must be converted anyways to kernel mode handle, because it is used as a hive file handle internally by the Cm function(s).
So this code (that is currently #if'ed 0 out) will have to be enabled (later, in v2 of this patch).

See the same comment in the other function.

See the same comment in the other function.

For NtSaveKeyEx and NtSaveMergedKeys, both of these functions call CmpInitializeHive, HvWriteHive, etc... and it looks to me they possibly want to run with PreviousMode == KernelMode. I would like ...

For NtSaveKeyEx and NtSaveMergedKeys, both of these functions call CmpInitializeHive, HvWriteHive, etc... and it looks to me they possibly want to run with PreviousMode == KernelMode.
I would like to hear you about that

For NtSaveKeyEx and NtSaveMergedKeys, both of these functions call CmpInitializeHive, HvWriteHive, etc... and it looks to me they possibly want to run with PreviousMode == KernelMode. I would like ...

For NtSaveKeyEx and NtSaveMergedKeys, both of these functions call CmpInitializeHive, HvWriteHive, etc... and it looks to me they possibly want to run with PreviousMode == KernelMode.
I would like to hear you about that

These probe & capture functions were strongly inspired from the Obp* functions I mention below. If you think they can be useful elsewhere than in this module, please suggest me where-else to place ...

These probe & capture functions were strongly inspired from the Obp* functions I mention below.
If you think they can be useful elsewhere than in this module, please suggest me where-else to place them.

I hate this word: https://en.wikipedia.org/wiki/Quickie ; https://en.wiktionary.org/wiki/quickie
Was renamed to keep it "in sync" with the equivalents in NtLoadKeyEx.

Was renamed to keep it "in sync" with the equivalents in NtLoadKeyEx.

A DPRINT is better than an ASSERT(FALSE); in the kernel, especially when the unimplemented stuff is not vital for the rest of the code to run (we would just gracefully return an error status code)....

A DPRINT is better than an ASSERT(FALSE); in the kernel, especially when the unimplemented stuff is not vital for the rest of the code to run (we would just gracefully return an error status code).
I use SEH here because the object name (buffer) comes potentially from user-mode.

Let me guys now what you think about that.

Let me guys now what you think about that.

Flag added because, the RootDirectory is now a kernel handle, and CmLoadKey will call ObOpenObjectByName with accessmode == KernelMode (indeed, most, if not all Cm functions expect to be called wit...

Flag added because, the RootDirectory is now a kernel handle, and CmLoadKey will call ObOpenObjectByName with accessmode == KernelMode (indeed, most, if not all Cm functions expect to be called with kernel mode parameters).

Forget about this one https://code.reactos.org/static/olpro3/2static/images/wiki/icons/emoticons/smile.gif

Forget about this one

What do you think about the necessity of probing here? Is capturing needed too?

What do you think about the necessity of probing here? Is capturing needed too?

The post callback should be done inconditionally, similar to what is done elsewhere in this file.

The post callback should be done inconditionally, similar to what is done elsewhere in this file.

What you guys actually think about the necessity of that?

What you guys actually think about the necessity of that?

This one was missing (and for NtEnumerateKeyValues, I should add the **Align64 checks too).

This one was missing (and for NtEnumerateKeyValues, I should add the **Align64 checks too).

This is adapted from a private patch from Thomas Faber. I added the 'ObjectType' parameter, because so far I use it for both registry keys and file (IO) objects (aka as the replacement for IoConver...

This is adapted from a private patch from Thomas Faber.
I added the 'ObjectType' parameter, because so far I use it for both registry keys and file (IO) objects (aka as the replacement for IoConvertFileHandleToKernelHandle).

Improve parameters probing in Cm' NT apis
Improve parameters probing in Cm' NT apis
[NTOBJSHEX]

* Fix gcc build.

* Remove magic.

* Address nitpicks.

[NTOBJSHEX]

Fixed registry value display for values that are too long to fit inside the shitemid.

Set the maximum for shitemid embedding back to a smaller number.