Commit graph

63101 commits

Author SHA1 Message Date
Daniel Reimer adb5a0f8f3 [RAPPS]
Add Scribus 1.4.5 to rapps by Henry Tang Ih 
CORE-9751 #resolve #comment Added to rapps.

svn path=/trunk/; revision=68631
2015-08-08 15:27:41 +00:00
Thomas Faber 6371885a14 [WIN32K:NTGDI]
- Improve invalid parameter handling in IntGdiExtCreatePen. Patch by Benedikt Freisen.
CORE-9740 #resolve

svn path=/trunk/; revision=68630
2015-08-08 14:57:47 +00:00
Christoph von Wittich 52ba781764 [SETUPAPI]
RequiredSize must be in characters in SetupGetInfFileListW

svn path=/trunk/; revision=68629
2015-08-08 13:20:39 +00:00
Christoph von Wittich bdb599cd5e [SETUPAPI]
set the correct LastError in case of failure

svn path=/trunk/; revision=68628
2015-08-08 12:53:32 +00:00
Thomas Faber 7d80502d38 [WSCRIPT]
- Fix missing include that's required by midl

svn path=/trunk/; revision=68627
2015-08-08 11:36:49 +00:00
Thomas Faber ff0b908185 [NTDLL:LDR]
- Enable relocation debug prints again. While it's not a critical error anymore when they happen it's still critical for debugging issues.

svn path=/trunk/; revision=68626
2015-08-08 11:32:43 +00:00
Daniel Reimer 7d2ab73251 [RAPPS]
Database update

svn path=/trunk/; revision=68625
2015-08-08 10:23:41 +00:00
Thomas Faber 80f748811c [USERENV]
- Complain if GetUserProfileDirectoryW failed

svn path=/trunk/; revision=68624
2015-08-08 09:50:19 +00:00
Christoph von Wittich 1f7ffb9c1d [GDI32_APITEST]
-include the testdata in all targets
-load it from the correct path even when the application is using a different working directory

svn path=/trunk/; revision=68623
2015-08-08 08:31:49 +00:00
James Tabor 3b0dfe2c25 [Win32k]
- Fix typo, see CORE-9989.
- Add caption text is truncated flag support.

svn path=/trunk/; revision=68622
2015-08-08 06:48:53 +00:00
James Tabor 085f7653ed [Win32k]
- Move menu related functions. Support more system commands. Add a thread based menu structure.

svn path=/trunk/; revision=68621
2015-08-08 00:25:04 +00:00
Aleksandar Andrejevic d1c5a86965 [FASTFAT]
VfatWrite (but not VfatRead) is supposed to return STATUS_INVALID_USER_BUFFER
if an error occurred while locking the buffer.
[KERNEL32]
Reading 0 bytes using ReadFile doesn't always succeed on Windows.


svn path=/trunk/; revision=68620
2015-08-07 23:48:54 +00:00
Aleksandar Andrejevic b6956aa369 [NTOS:CC]
In CcCopyData, Buffer can be NULL during read/write operations.
[FASTFAT]
Use SEH to catch exceptions thrown by MmProbeAndLockPages.
Lock the user buffer before changing the file allocation size.


svn path=/trunk/; revision=68619
2015-08-07 19:17:40 +00:00
Christoph von Wittich 96c2ec9407 [GDI32_APITEST]
use correct testdata path

svn path=/trunk/; revision=68618
2015-08-07 17:40:55 +00:00
Thomas Faber 176bad4690 [USER32]
- Make a debug print less useless

svn path=/trunk/; revision=68617
2015-08-07 17:30:12 +00:00
Christoph von Wittich 61359d4e52 [BOOTDATA]
rename data folder to testdata

svn path=/trunk/; revision=68616
2015-08-07 17:22:00 +00:00
Thomas Faber 88ee639b06 [WINLOGON]
- Load sfc_os.dll because applications have a tendency to create remote threads in winlogon with sfc_os function pointers, assuming that it is loaded. See https://bitsum.com/aboutwfp.asp
CORE-9598 #resolve

svn path=/trunk/; revision=68615
2015-08-07 16:28:49 +00:00
Hermès Bélusca-Maïto 86366aa0e7 Adjust file header according to the previous commit.
svn path=/trunk/; revision=68614
2015-08-07 16:12:06 +00:00
Hermès Bélusca-Maïto f6fbd83783 [NTVDM]
PS2:
- By default all the PS/2 ports are disabled. They become enabled by the BIOS at the POST step.
- Similarly it is the BIOS POST that sets up the PS/2 controller configuration byte.
- Synchronize the value of bit 2 "System flag" and bit 4 "Keyboard enable flag" in the status register, according to what is set in the controller configuration register. What is the "keyboard enable flag" ? See http://www.os2museum.com/wp/the-dos-4-0-shell-mouse-mystery/ for more details...

