Commit graph

69125 commits

Author SHA1 Message Date
David Quintana 504d12bfff [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.

svn path=/trunk/; revision=75175
2017-06-23 21:28:36 +00:00
Shriraj Sawant 02f6a567fa [QCKLNCH]
-Added Browse Folder Interface (under test).
-Now buttons can show respective icons.
-Minor code cleanup.

svn path=/branches/GSoC_2017/shellext/; revision=75174
2017-06-23 20:05:01 +00:00
Pierre Schweitzer f369525725 [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

svn path=/trunk/; revision=75173
2017-06-23 19:29:31 +00:00
Pierre Schweitzer f8e9e5ec4b [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

svn path=/trunk/; revision=75172
2017-06-23 19:21:29 +00:00
Hermès Bélusca-Maïto ab30fb1d60 [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

svn path=/trunk/; revision=75171
2017-06-23 17:33:44 +00:00
Shriraj Sawant ba53ff00eb [QCKLNCH]
-Added IShellFolderBand and stubbed its methods.
-Implemented InitializeSFB.
-Tested enumeration of IShellFolder within CISFBand.

svn path=/branches/GSoC_2017/shellext/; revision=75169
2017-06-23 13:44:28 +00:00
David Quintana 3dae17b0e7 [NTOBJSHEX]
* Fix gcc build.
* Remove magic.
* Address nitpicks.

svn path=/trunk/; revision=75167
2017-06-22 18:00:57 +00:00
David Quintana cdb3d06d8d [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.

svn path=/trunk/; revision=75166
2017-06-22 17:49:42 +00:00
Hermès Bélusca-Maïto 624f4e9319 [WINTERNL.H]: Fix the value of OBJ_VALID_ATTRIBUTES, and add the definition for OBJ_FORCE_ACCESS_CHECK.
svn path=/trunk/; revision=75165
2017-06-22 15:41:44 +00:00
David Quintana eb4e4b6e9f [NTOBJSHEX]
* Fixed NT object symbolic link target retrieval.
* Fixed NT path parsing (didn't consider paths sub sub-folders in them).
* Fixed BindToObject to properly resolve the target path for symlinks.
* Made the maximum embedded content length for registry keys a bit bigger.

svn path=/trunk/; revision=75160
2017-06-21 22:32:34 +00:00
Hermès Bélusca-Maïto 04201ba762 [CMLIB]: Use the generic allocator functions, and fix build.
svn path=/trunk/; revision=75159
2017-06-20 23:29:54 +00:00
Hermès Bélusca-Maïto 903ac43860 [CMLIB]: Implement the dynamic array of the hive cell reference tracker.
svn path=/trunk/; revision=75158
2017-06-20 23:11:53 +00:00
David Quintana 05bae83b22 [NTOBJSHEX]
Improve the GetDisplayNameOf logic from "badly broken" to "seems to work". I'm not convinced it's perfect, but it's better than before.

svn path=/trunk/; revision=75157
2017-06-20 23:03:24 +00:00
David Quintana 3832e3a6d8 [NTOBJSHEX]
Fix crash showing registry keys that have values.
CORE-13456 #resolve

svn path=/trunk/; revision=75156
2017-06-20 21:32:42 +00:00
Giannis Adamopoulos 6af2c49b5f [WIN32K:NTUSER] -IntSetThreadDesktop: Don't close the previous desktop handle. Fixes a lot of tests. Based on a patch by Sebastian Gasiorek. CORE-13463
svn path=/trunk/; revision=75154
2017-06-20 19:26:37 +00:00
Giannis Adamopoulos 7dea13d496 [USER32_APITEST] -Initial tests for desktop reference numbers.
svn path=/trunk/; revision=75153
2017-06-20 19:25:10 +00:00
Thomas Faber 60382e46c8 [RTL]
- Correctly use the page heap's lock in RtlLockHeap/RtlUnlockHeap when appropriate. Fixes assertion failure when Global/Local memory allocations are performed concurrently with DPH enabled.

svn path=/trunk/; revision=75152
2017-06-20 17:15:43 +00:00
Hermès Bélusca-Maïto 03a1f14142 [USER.EXE]: Addendum to r75126: add a (dummy) version resource to USER.EXE so as to fix error 1812 "ERROR_RESOURCE_DATA_NOT_FOUND" encountered when starting the DirectX 9.0 installer. From patch by Stas'M, thanks!
CORE-13462

svn path=/trunk/; revision=75151
2017-06-20 16:44:40 +00:00
Thomas Faber e7e6f2ec5f [NTOS:MM]
- In MiDeletePte, check the ReferenceCount of transition PTEs, not the ShareCount (which is actually u2.Blink, since the page is in a modified/standby list). Also don't reset the PageLocation, since MiDecrementReferenceCount expects it to be anything but ActiveAndValid.
Fixes physical page leaks when using DPH, or other code that sets PAGE_NOACCESS.
CORE-13311 #resolve

svn path=/trunk/; revision=75150
2017-06-20 15:51:47 +00:00
Colin Finck ecd9852691 That shouldn't have been committed in r75125. Thanks Thomas!
svn path=/trunk/; revision=75149
2017-06-20 14:48:26 +00:00
Colin Finck b29844edd8 [LOCALSPL]
Add the missing root backslash to the symbolic link path. Fixes CORE-13457

svn path=/trunk/; revision=75148
2017-06-20 06:08:30 +00:00
Hermès Bélusca-Maïto d5ed3d00c5 [FILESYSTEMS]: Fix printf-like counted string specifiers.
svn path=/trunk/; revision=75147
2017-06-20 00:45:07 +00:00
Hermès Bélusca-Maïto 2716a86ca7 [NTOS:CM]: Simplify code by using suitable assertion macro.
svn path=/trunk/; revision=75146
2017-06-19 23:18:42 +00:00
Jérôme Gardou cf62382937 [DDK]
- Use FORCEINLINE where appropriate

svn path=/trunk/; revision=75145
2017-06-19 21:17:17 +00:00
Hermès Bélusca-Maïto 547949716c [NTOS]: Addendum to r75142: Use strsafe printf functions (suggested by Thomas).
svn path=/trunk/; revision=75144
2017-06-19 20:37:36 +00:00
Hermès Bélusca-Maïto a449c39c25 [CMLIB][NTOS]: Use correct parameter type for the 4th parameter of CmpGetValueData().
[CMLIB]: Fix debug.h inclusion.
[NTOS]: Use RtlCopyUnicodeString() to initialize the contents of FullName.

svn path=/trunk/; revision=75143
2017-06-19 20:14:09 +00:00
Hermès Bélusca-Maïto 38274203e7 [NTOS]: Fixes & improvements:
- Fix a bug in CmpInitHiveFromFile(): correctly set the MaximumLength value of NewHive->FileFullPath;
- Code simplification: no need to use temporary ANSI string operations followed by UNICODE conversion, when one can do the same thing directly in UNICODE.
- Use NULL for NULL handles.

svn path=/trunk/; revision=75142
2017-06-19 20:07:15 +00:00
Hermès Bélusca-Maïto f4518d125d [NTOS]: Improve parameter namings in CmpLinkKeyToHive() and some of its DPRINTs; use UNICODE_NULL where needed.
svn path=/trunk/; revision=75141
2017-06-19 20:04:25 +00:00
Mark Jansen 7117ea3375 [WIN32SS] Rewrite GetFontFamilyInfoForSubstitutes to use the subsitute list loaded at boot. Patch by Katayama Hirofumi MZ. CORE-13064
svn path=/trunk/; revision=75140
2017-06-19 20:00:36 +00:00
Hermès Bélusca-Maïto e4ca76000c [NTOS]: Improve some DPRINTs, and variables naming + buffer data type in CmpAddToHiveFileList().
svn path=/trunk/; revision=75139
2017-06-19 19:55:14 +00:00
Hermès Bélusca-Maïto b17ce9c805 [NTDLL_APITEST]: Temporarily disable part of the NtLoad/UnloadKey test (related to force-unload a hive while some handles to subkeys are still opened), because this creates memory corruptions, due to the fact we currently don't perform force-unloads correctly.
CORE-13448

svn path=/trunk/; revision=75138
2017-06-19 19:50:49 +00:00
Shriraj Sawant aa5d11c9c2 [QCKLNCH]
-Added a sample toolbar.
-Tested via CISFBand.

svn path=/branches/GSoC_2017/shellext/; revision=75137
2017-06-19 19:19:10 +00:00
Hermès Bélusca-Maïto 87cb029a9a [NTOS]: Fix the ObpLookupObjectName() prototype in regard to r75133.
svn path=/trunk/; revision=75136
2017-06-19 16:47:45 +00:00
Mark Jansen 939e841f4a [APPHELP] Implement Sdb[Un]packAppCompatData and SdbGetAppCompatDataSize. CORE-13284
svn path=/trunk/; revision=75135
2017-06-19 16:37:47 +00:00
Hermès Bélusca-Maïto 3c1c6952b7 [NTOS]: Avoid initializing variables within if-conditions.
svn path=/trunk/; revision=75134
2017-06-19 16:30:17 +00:00
Hermès Bélusca-Maïto 5cb03586f5 [NTOS]: Revert the pool tag change from r75128, and explain in comment why we cannot actually use it.
svn path=/trunk/; revision=75133
2017-06-19 16:29:44 +00:00
Hermès Bélusca-Maïto 8820136bd2 [NTOS]: Fix typos.
svn path=/trunk/; revision=75132
2017-06-19 15:26:08 +00:00
Mark Jansen 8f2f019415 [APPSHIM_APITEST] Addendum to r75041, add a missed line.
svn path=/trunk/; revision=75131
2017-06-19 15:24:05 +00:00
Mark Jansen 7cc3312dde [SHELL32] Partially sync shlexec with wine staging 2.9 CORE-13362 CORE-13407
svn path=/trunk/; revision=75130
2017-06-19 15:04:20 +00:00
Giannis Adamopoulos 615f2ccd2f [ATL]
-Add a new template called CComQIIDPtr and its partner I_ID macro. Its purpose is to be a gcc compatible version of CComQIPtr. 
-CComQIIDPtr<I_ID(Itype)> is the gcc compatible version of CComQIPtr<Itype>
- WARNING: this is not tested yet.

svn path=/trunk/; revision=75129
2017-06-19 14:52:51 +00:00
Hermès Bélusca-Maïto f43b456462 [NTOS]: Minor fixes:
- Use NULL instead of 'zero' for setting a handle / pointer to NULL;
- Don't hardcode an array size; fix a comment;
- Use ExFreePoolWithTag();
- Whitespace fix.

svn path=/trunk/; revision=75128
2017-06-19 14:48:59 +00:00
Giannis Adamopoulos d19f4a3169 [SHELL32]
-Rename constructors from Class_Creator to Class_CreateInstance. Prepend the ones that are exported from rshell with RSHELL_. The reasoning is that rshell will always use our code but whether or not internal classes will be used in shellmenu lib will be controlled by preprocessor definitions in shellmenu.h

[BROWSEUI]
-Rename more constructors to use the _CreateInstance suffix.

[RSHELL]
- The functions that let rshell export some objects have the RSHELL_ postfix but they are not exported as such. 

[EXPLORER]
- Rename _CStartMenu_Constructor to _CStartMenu_CreateInstance.

svn path=/trunk/; revision=75127
2017-06-19 14:27:51 +00:00
Hermès Bélusca-Maïto ee591f5b01 [USER.EXE]: Add a *stub* user.exe to make the DirectX 9.0 installer happy (it searches user.exe for existence for no reason, and if it cannot find it, the installer bails out). (WARNING: This is in NO WAY our implementation of WoW16!!)
Reported on https://www.reactos.org/forum/viewtopic.php?f=4&t=15576 , http://reactos.org/forum/viewtopic.php?f=4&t=16498 .
This is not a ReactOS problem per se, because it also happens on Windows, as reported here:
https://xpetips.wordpress.com/2009/09/18/installing-directx-9-0c-on-xpe/ and http://www.xpembedded.info/DirectX_v9_0c_and_finding_missing_components_.html .

svn path=/trunk/; revision=75126
2017-06-19 14:24:48 +00:00
Colin Finck a82d7577b3 [PRINTING]
- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
  They support all features for Print Server and Printer Handles (minus security checks!)
  I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
  According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.

One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..

svn path=/trunk/; revision=75125
2017-06-19 14:18:19 +00:00
Eric Kohl 483bdaa405 [NETAPI32]
Implement I_BrowserQueryEmulatedDomains, I_BrowserResetStatistics and I_BrowserSetNetlogonState. This functions calls their counterpart in the computer browser service.


svn path=/trunk/; revision=75124
2017-06-19 14:06:04 +00:00
Eric Kohl 75c3f8d542 [INCLUDE]
Replace the lmbrowsr.h form wine by a more complete psdk version.
Lmbrowsr.h was a part of Visual Studio 6 but Microsoft removed it from the PSDK later.

svn path=/trunk/; revision=75123
2017-06-19 13:48:40 +00:00
Benedikt Freisen ee77d7ac02 [MSPAINT]
- clicking the blank dark gray area will now reset the selection -- patch by Katayama Hirofumi MZ

CORE-13452 #resolve

svn path=/trunk/; revision=75122
2017-06-19 13:02:09 +00:00
Pierre Schweitzer 5037dd926d [NFSD]
Misc. fixes by Thomas

svn path=/trunk/; revision=75121
2017-06-19 11:51:48 +00:00
Pierre Schweitzer b3312ecfdf [NFS]
Add the missing pieces for the NFS filesystem: registry information.
Register the pnfs service (nfsd) as manual, so that it only gets started when user wants/needs it.
Same goes to the nfs41_driver service (driver). nfsd as a code modification specific to ReactOS so that it loads the driver
as soon as it gets started.

That means, in order to use NFS in ReactOS, you need to start the nfsd service: net start nfsd
Then, you can mount your remote share: net use * \\IP\path (you can replace * by a letter, e.g. z:)
There's no GUI stuff implemented yet for this in MPR.

If you want to access the share without mounting it in ReactOS (like, in Explorer), you've to be aware of a small detail:
after you start pnfs service, in explorer bar, type \\IP\nfs4\path. This is required so that NFS driver can claim the path
without troubles.

Something else you've to know: so far, tests where conducted with a remote share being 777, read-only and anonymously mounted.
Other scenarii are likely to fail (auth, rw, server?!, etc.).

Also note that if you attempt to mount a share on which you don't have traverse right, mounting will succeed but any later
operation will fail, refused by the remote NFS server. This is a bit different than the behavior on Linux where mount is denied
if traverse is not granted.

Final thing: this is highly experimental and not fully implemented yet: expect not working stuff, broken asserts, deadlocks, etc.

CORE-8204

svn path=/trunk/; revision=75120
2017-06-19 11:36:17 +00:00
Pierre Schweitzer 5ef4290a15 [NFSD]
Fix build?

svn path=/trunk/; revision=75119
2017-06-19 09:40:12 +00:00