100 Commits
Author SHA1 Message Date
Colin Finck 175abbf8c2 [ROSAUTOTEST] Use default port 443 for CWebService again.
Port 8443 was an extra TLS 1.1 server hosting only the testman webservice at a time when TLS 1.1 was still an option and we had no other choice on XP/2003.

Now that we can use curl and TLS 1.2/1.3 on these platforms thanks to Mark, there is no need for that extra server anymore.
I'd like to retire it at some point.
2026-06-21 14:14:32 +02:00
Colin Finck ec9f3d82b0 [NTDLL_APITEST] Ensure that some noticeable time has passed since process creation to fix a flaky test. 2021-03-02 19:32:20 +01:00
Colin Finck fd8080b094 [KERNEL32] Align the PROCESS_PRIORITY_CLASS variable in GetPriorityClass on a 4-byte boundary.
Fixes CORE-16757.
This is required for NtQueryInformationProcess as proven by my test application in the bug report.
2021-02-20 17:13:38 +01:00
Colin Finck 1509f0e536 [SYSDM] Increase label width for all languages 2021-02-01 07:32:14 +01:00
Colin Finck 50a01ed170 [SYSDM] Introduce KERNEL_VERSION_REVISION_RC and align system uptime string 2021-02-01 07:32:14 +01:00
Colin Finck 39b6643030 [SYSDM] Move IDS_DEVS to the LANG_NEUTRAL resources to deduplicate it.
It should still be updated at some point, maybe automatically, but this should serve us well for the moment.

