-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
- 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
-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
- 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
Implement I_BrowserQueryEmulatedDomains, I_BrowserResetStatistics and I_BrowserSetNetlogonState. This functions calls their counterpart in the computer browser service.
svn path=/trunk/; revision=75124
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
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
Import the NFS file system mini-redirector and the associated network provider.
Not all the pieces are in place to make it working.
CORE-8204
svn path=/trunk/; revision=75105
- If PFN tracing is enabled, create a device object that allows the user to trigger a PFN dump (e.g. via "type \\.\Global\GLOBALROOT\Device\PfnDump")
svn path=/trunk/; revision=75103
I've noticed that in cmapi.c / ntapi.c we do not correctly check the validity of some OBJECT_ATTRIBUTES variables and user-mode vs. kernel-mode registry handles.
svn path=/trunk/; revision=75083