Commit graph

62931 commits

Author SHA1 Message Date
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
Aleksandar Andrejevic bfb9c92b07 [NTVDM]
- Combine free blocks after resizing.
- Fix the LastParagraph value in the PSP.


svn path=/trunk/; revision=68581
2015-07-29 02:03:48 +00:00
David Quintana 0dfcc314e5 [EXPLORER]
* Rework the WIN7_COMPAT_MODE into actually just disabling the incompatible functions, and introduce WIN7_DEBUG_MODE which does the rest of the "hacks" I used to ease development.

svn path=/trunk/; revision=68580
2015-07-29 01:29:29 +00:00
Eric Kohl 184bf48b97 [PARPORT]
Reduce the minimum I/O-Range size for parallel ports to 4. This fixes port detection on VMware.
Found by Colin Finck.

svn path=/trunk/; revision=68579
2015-07-26 19:30:21 +00:00
Thomas Faber e6d1e20049 [ROSAUTOTEST]
- When directly submitting the results to the web service, make sure to URL-encode the test log, or & signs will terminate the log and make Testman see the test as crashed (and have all other kinds of possible consequences)

svn path=/trunk/; revision=68578
2015-07-26 10:02:03 +00:00
Thomas Faber 0436f08597 [WS2_32_APITEST]
- Apparently doesntexist.reactos.org... exists

svn path=/trunk/; revision=68577
2015-07-26 09:26:29 +00:00
Thomas Faber 5ae53d1709 [USER32_WINETEST]
- Skip test_paintingloop instead of test_paint_messages? Grml
ROSTESTS-18

svn path=/trunk/; revision=68576
2015-07-26 09:11:08 +00:00
Thomas Faber 1a5b34df4a [USER32_WINETEST]
- Skip user32:msg_paint test_paint_messages if running on Windows in non-interactive mode. This should allow WHS-Testbot to get a bit further
ROSTESTS-185
ONLINE-441 ROSTESTS-184

svn path=/trunk/; revision=68575
2015-07-26 08:41:13 +00:00
Thomas Faber 10d23d4e83 [KMTESTS:RTL]
- Fix build
CORE-9947

svn path=/trunk/; revision=68574
2015-07-26 08:05:07 +00:00
Thomas Faber 92fefd09ba [PSDK]
- Add support for intsafe signed Add functions
- Guard signed math in ENABLE_INTSAFE_SIGNED_FUNCTIONS
CORE-9947 #resolve

svn path=/trunk/; revision=68573
2015-07-26 08:03:02 +00:00
Thomas Faber b6c1dfa714 [PSDK]
- intsafe: use the correct type to check overflow in DEFINE_SAFE_ADD
CORE-9946 #resolve

svn path=/trunk/; revision=68572
2015-07-26 07:48:24 +00:00
Eric Kohl d03a382228 [NTOSKRNL]
NtQuerySystemInformation:
- Windows Vista and later: Check the information class before probing the buffer.
- Pre-Vista Windows: Check the information class after probing the buffer.
- Pre-Vista Windows: Fixed the aligment check for invalid information classes.
- Pre-Vista Windows: The SystemFlagsInformation and SystemKernelDebuggerInformation classes return no required length in case of an error.
This fixes all ntdll_apitest:NtSystemInformation fails.


svn path=/trunk/; revision=68571
2015-07-25 11:53:16 +00:00
Eric Kohl 4a1740bc9e [NTOSKRNL]
Revert r68346.
CORE-9933 #resolve

svn path=/trunk/; revision=68570
2015-07-25 10:21:18 +00:00
Eric Kohl 403459d8f4 [DIKPART]
Implement the RESCAN command.

svn path=/trunk/; revision=68569
2015-07-24 20:02:56 +00:00
James Tabor 937fab0c67 [User32]
- Fix check menu item and preserve the calling ID. See CORE-9884.

svn path=/trunk/; revision=68568
2015-07-24 10:16:53 +00:00
Benedikt Freisen e97072ac60 [MSPAINT_NEW] move hDrawingDC and mirror/rotate stuff to ImageModel
svn path=/trunk/; revision=68566
2015-07-23 13:52:02 +00:00
Benedikt Freisen e49e629215 [MSPAINT_NEW]
- move bitmap and DC initialization to ImageModel
- remove unused global variables
- remove copy-pasta bug from SelectionModel::DrawSelection

svn path=/trunk/; revision=68565
2015-07-23 13:11:54 +00:00
Amine Khaldi 9a5944f03d [README.WINE] Mark some modules as synced with Wine Staging 1.7.47. CORE-9924
svn path=/trunk/; revision=68564
2015-07-23 13:08:39 +00:00
Benedikt Freisen 6fd38c7880 [MSPAINT_NEW] initialize ImageModel member variables
svn path=/trunk/; revision=68563
2015-07-23 07:48:32 +00:00
Eric Kohl 4317118d34 [MSGINA]
Show shutdown dialog at the logon screen if the user wants to shutdown. Patch by Jared Smudde.
CORE-9919 #resolve #comment Thanks a lot!

svn path=/trunk/; revision=68562
2015-07-22 20:28:51 +00:00
Amine Khaldi 33f303a420 [DBGHELP] Sync with Wine Staging 1.7.47. CORE-9924
svn path=/trunk/; revision=68561
2015-07-22 19:50:35 +00:00