Use UTF-8 for the deduplicated string.
2021-02-01 07:32:14 +01:00
Colin Finck 1adbae9bae [SYSDM] Restore actual fix from 9a0246ef65 2021-02-01 07:32:14 +01:00
Colin Finck c1356e8d47 Revert "[SYSDM] Fix version string cutoff CORE-17429"
This reverts commit be2518704e.
2021-02-01 07:32:14 +01:00
Colin Finck 5f37b687b0 [OSK] Fix some mistakes in the German translation I just spotted 2020-07-08 23:32:17 +02:00
Colin Finck db7ee3a756 [HAL] Remove duplicated IRQL mask tables
With the minimum Visual Studio version now being 2015, we no longer need to maintain two variants of the same code, and can stick to the commented and better understandable version.
2020-05-15 23:46:22 +02:00
Colin Finck 7d1f270918 [ROSAUTOTEST] Submit results to https://reactos.org:8443 instead of https://tlsv1.reactos.org
It is much easier server-side to maintain a different TLS configuration on another port rather than another subdomain.
2020-04-04 20:35:58 +02:00
Colin Finck 3c02749f92 [ROSAUTOTEST] Use tlsv1.reactos.org for submitting test results now that reactos.org is TLS 1.2+
We still need to be able to submit test results from Windows Server 2003, which supports TLS 1.0 only.
2020-04-04 12:57:50 +02:00
Colin Finck 5d8c39753e [GDI32] GdiConvertToDevmodeW: Import WINE commit 32393796bb534e9cf11dd988dce88722c67f7906 ("gdi32: GdiConvertToDevmodeW should not refer to unintialized name bytes.")
This makes our GdiConvertToDevmodeW equivalent to the WINE counterpart again.
2020-02-24 19:17:56 +01:00
Colin Finck 8da7fbc704 Fix build 2020-02-12 19:59:23 +01:00
Colin Finck 45f39ffc25 [FORMATTING] Fix indentation of winspool/printers.c
No code changes
2020-01-31 18:47:53 +01:00
Colin Finck eb0f16433b [CMAKE] Define HAVE_* constants unconditionally (follow-up to PR #2041) (#2052)
sys/types.h is guaranteed to be available on all our supported host platforms and always contains a pid_t definition.
2019-11-18 18:57:35 +01:00
Colin Finck c8681feee9 Fix the ntstrsafe.h tests to make sense, actually succeed using ntstrsafe.h from Win10 (10.0.15063), and fix ReactOS' ntstrsafe.h to also pass these tests. (#1859) 2019-08-28 22:42:52 +02:00
Colin Finck 46ed46c73f Fix and unify function prototypes for ntstrsafe functions taking variadic arguments. 2019-08-28 22:35:01 +02:00
Colin Finck 331e331209 [FORMATTING] Restore some kind of style to ntstrsafe.h, considering all comments in PR #522 and #523. 2019-08-28 22:32:49 +02:00
Colin Finck 5dadfdaa39 Fix FUNDING.yml syntax. 2019-07-04 09:12:50 +02:00
Colin Finck 85b2b73fed Update FUNDING.yml now that the "Sponsor" button in GitHub has been activated. 2019-07-04 09:11:04 +02:00
Colin Finck 2c11c41115 Add a shared "port" directory for POSIX functions needed by multiple host tools (getopt/mkstemps) and import the one and only getopt from glibc.
This finally fixes our duplicated getopt functions from different sources and gives us an up to date and the most compatible implementation.
isohybrid actually relies on a glibc-specific getopt behavior that we previously hacked into the reactos_support_code.c implementation derived from BSD/mingw-w64.
widl also needs getopt and previously used an even older BSD-derived code.
2019-04-28 23:23:06 +02:00
Colin Finck c02257ef57 [ISOHYBRID] Fix the remaining warnings properly.
I will send these changes upstream (minus the REACTOS_ISOHYBRID_EFI_MAC_SUPPORT ifdefs).
2019-04-28 23:22:53 +02:00
Colin Finck 86ae6b029f [ROSAUTOTEST] A timeout of 120 seconds kills the msi:action test prematurely, so increase it to 170 seconds.
This is still below the 180 seconds before sysreg2 kills the entire VM.
I've added a comment to clarify that.
2019-04-26 10:31:02 +02:00
Colin Finck e34d3cf379 [REGTEST] Add regtest.cmd to the Run key inside regtest.cmd, so we're also started on the next reboot in case ReactOS crashed *and* the registry has been saved.
unattend.inf only allows to add RunOnce entries, which are in theory only executed on the first boot after installation.
For almost a decade, this worked anyway to start regtest.cmd again after a ReactOS crash, because the registry and thus the deletion of the RunOnce entry wasn't stored on disk in case of a crash.
Thanks to Sylvain for the hint!

As Explorer processes the Run key right after RunOnce and therefore picks up regtest.cmd a second time during the first boot, exit the script just after adding the Run key.
Otherwise, rosautotest.exe would be started twice, with catastrophic results.
2019-04-26 10:02:47 +02:00
Colin Finck 064dffe6c3 [ROSAUTOTEST] Cache the result of GetLastError(). 2019-04-26 08:47:15 +02:00
Colin Finck 7dd4d2256b [ROSAUTOTEST] Implement a process activity timeout of 2 minutes. If there is no log output within 2 minutes, the test process is killed, and we continue with the next test.
This is a rather graceful approach compared to sysreg2's 3 minute timeout before killing and restarting the entire VM.
Since we added autochk for FAT filesystems, the filesystem is often "fixed" after a reset with the consequence that ReactOS doesn't boot up anymore.
The sysreg2 restart code still remains for handling tests causing BSODs.
2019-04-26 08:47:15 +02:00
Colin Finck bd0a28d1e4 Fix the MSVC version of ldexp filling up the FPU stack and bailing out with #IND after a few calls. Additionally, add it back to libcntpr.
MSVC was previously given a "result" variable to copy the fscale result from st(0). This led to another "fld" FPU stack push at the very end without popping the source value from the FPU stack.
Moreover, this copy isn't even needed: A simple "fstp st(1)" at the end pops an element from the FPU stack while effectively storing the result in st(0), the register used for returning a double value.
This problem didn't affect GCC, as it is only given the "fscale" instruction and does all necessary stack operations itself.

However, looking into the CRT sources, I found many other i386 implementations with inline assembly suffering from the same problem.
Fortunately, they have been replaced by pure assembly implementations a while ago, so it's time to finally remove them.
ldexp would have also been a candidate for a pure assembly implementation, but the required check for NaN and setting errno (verified on Win2003) already outweighs the benefits.
And we cannot just do a NaN check with FUCOMI as this is an i686/pentiumpro instruction while we're still targeting i586/pentium.

I'm also using this opportunity to clean up the ldexp.c header and only put in the remaining contributors as returned by "git blame".

Thanks to NightWolve1975 for reporting the problem! (https://twitter.com/nightwolve1975/status/1099042477531643912)
2019-03-03 16:11:27 +01:00
Colin Finck 2440df762c [DOXYGEN] Update Doxyfile for our build of Doxygen 1.8.15. 2019-01-15 09:37:54 +01:00
Colin Finck cb8429d76a [DOXYGEN] Enable EXTERNAL_SEARCH, because this seems to be the most sophisticated Doxygen search feature and the PHP-based search isn't compatible with PHP7 yet. 2018-12-06 15:13:40 +01:00
Colin Finck 9eb82c499f [DOXYGEN] Update Doxyfile for Doxygen 1.8.13, the version we are going to use from now on.
Not much has changed, several options were added, but left at their default values.
However, if search problems persist after Doxygen 1.8.13 generated the documentation for the first time, we can play around with EXTERNAL_SEARCH.
2018-12-05 19:38:14 +01:00
Colin Finck 765280bf5f Merge PR #283 "[USBPORT] Transaction Translator (TT) support bringup" 2018-03-29 23:52:22 +02:00
Colin Finck ef8b17ed0d [CMAKE] Call "git describe" with the --long parameter to always output the format we are used to. 2018-02-17 18:09:07 +01:00
Colin Finck 22ffe5300b [PRINTING] Replace all my custom marshalling code by calls to the newly implemented APIs, thereby significantly reducing the codebase and providing a sane template to implement more Printing APIs. 2018-01-17 12:52:12 +01:00
Colin Finck 35ef5a3c24 [PRINTING] Try to fix Linux build #2 2018-01-17 10:55:02 +01:00
Colin Finck 86c59690da [PRINTING] Try to fix Linux build.
Why this previously built without any errors using GCC and MSVC under Windows is left as an exercise to the reader.
2018-01-17 10:41:55 +01:00
Colin Finck f3ea8225cb [PRINTING] Implement the undocumented MarshallDownStructure, MarshallDownStructuresArray, MarshallUpStructure, and MarshallUpStructuresArray to the extent I need and could find out through black-box testing.
PDBs reveal that these functions are also used in winspool.drv, but not imported from spoolss.dll to retain the client/server architecture.
As winspool.drv highly benefits from the MarshallUp* functions, I put them in a source file shared between spoolss.dll and winspool.drv.

The added API Tests cover my testing and all implemented features.
One more item done from https://reactos.org/wiki/Printing !
2018-01-17 10:13:25 +01:00
Colin Finck 63a3a2cbb8 [KERNEL32] Accept all images for NT 3.1 and higher instead of bailing out at image versions > 5.01 (#273)
Print a debug message whenever an application newer than ReactOS' internal NT version is started.
This gets a simple "Hello World" compiled by VS' 2017 regular "v141" toolchain to run under ReactOS.

Please retry NT6+ applications!
2018-01-10 09:24:22 +01:00
Colin Finck f319cf950c [RAPPS] Remove the RAPPS database from the main source tree. It will now be maintained in the new repository https://github.com/reactos/rapps-db
As a bonus, the public database at https://svn.reactos.org/packages/rappmgr.cab is now automatically updated with every commit to that repository.
Thanks to Alexander Shaposhnikov for the idea and help!
2018-01-08 18:04:50 +01:00
Colin Finck f5d366b200 [NTOS:CM] Improve code in cmsysini.c (#216)
Based on an original patch by Timo Kreuzer, with modifications by me to adapt it to latest HEAD and use a single exit path through the Cleanup label. This reliably frees all allocated handles.

The original code returns STATUS_SUCCESS for many cases. This has been preserved.
In the future, it should be checked though whether returning success is appropriate for all these cases.

CORE-6844
2018-01-06 13:27:41 +01:00
Colin Finck 3b93ba0f31 [LOCALSPL] Fix parameter handling in LocalSetJob and add tests for the few ways we can easily test this function.
Yes, it checks the input handle and doesn't fail if an invalid level is given, because someone may still send a Command.
This also fixes CORE-12794. Thanks for reporting!
2017-12-25 14:30:47 +01:00
Colin Finck 12b78f182d Replace our dxtn.dll by a version based on the libtxc_dxtn source code (#203)
This is no official system DLL and WineD3D is its only user. But latest WineD3D prefers the libtxc_dxtn codebase instead of the alternative library we used.
This is also what Mesa uses and Fedora ships now that the patents have expired, so we should stick to the same.

I'm importing the libtxc_dxtn-1.0.1 codebase from https://people.freedesktop.org/~cbrill/libtxc_dxtn/
It compiles warning-free in our tree without modifying a single line!

I'm merging this Pull Request based on the positive response in CORE-12759.
I lack a proper test case myself, but my version at least shouldn't make things worse. In my opinion, the previous one was broken anyway due to using stdcall imports when WineD3D called cdecl ones.

This also removes the NSWPAT option from our buildsystem as dxtn was its latest user.
2017-12-20 11:15:13 +01:00
Colin Finck 361b6e39e3 [HALX86] Deduplicate initialization of legacy PICs and remove EOI in I/O APIC initialization, which causes an unexpected interrupt 2017-12-17 09:51:37 +01:00
Colin Finck 3a69fd4e96 [PRINTING] Fix GetPrinterW, add tests for it and GetDefaultPrinterA/W, and add a proper stub for GetPrinterDriverDirectoryA.
* Pass the correct handle to _RpcGetPrinter in GetPrinterW.
* Pass an empty string instead of a NULL pointer as wszComputerName to the GetPrinterLevel* functions, because this variable is later used as source for StringCbCopyExW.
* Don't check for GetLastError() == ERROR_SUCCESS in tests. Windows apparently only sets the last error in case of failure.
  The Printing code should probably be changed similarly in a future commit.

Should fix CORE-14072
2017-12-10 12:28:08 +01:00
Colin Finck 46b9165909 [WINSPOOL] Provide stubs with tracing and reasonable failure codes for even more popular Spooler APIs.
This may get more applications to work which previously called into the WINE-generated stubs (that throw an exception).
It also improves debug logs when the "winspool" debug channel is enabled. With such detailed debug logs, we may get an idea which winspool APIs need to be implemented sooner than others.
2017-12-09 14:14:05 +01:00
Colin Finck 1f6f08eca0 [WINSPOOL] Add tracing to all exported APIs. 2017-12-09 14:14:05 +01:00
Colin Finck 45b9b5c1ef [WINSPOOL] Convert the returned Unicode string back to ANSI in GetDefaultPrinterA.
Thanks to Mark for the hint in CORE-14072!
2017-12-09 14:14:05 +01:00
Colin Finck a7d388c350 [KD] [KD64] Introduce KdpPrintBanner and use it in all places where we print the (now consistent) banner instead of copying the code over and over again.
I still don't like that we're copying code between KD and KD64 instead of sharing it.
But as both modules are totally distinct at the moment, I won't be the one introducing shared functions between them.

This is a follow up to 50ae5e7c52, which TortoiseGit accidentally turned into a "Message only" commit...
Never hit ALT+Y by mistake! ;)
2017-10-16 11:47:14 +02:00
Colin Finck 50ae5e7c52 [KD] [KD64] Introduce KdpPrintBanner and use it in all places where we print the (now consistent) banner instead of copying the code over and over again.
I still don't like that we're copying code between KD and KD64 instead of sharing it.
But as both modules are totally distinct at the moment, I won't be the one introducing shared functions between them.
2017-10-16 11:40:52 +02:00
Colin Finck 2cf30244cf [KD] Output the long commit hash as well at the start of the debug log.
This will be used by Testman.
Previously, it had to translate the short hash from the build number to a long hash, but such a database (GitInfo) only exists for commits in the master branch.
2017-10-16 10:38:12 +02:00
Colin Finck da53a9399a [WS2_32_APITEST] Make the apitest fully C89-compliant to fix building under MSVC 2010.
In C89, you can only initialize the first member of a union within a declaration. Unfortunately, that is the S_un_b UCHAR array for the S_un union inside struct in_addr.
So we have to initialize it with each UCHAR member of Address.
2017-10-06 17:33:47 +02:00
Colin Finck 950c86fb4c Fix remaining text file line endings in the tree. (#18)
Based on https://stackoverflow.com/a/1511273

Also enforce CRLF for all *.xml files in our tree, because they are distributed with ReactOS.
2017-10-06 15:00:36 +02:00
Colin Finck 71fba9dea1 [VERSION] Use --abbrev=7 for "git describe" to enforce a short hash of 7 characters no matter what the default is for your Git installation. 2017-10-04 20:49:43 +02:00
Colin Finck 9ebf43567d Add .gitattributes and .gitignore files and normalize line endings in the repository (#10) 2017-10-04 20:37:32 +02:00
Colin Finck 417e262dfc Build rosapps, rostests, wallpapers when their CMake variables are set instead of checking for directory existence.
By default, ReactOS will now build without any of these modules.
You can enable them using e.g. "configure -DENABLE_ROSTESTS=1".
2017-10-03 16:36:59 +02:00
Colin Finck b9cf2e37f3 Supply the source directory as working directory when launching Git commands. Should fix retrieving the Git hash on the build machines. 2017-10-03 15:29:13 +02:00
Colin Finck 3d6040615a Make ReactOS report the Git revision as output by "git describe".
- REVISION is now something like "0.4.7-dev-53-g1304b53" instead of "r12345".
- Change WINDOWS_NT_BANNER to better represent the ReactOS version and the reported NT version.
- Introduce REACTOS_COMMIT_HASH which contains the full 40-character commit hash (for comparing revisions, e.g. in rosautotest/testman).
2017-10-03 12:55:38 +02:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Colin Finck b6d999dbe4 [ROSTESTS] Use the new header with SPDX license identifier for my printing-related API tests
svn path=/trunk/; revision=75992
2017-09-29 18:33:04 +00:00
Colin Finck bb0896b823 [ROSAUTOTEST] Use the new header with SPDX license identifier and remove dead source files.
svn path=/trunk/; revision=75991
2017-09-29 18:13:54 +00:00
Colin Finck 154f1aaacd [PRINTING] [SKIPLIST] Use the new header with SPDX license identifier and relicense the entire Printing Stack as well as its Skiplist dependency under GPL-2.0+
Previously, the Printing Stack was a mix of GPLed and LGPLed code. Having everything under GPL-2.0+ makes things consistent and allows me to import code from most Open Source licenses.
Given that the Printing Stack components are exchangeable with their Windows counterparts and implement documented interfaces, this license change doesn't impose any additional restrictions on dependent components (like printer drivers).

svn path=/trunk/; revision=75988
2017-09-29 17:18:19 +00:00
Colin Finck 57d74df773 [VGAFONTEDIT] Use the new header with SPDX license identifier and make the entire application GPL-2.0+
The code of the single GPL-2.0 only file "misc.c" was originally derived from GPL-2.0 only devmgmt.
I have now replaced it with the same code from LGPL-2.1+ mmc, which makes my application a full GPL-2.0+ work. This is legit, because I know that Thomas Weidenmueller is the original author of the "misc.c" code.

svn path=/trunk/; revision=75987
2017-09-29 13:58:14 +00:00
Colin Finck 26dd1bcf1f [FASTFAT_NEW] [FULLFAT] Remove the FullFAT-based "fastfat_new" driver and the third-party FullFAT library itself.
Our driver has not seen any development since 2010 and the current fastfat driver has long surpassed it.
Even more important, FullFAT is licensed under a modified version of GPLv3 that forbids commercial usage. Shipping it as a ReactOS dependency would render the OS unusable for commercial scenarios.
If anybody wants to resurrect the driver, you can always get it from the repository history.

svn path=/trunk/; revision=75986
2017-09-29 10:21:33 +00:00
Colin Finck e9bc2c9b4c [HEADERS] Use the new header with SPDX license identifier for host headers I've contributed to and ensure license compliance for pshpack/poppack.
- The pshpack and poppack headers were rewritten from scratch as their current versions came with no license information and included obsolete checks (e.g. for an ancient FreeBSD version).
  I have put the new ones under CC0-1.0, which is equivalent to Public Domain but legally valid also in jurisdictions which have no concept of Public Domain (e.g. Germany).
- Relicense nls.h under CC0-1.0 too. I'd recommend the same for typedefs.h, but I'm not the only contributor to that file.

svn path=/trunk/; revision=75985
2017-09-29 10:10:26 +00:00
Colin Finck ea2806e13c [BOOTSECTORS] Use the new header with SPDX license identifier for the ISO boot sector files I contributed to.
Remove the unmaintained .asm files.

svn path=/trunk/; revision=75984
2017-09-28 20:21:45 +00:00
Colin Finck d20eaaf8ca [CONTROL] Use the new header with SPDX license identifier.
- The original header committed in 2004 clearly indicated "or any later version", so use GPL-2.0+
  That header has since been removed in r33507 by some "Colin Finck" guy ;)
- Add Hermès to the list of copyright holders, since he rewrote most of this in r62694.

svn path=/trunk/; revision=75983
2017-09-28 15:47:25 +00:00
Colin Finck 6116aa816b [MKISOFS]
Update mkisofs to schily-2017-09-07.
Among other things, this version comes with an upstream fix for David's x64 fix in r75399. We are now using 100% unmodified upstream code again.

svn path=/trunk/; revision=75806
2017-09-09 15:06:48 +00:00
Colin Finck 78c1aeecb9 [FS_REC]
Always register CDFS as a low-priority filesystem. This inserts it at the tail of the filesystem queue instead of the head, meaning UDF always takes precedence and UDF/CDFS hybrid media is properly detected as UDF.
Thanks to Pierre for the hint!

Should fix what's reported in https://jira.reactos.org/browse/CORE-9816?focusedCommentId=78820&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-78820

svn path=/trunk/; revision=75638
2017-08-22 09:09:19 +00:00
Colin Finck 4f8ba0560c [FS_REC]
- Add a detection routine for CDFS (ISO-9660) volumes that verifies the Primary Volume Descriptor.
- Use this to also detect CDFS on disks and load the CDFS driver if it has not been loaded yet (e.g. when a bootcd/livecd flashed USB drive is inserted at boot of an installed ReactOS).
- Fix a comment in udfs.c.

svn path=/trunk/; revision=75630
2017-08-20 15:30:59 +00:00
Colin Finck 75cb0454f7 [USETUP]
Add type 0x96 as "CDFS/ISO-9660" to our list of partition types now that our ISOs flashed to USB use it.

svn path=/trunk/; revision=75624
2017-08-19 14:53:54 +00:00
Colin Finck fb160be266 [CDFS]
- Add a basic CDFS filesystem library "cdfslib" for checking and formatting a CDFS volume. Checking is unimplemented and formatting not supported anyway :)
- Use this library in the new "ucdfs" DLL and that DLL in "autochk". Fixes the "Unable to verify a CDFS volume" message at boot.
- Return the right device type (FILE_DEVICE_CD_ROM or FILE_DEVICE_DISK) in when querying volume information in cdfs.sys to get the proper icon in Explorer.

svn path=/trunk/; revision=75591
2017-08-17 12:21:27 +00:00
Colin Finck d31e5d598c [FORMATTING]
Convert all tabs to spaces in ntdddisk.h

svn path=/trunk/; revision=75590
2017-08-17 12:18:28 +00:00
Colin Finck 956092d462 - Add 0x96 as ISO9660 partition type to ntdddisk.h (from https://en.wikipedia.org/wiki/Partition_type) and detect it using IsRecognizedPartition.
- Make our isohybrid create an MBR with partition type 0x96.

This properly assigns a drive letter to the Live-CD and lets me boot into desktop using "qemu -hda livecd.iso".
Fixes CORE-13184

svn path=/trunk/; revision=75586
2017-08-17 11:03:40 +00:00
Colin Finck 7607ced6c6 [CDFS]
Fix uninitialized variable usage (why did neither MSVC nor GCC catch this?)

svn path=/trunk/; revision=75581
2017-08-16 23:12:55 +00:00
Colin Finck 3c64b4cbe9 [CDFS]
Register CDFS as a disk filesystem too in order to flash our ISOs directly to USB drives and boot from them. Also fix some DPRINTs in the course of that.

One step closer towards CORE-13184: This gets qemu -hda bootcd.iso to work.
What still doesn't work is qemu -hda livecd.iso and booting from a flashed USB drive on real hardware.
Further changes are also required in fs_rec, but this code isn't ready yet and doesn't seem to be the current blocker either.

Credits go to the entire Hackfest Team for helping on this!!

svn path=/trunk/; revision=75579
2017-08-16 20:04:55 +00:00
Colin Finck a6222fc8f3 [FREELDR]
Lower MAX_DISKREADBUFFER_SIZE to let INT 13h, AH=42h only read a maximum of 127 sectors (instead of 128 previously).
This fixes USB booting into the kernel on at least Dell Latitude D531 and Lenovo ThinkPad X61.

Now CORE-13184 remains (in a VM and on real hardware, probably related to the CDFS driver)

svn path=/trunk/; revision=75564
2017-08-16 10:44:15 +00:00
Colin Finck 4c022adf19 [PRINTING]
Apply a consistent style to all similar functions:
- Spoolss functions don't necessarily set ERROR_SUCCESS. Check the boolean return value instead and only query the error code on failure.
- Use AlignRpcPtr and UndoAlignRpcPtr wherever feasible.
- Use one static function per level that can be called from both Get* and Enum* APIs.
- Use PackStrings in all functions that return structures with strings.
- Add TRACEs to all non-static functions in localspl.
- Pass a double pointer to all Marshalling functions and advance to the next structure there.
- Perform sanity checks and return the right error codes in a Windows-compatible way.
- Return TRUE when an Enum* API has no elements to enumerate.

Also fixes CORE-12793

svn path=/trunk/; revision=75287
2017-07-05 15:29:13 +00:00
Colin Finck 20bbfa5624 [PRINTING]
Fix all EnumPrintProcessorDatatypes API tests.

svn path=/trunk/; revision=75215
2017-06-27 07:25:04 +00:00
Colin Finck ef0ae276af [NETAPI32_APITEST]
Fix GCC build

svn path=/trunk/; revision=75209
2017-06-26 15:43:58 +00:00
Colin Finck e5654cce9f [NETAPI32_APITEST]
Add a simple API Test for netapi32.dll, only covering DsRoleGetPrimaryDomainInformation so far.
It succeeds in ReactOS, but outputs a heap error in the debug log. In real world applications, this later leads to a heap assertion failure.

svn path=/trunk/; revision=75208
2017-06-26 15:19:07 +00:00
Colin Finck 1525fa31fc [PRINTING]
- Create the actual generic handle in _LocalOpenPrinterHandle.
- Fix _RpcClosePrinter call.
- Enable many more tests in winspool_apitest, GetPrinterData.
- Bail out with ERROR_INVALID_PARAMETER for empty strings in _MakePrinterSubKey as well.
- Add the Name registry value for "Dummy Printer on LPT1" to make a test succeed.

This fixes many basic things.. which only got unnoticed, because Printing is only used in the form of API Tests so far.

CORE-13458
CORE-13459

svn path=/trunk/; revision=75207
2017-06-26 15:16:46 +00:00
Colin Finck 2bd66111fc [ADVAPI32_APITEST]
Fix copy-paste mistakes in messages.

svn path=/trunk/; revision=75206
2017-06-26 15:10:27 +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
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
Colin Finck a366e71f50 [PRINTING]
SetDefaultPrinterW needs to fail with ERROR_INVALID_PRINTER_NAME if the input parameter is invalid. Also add a test for that.

svn path=/trunk/; revision=74518
2017-05-10 13:03:08 +00:00
Colin Finck 5b6e082869 [PRINTING]
- Implement GetDefaultPrinterA/W and SetDefaultPrinterA/W in winspool.drv. Also add tests for these functions.
- Set our "Dummy Printer on LPT1" as the default printer in the user registry.
- Return meaningful values for DeviceNotSelectedTimeout and TransmissionRetryTimeout in PRINTER_INFO_5 in localspl.

The Print dialog now preselects "Dummy Printer on LPT1" in all applications.
One more task done from the list at https://reactos.org/wiki/Printing :)

svn path=/trunk/; revision=74513
2017-05-09 15:44:42 +00:00
Colin Finck 02ae08f9cb [ISOHYBRID]
Patch all our ISOs (bootcd, bootcdregtest, livecd, hybridcd) with isohybrid in order to make them bootable from HDDs or any kind of USB drives.
The added MBR at the beginning of each ISO doesn't cause any harm for normal CD booting anymore after my patch in r74460.
There is also no need for the dedicated isohybrid targets anymore.

Our ISOMBR master boot record now successfully loads our ISOBOOT boot sector. ISOBOOT loads FreeLdr and indicates that we're booting from HDD, so that FreeLdr can successfully load the kernel.
We then bugcheck in the kernel with either 0x0000007B (INACCESSIBLE_BOOT_DEVICE) using bootcd or 0x0000006B (PROCESS1_INITIALIZATION_FAILED) using livecd.
Testcase is:
  qemu-system-i386 -m 512 -hda bootcd_or_livecd.iso

Needs more investigation, but these are separate bugs and I consider CORE-12648 fixed.

svn path=/trunk/; revision=74461
2017-05-03 15:32:33 +00:00
Colin Finck 11cbbbb746 [FREELDR]
Set BootPartition (DH) to 0xFF in isoboot.S when booting from CD.
Then check for that 0xFF value in FreeLdr to unambiguously detect CD booting instead of using BIOS functions (which don't work reliably on broken BIOSes) or checking for an MBR (which doesn't work on hybrid ISOs).

CORE-12692

svn path=/trunk/; revision=74460
2017-05-03 14:53:57 +00:00
Colin Finck 30d5e8f413 [LOCALSPL] [SPOOLSV] [WINSPOOL]
- Refactor the code returning PRINTER_INFO_* yet another time to support both EnumPrinters and GetPrinter calls.
- Implement support for PRINTER_INFO_1 through PRINTER_INFO_9 as well as the mostly unknown PRINTER_INFO_STRESS (level 0) structure and return as much information as we can.
- Implement GetPrinterW / LocalGetPrinter.

The Printers Shell folder in Explorer now shows our "Dummy Printer on LPT1" and we pass all 291 winspool:EnumPrinters API tests :)

svn path=/trunk/; revision=74433
2017-04-30 15:12:53 +00:00
Colin Finck ceaed9f1ec [LOCALSPL]
Implement all corner cases of handling the Name parameter in EnumPrinters. This can be done in a common way for all levels.
Fixes more tests.

svn path=/trunk/; revision=74393
2017-04-23 15:00:26 +00:00
Colin Finck 8c0a8b2873 [ISOHYBRID]
Don't include inttypes.h, which isn't available on MSVC < 2013. Add the 4 needed typedefs to reactos_support_code.h instead.
Fixes CORE-13031

svn path=/trunk/; revision=74351
2017-04-17 13:49:46 +00:00
Colin Finck daf94f98b0 [WINSPOOL]
Added tests for some more basic and newly discovered corner cases of EnumPrintersW.

svn path=/trunk/; revision=74350
2017-04-17 13:40:51 +00:00
Colin Finck 12e208e27a Fix GCC build, part 4/X (losing my optimism)
svn path=/trunk/; revision=74328
2017-04-16 15:51:44 +00:00
Colin Finck 82c97261bf Fix GCC build (3/3) :)
svn path=/trunk/; revision=74327
2017-04-16 15:44:22 +00:00
Colin Finck 1cfc77902c Fix GCC build (2/2)
svn path=/trunk/; revision=74326
2017-04-16 15:37:31 +00:00
Colin Finck b0864955dd Fix GCC build
svn path=/trunk/; revision=74325
2017-04-16 14:30:07 +00:00
Colin Finck cb609f0b17 [LOCALSPL]
- Refactor LocalEnumPrinters to make it ready for supporting additional levels.
- Correctly handle all passed flags for Level 1 queries to the Local Print Provider.
- Introduce strsafe functions to LocalEnumPrinters in a way that actually makes the code smaller. To be done in other parts too.
- Use PackStrings in LocalEnumPrinters to simplify the code.
- Return the correct 3 strings in the Description field of Level 1 queries. That also introduces the "Location" field.
- Remove debug spam in _OpenEnvironment.

[SPOOLSV]
- Make use of the newly implemented AlignRpcPtr/UndoAlignRpcPtr. Fixes a test.

[WINSPOOL]
- Dismiss invalid levels already in EnumPrintersW and zero the input buffer here (but not in localspl). Verified by a test.

EnumPrintersW for Level 1 should be fully supported now.

svn path=/trunk/; revision=74324
2017-04-16 14:12:01 +00:00
Colin Finck c860e2b80d [SPOOLSS]
Add ASSERTs, improve documentation and the variety of tests for AlignRpcPtr/UndoAlignRpcPtr.
Based on comments by Serge Gautherie.

svn path=/trunk/; revision=74323
2017-04-16 10:36:16 +00:00
Colin Finck a737c007e8 [SPOOLSS]
Implement the undocumented AlignRpcPtr and UndoAlignRpcPtr functions used by many Rpc* functions in spoolsv according to traced callchains.
I could reverse engineer them entirely using rohitab.com's API Monitor and black-box testing.
I also add documented tests covering all cases I found out. We now pass 17/17 tests on Windows Server 2003 and ReactOS.

Also const-ify a parameter in PackStrings.

svn path=/trunk/; revision=74297
2017-04-13 16:48:40 +00:00