Commit graph

61947 commits

Author SHA1 Message Date
Colin Finck af0a3b64a9 [WINSPOOL_APITEST]
- Add tests for EnumPrinters
- Fix a test for EnumPrintProcessorDatatypes

svn path=/branches/colins-printing-for-freedom/; revision=68007
2015-06-04 12:19:06 +00:00
Colin Finck 99b62ed313 [WINSPOOL_APITEST]
Make the tests actually succeed under Windows Server 2003.

svn path=/branches/colins-printing-for-freedom/; revision=67884
2015-05-24 16:55:20 +00:00
Colin Finck beaa69af38 Time to commit some Work-In-Progress stuff before my diff gets too large..
[LOCALSPL]
- Begin work on the Local Spooler. Return a structure with function pointers in InitializePrintProvidor.
- Design and document internal structures for managing LocalSpl Handles, Printer Handles, Printers, Print Jobs and Print Processors.
  Manage Printers and Print Processors in Generic Tables, with one Job Queue per Printer managed as a Doubly Linked List.
- Implement LocalOpenPrinter, LocalEnumPrintProcessorDatatypes, LocalEnumPrintProcessors, LocalGetPrintProcessorDirectory, with focus on catching all corner cases.
  Currently working on LocalStartDocPrinter.
- Build upon the documentation at http://www.undocprint.org/formats/winspool/shd to read and write .SHD files.

[WINPRINT]
Begin work on the Standard Print Processor. Implement EnumPrintProcessorDatatypesW.

[WINSPOOL_APITEST]
Add an API Test for winspool.drv, currently testing some corner cases of ClosePrinter, EnumPrintProcessorDatatypesW, GetPrintProcessorDirectoryW, OpenPrinterW, StartDocPrinterW.
TODO: Find a way to actually test the localspl.dll functions instead of only winspool.drv. This DLL doesn't like to be tested standalone under Windows, e.g. without being used through spoolsv/spoolss.

[SPOOLSS]
Implement InitializeRouter by calling the InitializePrintProvidor function of localspl there.
This function should later also initialize further Print Providers.

[SPOOLSV]
Call InitializeRouter when starting up the service.

[WINSPOOL]
Add dummy functions for EnumPrintProcessorDatatypesA/EnumPrintProcessorDatatypesW.

[All modules]
Fix printf format specifiers for errors (%lu) and statuses (%ld).

svn path=/branches/colins-printing-for-freedom/; revision=67847
2015-05-22 15:29:07 +00:00
Colin Finck 9a3f634ff7 [WINSPOOL]
- Use GdiConvertToDevmodeW instead of duplicating code.
- Fix the spec2def call here as well.

svn path=/branches/colins-printing-for-freedom/; revision=67816
2015-05-17 17:19:37 +00:00
Colin Finck b6a75bda5d spec2def requires the DLL filename and not the module name in its parameters.
Fixes delay-importing spoolss.dll.

svn path=/branches/colins-printing-for-freedom/; revision=67705
2015-05-13 07:03:05 +00:00
Colin Finck 4510858390 - Fix the importlib order for the GNU linker according to Amine's suggestion.
- Add PSEH for winspool.

svn path=/branches/colins-printing-for-freedom/; revision=67694
2015-05-12 14:56:54 +00:00
Colin Finck 2ffd28325a - Add a dummy winspool.drv SpoolerInit doing an RPC call to a dummy RpcSpoolerInit, which itself passes the call to a dummy spoolss.dll SpoolerInit.
This serves as an example to show how I expect most spooler functions to work.
- Implement the publicly exported and fundamental RevertToPrinterSelf and ImpersonatePrinterClient spoolss.dll functions.
- Fix WINSPOOL_HANDLE_bind.
- Fix build with GCC.

svn path=/branches/colins-printing-for-freedom/; revision=67693
2015-05-12 14:43:25 +00:00
Colin Finck 26cb1650bc [SPOOLSV]
Add stubs for all RPC functions of the winspool interface.