HW MOUSE:
- Resetting the mouse sends also an ACKnowledge byte too...

BIOS32:
- Fix the reported number of bytes in the BIOS configuration table.
- Enable the PS/2 ports in the POST.
- Implement the "Pointing Device BIOS Interface" INT 15h, AH=C2h, AL=00h...09h based on VBox OSE & SeaBIOS; we should make our PS/2 mouse driver use it.

The real call to INT 15h, AH=C2h function is still disabled because our mouse driver doesn't react well with it, when we run some applications like MS Diagnostics.

PS2 MOUSE DRV:
- Update copyright notice;
- Remove 2 useless functions;
- I've put in comments in the code the places where calls to the BIOS ps/2 mouse interface are needed.

svn path=/trunk/; revision=68613
2015-08-07 16:10:18 +00:00
Thomas Faber 33d53d44da [NTOS:MM]
- Arch, don't remove all the page protections
CORE-9808

svn path=/trunk/; revision=68612
2015-08-07 16:09:02 +00:00
Thomas Faber aa52dc7498 [NTOS:MM]
- Allow (and then ignore) PAGE_NOCACHE in the protection flags for MmMapViewOfSection
CORE-9808

svn path=/trunk/; revision=68611
2015-08-07 15:52:04 +00:00
Hermès Bélusca-Maïto 640136731e [NTVDM]: Fix few file headers.
svn path=/trunk/; revision=68610
2015-08-07 15:50:09 +00:00
Hermès Bélusca-Maïto 2abf03735c [NTVDM]: DOS: When we create a new PSP, or terminate a TSR, we *must* use the code segment value of the CALLER!! and not the current one (DOS code segment). Should fix a lot of stuff...
svn path=/trunk/; revision=68609
2015-08-07 15:14:19 +00:00
James Tabor 05ef43979f [NtGdi]
- Add more function for NtUser.

svn path=/trunk/; revision=68608
2015-08-07 05:56:01 +00:00
Aleksandar Andrejevic 08d0aae07e [FASTFAT]
Irp->UserBuffer being NULL doesn't indicate any error. It could be that the
caller really wants the result stored at address NULL (which can be valid,
and is valid by default for programs like NTVDM).


svn path=/trunk/; revision=68607
2015-08-07 03:30:05 +00:00
Hermès Bélusca-Maïto ab22534129 [NTVDM]
- Copy-paste error fix in the initialization of the collating table.
- Fix DosCombineFreeBlocks so that it doesn't say "DOS memory arena corrupted" because while combining blocks, the current block became the last one and we tried to merge it with a next block which, by definition, cannot exist (see comment in the code).
- Remove a spurious call to DosCombineFreeBlocks in DosResizeMemory which was forgotten in r68596.
- Check the validity of the encountered MCBs during the loop for linking or unlinking the UMB chain to the main arena chain.
- Fix the size of the created UMB blocks.

svn path=/trunk/; revision=68606
2015-08-06 23:00:17 +00:00
James Tabor 7da324031a [User32]
- Fix a old code port that was missed from the last menu rewrite.

svn path=/trunk/; revision=68605
2015-08-06 13:17:27 +00:00
Hermès Bélusca-Maïto 8ae14960c1 [NTVDM]:
- Use a static buffer for read or writes of "few" bytes (and allocate one for larger operations).
- Writes of zero length, in DOS, truncates or extends the file to the current position of the file pointer. This fixes some "corruption" in some files (so far, only .INI files) in Windows 3.11 installation.

svn path=/trunk/; revision=68604
2015-08-06 01:32:38 +00:00
James Tabor 6995f22fa9 [Win32SS]
- Implement OEM bitmaps sizes for server information. If more is need, it will be added. This will be plugged in later.

svn path=/trunk/; revision=68603
2015-08-06 00:56:01 +00:00
Aleksandar Andrejevic 702a0556a1 [NTVDM]
Make our VGA DAC behave like the cirrus one: palette changes do not apply
until all 3 color components have been set.


svn path=/trunk/; revision=68602
2015-08-05 20:46:42 +00:00
Hermès Bélusca-Maïto 97b7898dfe [NTVDM]: EMS functions.
- Implement function 4Dh "Get All Handles Number of Pages", 54h "Get Handle Directory / Search for Named Handle / Get Total Number of Handles"
- Fix the return error of few functions.
- Start handling the "system handle" (special handle 0; see the specs for more details); WIP.

svn path=/trunk/; revision=68601
2015-08-05 19:06:58 +00:00
Hermès Bélusca-Maïto f4853ceb55 [NTVDM]
- Increase the maximum number of EMS handles to the maximum permitted by the specification (ie. 255 handles)
- Zero out EMS handles names.
- EMS status are always returned in the AH register!
- Implement functions 4Bh "Get Number of Opened Handles" and 4Ch "Get Handle Number of Pages"
- Remove an hardcoded value.
- Cosmetic change: rename EMS_STATUS_OK to EMS_STATUS_SUCCESS to comply with the name convention used also in XMS, etc...

svn path=/trunk/; revision=68600
2015-08-05 15:12:46 +00:00
Aleksandar Andrejevic 7f132c17b0 [NTVDM]
Implement EMS function AH = 58h "Get Mappable Physical Physical Address Array".


svn path=/trunk/; revision=68599
2015-08-05 03:57:28 +00:00
Hermès Bélusca-Maïto c549f52a2b [NTVDM]
- Add some level of "Advanced debugging" (see ntvdm.h) which one can adjust to enable/disable debugging features inside NTVDM (this can be useful as long as NTVDM is under heavy bugfixing. When it will be more perfect, this stuff will be removed).
- Add the possibility to load option ROMs at a given segment. Currently their list should be specified from inside ntvdm.c (in the BiosInitialize call), but I plan to make it available from a registry option (or via command-line for NTVDM-standalone mode).
- Start to separate the initialization of "static" BIOS data (stuff that lives in ROM space) and initialization of "dynamic" BIOS data (eg. initializing the interrupt vector table, the BIOS data area at segment 40h, ...) so that we may be able to reuse part of our code to be able to more-or-less run external (16-bit) BIOSes, or the Windows NTVDM BIOS that uses BOPs to run some of its stuff in ntvdm in 32-bit (as we do for our 32-bit BIOS, except that *all* of our bios is 32-bit, not just some parts). Also, some file reorganization will be in order there soon...