svn path=/branches/colins-printing-for-freedom/; revision=67665
2015-05-11 14:14:50 +00:00
Colin Finck 3e53fe49e9 - Add all publicly available information about the spoolsv RPC interface of Windows Server 2003 to the winspool.idl file.
Another reference: http://www.hsc.fr/ressources/articles/win_net_srv/msrpc_spoolss.html
- Put this file in the public domain as it's just collected interface information from various sources without any real code.

svn path=/branches/colins-printing-for-freedom/; revision=67662
2015-05-11 13:37:23 +00:00
Colin Finck 3551e3ab45 Fix copying of structure values in OpenPrinterA
svn path=/branches/colins-printing-for-freedom/; revision=67577
2015-05-06 13:00:08 +00:00
Colin Finck 1ea68e0e6d - Add the first bits of the winspool/spoolsv/spoolss interface in a WIDL-compatible format.
References:
     - https://git.samba.org/?p=samba.git;a=blob;f=librpc/idl/spoolss.idl;hb=618af83d1bd07b12a9acc88b0d2111cab7a8bb2b
     - https://msdn.microsoft.com/en-us/library/cc244649.aspx
- Replace our stubbed spoolsv by a new basic implementation that already creates a thread to serve RPC requests.
- Add stubbed versions of localmon, localspl, spoolss, winprint, winspool matching the exports of the Windows Server 2003 DLLs.
  localmon and winprint are part of localspl in Windows Server 2003. I took the freedom of putting these distinct components into separate DLLs (as it's done for localmon in NT4 and for winprint in Win7).
- Implement some stubs myself to fix the build (e.g. comdlg32 uses some functions).
- Implement OpenPrinterA and OpenPrinterW in winspool. This is just ANSI-to-Unicode conversion and a RPC call.
- Remove the Wine-imported ntprint, this one also needs a complete rewrite once we're at this point.

svn path=/branches/colins-printing-for-freedom/; revision=67576
2015-05-06 12:47:20 +00:00
Colin Finck 6635670794 Fix PRINTER_DEFAULTSA and PRINTER_DEFAULTSW structures
svn path=/branches/colins-printing-for-freedom/; revision=67575
2015-05-06 12:17:39 +00:00
Colin Finck f67a62efe5 Add a little test program "winspool_print" that just prints a single line of unformatted text.
This line will arrive as RAW data in the printing stack, so it doesn't need any processing through GDI and serves as a good test for the very basic printing components.

svn path=/branches/colins-printing-for-freedom/; revision=67544
2015-05-04 13:39:07 +00:00
Colin Finck d5fd7aaa19 - Add my proposed directory tree for the components involved in printing.
- Remove some Wine-imported components which are either entirely not usable for us or only implement so few functions that it's easier to completely reimplement them.
- Move "localui" (Wine-imported) and "spoolsv" (ReactOS stub) to the new directories.

svn path=/branches/colins-printing-for-freedom/; revision=67543
2015-05-04 13:21:13 +00:00
Aleksandar Andrejevic 866f04e377 [NTVDM]
Implement VGA read mode 1.


svn path=/trunk/; revision=67541
2015-05-03 22:02:41 +00:00
Pierre Schweitzer 0a02a6e9b7 [NTFS]
Handle the file query information IRP major with the dispatch routine

svn path=/trunk/; revision=67540
2015-05-03 18:36:58 +00:00
Pierre Schweitzer 7a305fc01f [NTFS]
Store stack & FO in IRP context

svn path=/trunk/; revision=67539
2015-05-03 18:25:55 +00:00
Pierre Schweitzer 0e1b711195 [NTFS]
Set a flag in the IRP context when an IRP can wait on locking

svn path=/trunk/; revision=67538
2015-05-03 18:17:39 +00:00
Timo Kreuzer 344e771eb2 [CRT]
- Implement portable fabsf.c
- Move some ARM stubs to a better location
- Add stubs for __dtoi64, __i64tos, __u64tos, _clearfp

svn path=/trunk/; revision=67537
2015-05-03 18:15:19 +00:00
Pierre Schweitzer f982ad2644 [NTFS]
An IRP context without an IRP sounds like a challenge...

svn path=/trunk/; revision=67536
2015-05-03 18:13:16 +00:00
Timo Kreuzer 11a3512389 [ATL]
- Handle failure to allocate VM for thunk code
- Factor out the assembly thumk code, fix amd64 code and implement ARM code

svn path=/trunk/; revision=67535
2015-05-03 18:03:31 +00:00
Timo Kreuzer a1bc58aee7 [ATL]
- Convert tabs to spaces
- Remove excessive local variable indentation for alignment, since that doesn't help to improve readability
- No code changes

svn path=/trunk/; revision=67534
2015-05-03 15:10:09 +00:00
Aleksandar Andrejevic 1317139297 [FAST486]
Don't overwrite the masked flags in IRET.


svn path=/trunk/; revision=67533
2015-05-03 13:14:53 +00:00
Amine Khaldi dff30c48fa [KERNEL32] Add Italian translation by Carlo Bramini. CORE-9650
svn path=/trunk/; revision=67532
2015-05-03 12:56:51 +00:00
Amine Khaldi 6135f8221c [SETUPAPI_WINETEST] Sync with Wine Staging 1.7.37. CORE-9246
svn path=/trunk/; revision=67531
2015-05-03 11:33:46 +00:00
Amine Khaldi a31e415ce7 [REG_WINETEST] Import from Wine Staging 1.7.37. CORE-9246
svn path=/trunk/; revision=67530
2015-05-03 11:32:28 +00:00
Amine Khaldi 43536d8977 [REG] Sync with Wine Staging 1.7.37. CORE-9246
svn path=/trunk/; revision=67529
2015-05-03 11:30:49 +00:00
Aleksandar Andrejevic 923efbbc4e [FAST486]
Properly check the limit for "expand down" segments.


svn path=/trunk/; revision=67528
2015-05-03 03:37:06 +00:00
Aleksandar Andrejevic 3da5321a16 [NTVDM]
- Fix a typo.
- Use a #define for the device flag.
- In r67526, the following change was committed but not described in the commit message:
- Enable opening devices in DosCreateFile and DosCreateFileEx.


svn path=/trunk/; revision=67527
2015-05-03 02:11:32 +00:00
Aleksandar Andrejevic a1e439008e [FAST486]
Update the copyright year (better late than never).
Push the error code inside Fast486InterruptInternal, to make the size of the
pushed value on the stack correct.
Update the CPL in Fast486TaskSwitch.


svn path=/trunk/; revision=67526
2015-05-03 01:45:57 +00:00
Timo Kreuzer e8cff2f3a5 [NDK]
Add a few definitions based on (Windows RT 8.1) symbol files, ks386.inc, ksamd64.inc, ksarm.inc and Windows 10 WDK (ntosp.h ftw!)

svn path=/trunk/; revision=67525
2015-05-02 23:12:19 +00:00
Timo Kreuzer 5b7d2dec59 [NTOSKRNL]
- Implement KiCpuId and make use of it
- Get rid of ugly CPUID, RDMSR and WRMSR functions
- remove unused KTS_ constants

svn path=/trunk/; revision=67524
2015-05-02 23:11:50 +00:00
Timo Kreuzer 0100d8de0c [NTOSKRNL] Handle some more KeFeatureFlags in amd64/cpu.c and set RtlpUse16ByteSLists
[NTDLL] Set RtlpUse16ByteSLists
[RTL] Make use of RtlpUse16ByteSLists in x64 Interlocked SList functions

svn path=/trunk/; revision=67523
2015-05-02 22:20:59 +00:00
Timo Kreuzer e31acf630c [RTL]
- Implement C versions of RtlInterlockedPushEntrySList, RtlInterlockedPushListSList, RtlInterlockedPopEntrySList and RtlInterlockedFlushSList.
- RtlInterlockedPushListSList is fastcall, not stdcall

svn path=/trunk/; revision=67522
2015-05-02 22:20:38 +00:00
Timo Kreuzer 0c0c8d637f [DDK/XDK]
- Improve definition of ExInterlockedCompareExchange64 and interlocked SList functions and improve some annotations based on native header
- Update processor feature constants

svn path=/trunk/; revision=67521
2015-05-02 22:20:18 +00:00
Timo Kreuzer 49dfd75396 [XDK/DDK/NDK]
Simplify RtlXxxByteSwap macros (use them unconditionally)

svn path=/trunk/; revision=67520
2015-05-02 22:19:47 +00:00
Timo Kreuzer 6223a53eb1 [CRT] Fix MSVC warnings
svn path=/trunk/; revision=67519
2015-05-02 22:19:31 +00:00
Hermès Bélusca-Maïto bc3ca7d415 [NTVDM]
Mouse:
- Remove now useless code in mouse support in BIOS.
- Implement INT 33h, AH=1Bh "Return mouse sensitivity" (returning hardcoded standard values since we don't support custom sensitivities) (AH=13h and 1Ah are marked as UNSUPPORTED).
- INT 33h, AH=1Fh "Disable mouse driver" returns in ES:BX the old INT 33h vector value: implement that.
- Implement INT 33h, AH=21h "Software reset", AH=24h and 4Dh and 6Dh "Software version and mouse info", "pointer to copyright string" and "version 'string'" functionalities.

DOS:
- Initialize in Win2k3-ntvdm-compatible order the DOS drivers: NUL, then CON, then XMS, and then EMS.
- Fix segment/offset inversion usage in INT 21h, AH=5Ch "Lock/Unlock region of file": when using MAKELONG macro to build a far pointer, the first parameter (loword) is the offset, and the second parameter (hiword) is the segment.

svn path=/trunk/; revision=67518
2015-05-02 20:48:08 +00:00
Amine Khaldi b18c48243f [BOOTDATA] Add missing font DPI entries in registry. By Ziliang Guo. CORE-8902
svn path=/trunk/; revision=67517
2015-05-02 19:55:55 +00:00
Amine Khaldi e242dc3f08 [SYSSETUP] Fix timezone setup in the unattended install of ReactOS. Spotted and fixed by V. CORE-9648
svn path=/trunk/; revision=67516
2015-05-02 19:48:26 +00:00
Amine Khaldi a4675648df [WBEMDISP_WINETEST] Import from Wine Staging 1.7.37. CORE-9246
svn path=/trunk/; revision=67515
2015-05-02 19:40:48 +00:00
Amine Khaldi 8597a0a5f3 [WBEMDISP] Sync with Wine Staging 1.7.37. CORE-9246
svn path=/trunk/; revision=67514
2015-05-02 19:38:14 +00:00
Aleksandar Andrejevic af48f83e26 [NTVDM]
Save/restore the processor state when executing/terminating nested tasks.


svn path=/trunk/; revision=67513
2015-05-02 18:51:03 +00:00
Aleksandar Andrejevic a4901dfae5 [FAST486]
When storing a segment selector, the operand size attribute is only ignored when
writing to memory (where it's treated as if it's always 16-bit).


svn path=/trunk/; revision=67512
2015-05-02 16:09:00 +00:00
Timo Kreuzer 9806b6c055 [CRT]
Implement _setjmp / longjmp on ARM

svn path=/trunk/; revision=67511
2015-05-02 14:07:28 +00:00
Timo Kreuzer dbdef0de20 [CRT]
Add stub for __i64tod and C++ wrappers for ARM

svn path=/trunk/; revision=67510
2015-05-02 12:48:50 +00:00
Amine Khaldi c8824c92cf [MSPORTS] Introduce a setting that makes the driver accept resources with an IRQ instead of only resources without an IRQ. Brought to you by The ReactOS Printing Group. CORE-9645
svn path=/trunk/; revision=67509
2015-05-02 10:23:26 +00:00
Amine Khaldi 25b7bb215e [PARPORT] Introduce a skeleton that will serve as base for implementing the parallel port function driver. Brought to you by The ReactOS Printing Group. CORE-9644
svn path=/trunk/; revision=67508
2015-05-02 10:15:37 +00:00
Aleksandar Andrejevic b2311765e9 [NTVDM]
Implement INT 27h (Terminate and Stay Resident).
Keep track of the last entry SS:SP in the INT 21h handler.
Restore the stack in DosTerminateProcess.
The number of bytes to keep resident applies only to the block which holds the PSP,
other blocks are not freed.


svn path=/trunk/; revision=67507
2015-05-02 02:59:21 +00:00
Hermès Bélusca-Maïto dc0c0c695b Fix compilation.
svn path=/trunk/; revision=67506
2015-05-02 01:26:42 +00:00