- Add video BIOS version information in memory so that tools such as Microsoft Diagnostics can correctly recognize our video BIOS (btw, we try to emulate the functionality of Cirrus' CL-GD5434).
- Correctly put video BIOS ROM header (+ checksum) in memory so that it is recognized as such by diagnostics tools.
- During BIOS POST, scan for ROMs starting segment 0xC000 (where video ROMs reside).
- Store statically the BIOS configuration table.

- Fix INT 16h, AH=12h "Get extended shift states" so that it correctly returns the state of right Ctrl and Alt keys.
- Fix bit-setting state; report that our keyboard is 101/102 enhanced keyboard.
- Correctly set the error return values (AH=86h and CF set) when a function of INT 15h is unsupported.
- Implement INT 15h, AH=C9h "Get CPU Type and Mask Revision"; INT 1Ah, AH=02h "Get Real-Time Clock Time" and Ah=04h "Get Real-Time Clock Date" by reading the CMOS.
- Implement CMOS century register support.

svn path=/trunk/; revision=68598
2015-08-04 20:17:05 +00:00
Hermès Bélusca-Maïto 4689564d5b Remove a useless check.
svn path=/trunk/; revision=68597
2015-08-04 19:47:50 +00:00
Hermès Bélusca-Maïto c6e44cc971 [NTVDM]: By default, disable run-time DOS memory arena integrity checks (which was introduced along with UMB stuff in r68586).
svn path=/trunk/; revision=68596
2015-08-04 19:46:52 +00:00
Pierre Schweitzer 927b1841a1 [CDFS]
Remove broken check. Broken cases are already handled by upper if case.
This fixes the regression that leaded some valid ISOs not to be read anymore by ReactOS

CORE-9254

svn path=/trunk/; revision=68595
2015-08-02 12:29:59 +00:00
Thomas Faber 6f37e5b2e3 [NTOS:SE]
- Allow any valid ACE revision in SepPropagateAcl
CORE-9955 #resolve

svn path=/trunk/; revision=68594
2015-08-02 12:17:10 +00:00
Thomas Faber 41ea67d64d [NTOS:MM]
- Don't accept 64 bit PE files on x86 (will cause use of uninitialized variable ImageBase). CORE-9955
- Remove a pointless check in MmMapViewOfSection

svn path=/trunk/; revision=68593
2015-08-02 09:15:39 +00:00
Aleksandar Andrejevic 6828502269 [NTVDM]
Implement XMS function 0Fh (Reallocate Extended Memory Block).


svn path=/trunk/; revision=68592
2015-08-01 21:48:06 +00:00
Hermès Bélusca-Maïto 96c972db0b [NTVDM]: Fix the return code of 2 functions.
svn path=/trunk/; revision=68591
2015-08-01 21:40:58 +00:00
Eric Kohl 785ea69bd4 [PARPORT]
Remove DPRINTs from PdoWrite.
CORE-9942 #resolve

svn path=/trunk/; revision=68590
2015-08-01 19:41:24 +00:00
Hermès Bélusca-Maïto 768e35e84d [NTVDM]: Use the while() construct for looping into doubly-linked lists where we can remove items from it in the middle of the loop code.
svn path=/trunk/; revision=68589
2015-08-01 18:56:44 +00:00
Eric Kohl 9d780c6b0b [PARPORT]
- Add support for IRP_MJ_READ.
- IRP_MJ_READ and IRP_MJ_WRITE return STATUS_NOT_SUPPORTED for FDO devices.

svn path=/trunk/; revision=68588
2015-08-01 18:02:45 +00:00
Hermès Bélusca-Maïto 5c15cde76e [MSPAINT_NEW]
Fix build on MSVC by rewriting the code in *STANDARD* C++ !! (and not into some strange idiom called "GCC-C++"). I suggest also to write a proper class for dynamically-allocated (resource) strings instead of either having the static arrays of hardcoded sizes, or being tempted to use non-standard constructs as the one I just saw.
(and btw, instead of defining a new "SIZEOF()" macro, there is one which already exists in the PSDK called "ARRAYSIZE()" which just does the correct job).

svn path=/trunk/; revision=68587
2015-08-01 17:30:17 +00:00
Hermès Bélusca-Maïto 2d44138c21 [NTVDM]
EMS:
- Introduce (and use) helpers for checking validity of EMS handles.
- Do not hardcode the EMS page frame segment, but instead allow it to be changed (for now, it is still set to a default value; in the future, via some configuration file or via the registry). This is done by acquiring a UMB block (see after).

XMS:
- Implement functions 0x01 "Request HMA" and 0x02 "Release HMA".
- Fix the return value of functions 0x04 "Global disable A20" and 0x08 "Query free Extended Memory"; simplify code of function 0x0B "Move EMB".
- Halfplement function 0x0F "Reallocate Extended Memory Block" in the simple case of size reduction (size expansion is left to the programmer as an exercise :PP )
- Rewrite the UMB provider support (functions 0x10, 0x11, 0x12) by calling the Upper Memory Area manager helpers (see after) (this is closer to reality: UMBs are either provided by XMS driver itself, or by an EMS driver which hooks into the XMS driver chain -- as it is done with MS' himem+EMM386; sometimes all that stuff is contained inside one driver only --) instead of calling back into DOS. This is the DOS which calls XMS for getting the UMB blocks and initializing them! (and not the other way around as it was done in r68001!).

NTVDM:
- Introduce an "Upper Memory Area manager" which maintains a list of areas of upper memory (>= A000:0000 and <= FFFF:000F) that can be used as RAM blocks. It is intended to work closely with the NTVDM memory manager and be used by XMS for getting possible free UMBs, and by VDDs for implementing the VDDInclude/ExcludeMem APIs (which adds/remove blocks in/from the UMB pool; those are unaccessible to DOS if those APIs are called after NTVDM have been started, but are accessible by XMS).

DOS:
- Add a helper function for detecting early DOS arena corruptions (for debugging purposes only).
- Make the DOS memory manager really UMB-compatible. This means:
  * not hardcoding the start of the UMB chain;
  * getting all the available UMB blocks from XMS and initializing them, marking the reserved blocks as read-only (with a correct header; reserved blocks are eg. VGA memory area, ROM blocks...).

There is room for improvements obviously (see the FIXMEs in the code). Used documentation is mentioned in comments in the code.

This commit should fix quite some apps, as well as it fixes corruptions of loaded ROMs in upper memory: that's how I came into working on fixing the UMB support. In other words, during those two last weeks, I was like in: http://i.imgur.com/zoWpqEB.gifv

CORE-9969 #resolve

svn path=/trunk/; revision=68586
2015-08-01 17:07:07 +00:00
Hermès Bélusca-Maïto 4d6da0ec7a [NTVDM]
- Remove some hardcoded values.
- Reshuffle again DOS initialization to better reflect how it is done in the real world (see "Advanced MS-DOS Programming" by Ray Duncan, Chapter 2 "MS-DOS in Operation"): split DOS data stuff into DOS BIOS data, and DOS kernel data areas.

In preparation for an upcoming commit.

svn path=/trunk/; revision=68585
2015-08-01 12:41:22 +00:00
Benedikt Freisen 88adae5ab6 [MSPAINT_NEW]
- use optimal buffer size to load null terminated strings using LoadString
- add printing-related menu entries and dialogs (no printing functionality yet)

svn path=/trunk/; revision=68584
2015-07-31 17:33:21 +00:00
James Tabor 2ce4504816 [NtGdi]
- Fix locking.

svn path=/trunk/; revision=68583
2015-07-31 06:55:22 +00:00
James Tabor 6fe69964e1 [Win32SS]
- Start ordering functions into separate files.

svn path=/trunk/; revision=68582
2015-07-30 07:49:09 +00:00