Commit graph

42249 commits

Author SHA1 Message Date
Sir Richard df33b38ed0 [NTOS]: Fix definition of unused MI_MAKE_SOFTWARE_PTE macro.
[NTOS]: Correctly setup the PFN entries for freshly allocated paged pool pages. Fixes a problem where the page could've still had stale/garbage data.
[NTOS]: Add some extra assertions in the code to catch memory corruption and detect invalid logic.
[NTOS]: Fix some typos in the code (comments/whitespace).
[NTOS]: Make the dreaded page fault message that breaks paged pool on some systems more verbose for future debugging.

svn path=/trunk/; revision=47189
2010-05-12 22:47:46 +00:00
Eric Kohl 931fc122a0 [MSGINA]
Use WLX_PROFILE_V2_0 instead of WLX_PROFILE_V1_0 and create an environment string that is filled with a single environment variable. WIP for bug #4102.

svn path=/trunk/; revision=47187
2010-05-12 22:10:07 +00:00
Sir Richard 3a80da9a3e [NTOS]: When grabbing physically contigous pages from the zero or free list, make sure to re-initialize their PFN entries correctly, since their data might be stale. Fixes potential weird memory corruption bugs.
[NTOS]: Physically contiguous memory allocations are not guaranteed to be zeroed, so do not zero the pages.
[NTOS]: When allocating contigous memory, mark the PFN entries appropriately after mapping the I/O ranges.
[NTOS]: When freeing contiguous memory, assert that all the freed pages correspond to PFN entries that we expect to have allocated for this purpose. Detects (not neccessarily fixes) memory corruption issues in contiguous memory allocations.
[NTOS]: These changes mostly affect certain network card and sound card systems/real hardware, they fix possible bugs and detect corruption that was otherwise going by unnoticed.

svn path=/trunk/; revision=47186
2010-05-12 21:37:19 +00:00
Gregor Schneider b320b4bcb1 [SHELL32] Amendment to r47182: GetAsyncKeyState -> GetKeyState (thanks to Giannis), simplify
svn path=/trunk/; revision=47185
2010-05-12 21:11:24 +00:00
Sir Richard 547dbfc5cf [NTOS]: Move MiFindContiguousPages to ARM3/contmem.c since I don't know what it was doing in freelist.c. No code change.
svn path=/trunk/; revision=47184
2010-05-12 20:57:21 +00:00
Sir Richard 11453cf565 [NTOS]: Add assertions to the paged pool and demand zero page faults, to catch possible errors and corruptions. These paths are not yet taken in today's builds, so they do not affect any runtime code.
[NTOS]: Add assertions regarding the portability of certain code, which will need changes on ARM/x64. These should probably be C_ASSERT's but I don't want to break Timo's build.
[NTOS]: Define MM_NOIRQL (found in assertions) instead of magical -1.
[NTOS]: Add MI_IS_SESSION_PTE macro.
[NTOS]: Export the MiXxxPte variables.
[NTOS]: Fix some typos in comments.


svn path=/trunk/; revision=47183
2010-05-12 20:48:15 +00:00
Gregor Schneider 77bbb3cacb [SHELL32] Add initial ctrl+c/v handling (WIP for bug #4850)
svn path=/trunk/; revision=47182
2010-05-12 20:41:55 +00:00
Gregor Schneider 0c0d737b5d [SHELL32] Remove misplaced function header
svn path=/trunk/; revision=47181
2010-05-12 20:37:48 +00:00
Gregor Schneider 7b762e3b4e [SHELL32] Improve debug print by printing text
svn path=/trunk/; revision=47180
2010-05-12 19:54:02 +00:00
Gregor Schneider 0b2f076246 [USRMGR]
- Fix the friends of the bug of the month

svn path=/trunk/; revision=47179
2010-05-12 19:19:44 +00:00
Sir Richard 47b27e38f3 [NTOS]: Fix MiInsertPageInFreeList, it was using the ARM3 PFN Database macro, even though we are still using the Mm PFN Database. Also, it was lacking the code to notify the zero-page thread, and to increase available pages.
svn path=/trunk/; revision=47178
2010-05-12 19:11:49 +00:00
Eric Kohl 6899eeb7b6 [WINLOGON]
Fixed bug of the month. I'm surprised that winlogon worked at all.

svn path=/trunk/; revision=47177
2010-05-12 19:10:04 +00:00
Sir Richard 291fb765f3 [NTOS]: Fix 4MB assumptions and use PDE_MAPPED_VA instead, which accurately describes the address space mapped by a PDE (which is different on PAE, x64, ARM, etc).
svn path=/trunk/; revision=47175
2010-05-12 18:42:05 +00:00
Sir Richard 944fe46d70 [NTOS]: User pages are not used until Phase 1, they should not be setup in Phase 0. Fixes premature initalization.
svn path=/trunk/; revision=47174
2010-05-12 18:39:09 +00:00
Sir Richard 926bd0522f [NTOS]: Compute MiHighestUserPte, MiHighestUserPde, MiSessionImagePteStart, MiSessionImagePteEnd, MiSessionBasePte, MiSessionLastPte since these internal variables did not exit yet. Useful for debugging and also future PFN support. Just computes some values, no behavior changes.
svn path=/trunk/; revision=47173
2010-05-12 18:36:15 +00:00
Sir Richard 133872d3e7 [NTOS]: MmSystemPageDirectory is an array of page directories, not just a value. On x86 there's just one page directory, but that's not the case on other architectures/PAE, so fix this bug.
svn path=/trunk/; revision=47172
2010-05-12 18:33:18 +00:00
Aleksey Bragin c6ddd201c7 [HALX86]
- Revert changes to HalpGetPCIData made in r47162. There is no need to introduce ReactOS-specific behavior of this function. It's much better to aim real NT compatibility, and develop your drivers against NT first and only then hack ReactOS.
- Changes to buses scanning are left as they are.

svn path=/trunk/; revision=47169
2010-05-12 09:45:43 +00:00
Aleksey Bragin cdf0478255 [USBDRIVER]
- Implement deregistering HCD in a device manager. Now, the HCI which failed to initialize will be properly freed without calling NULL pointer or crashing with freed memory access.
See issue #4813 for more details.

svn path=/trunk/; revision=47168
2010-05-12 09:42:07 +00:00
Aleksey Bragin e4dec4c4cb - Revert 47139 by cgutman: Don't try to be smarter than usbdriver's author. He especially put registering HCD interface before so that any error handling function would work correctly and free up allocated resources. Fixes one crash in VMWare. A proper solution for the problem which 47139 tried to "fix" will be committed next.
svn path=/trunk/; revision=47167
2010-05-12 09:34:36 +00:00
Jeffrey Morlan cdc3b26818 commit file missing from r47165
svn path=/trunk/; revision=47166
2010-05-12 04:01:16 +00:00
Jeffrey Morlan 630ecdce7c [KERNEL32] [WIN32CSR] Implement SetConsoleScreenBufferSize. FAR Manager now works again.
svn path=/trunk/; revision=47165
2010-05-12 03:34:02 +00:00
Timo Kreuzer acb61e7d31 [FREELDR] Fix uninitialized variable warning. (Does anyone know why the warning isn't treated as an error?)
[SETUPLDR] Use mini_hal only on i386 builds

svn path=/trunk/; revision=47164
2010-05-12 03:29:08 +00:00
Jeffrey Morlan 3ffc64878c [WIN32CSR] Get rid of dynamic "LineBuffer": it wasn't being resized properly in all cases, causing corruption of Win32CsrApiHeap. Replaced with fixed buffer (painting a line with multiple TextOutW calls if necessary).
svn path=/trunk/; revision=47163
2010-05-12 03:03:12 +00:00
Cameron Gutman 0a6ca40598 [HAL]
- Return the correct value if the PCI slot number is invalid
- Use the bus number from the PCI BIOS instead of doing a manual probe if we can because it is much more accurate (our probing code doesn't detect buses without devices present)
- Don't probe for devices at invalid locations on PCI type 2 buses
- Check for a valid bus number so we don't return the wrong value

svn path=/trunk/; revision=47162
2010-05-12 02:34:04 +00:00
Sir Richard c5e12bcf40 [NTOS]: We might get page faults before memory areas are setup, since so much ARM3 work now gets done before the memory areas are ready to go. Since obviously these faults cannot be caused by non-ARM3 Mm, we assume them to be ARM3 faults (as long as they happened in KSEG0_BASE). Fixes a bug where early page faults in ARM3 PTEs would get treated as non-ARM3 faults and fail.
svn path=/trunk/; revision=47161
2010-05-12 00:40:23 +00:00
Sir Richard f61cf60f1b [NTOS]: HEADERS: Add PDE_TOP. It is defined for IA64/AMD64 but not for i386 (in the public headers). Add a note that these addresses are bogus on PAE systems.
svn path=/trunk/; revision=47160
2010-05-12 00:38:46 +00:00
Sir Richard b5a09b26c2 [NTOS]: Restore previous correct ASM behavior of checking for success codes, not only STATUS_SUCCESS, after a page fault. For example, a demand zero fault returns STATUS_PAGE_FAULT_DEMAND_ZERO upon success, and the new C code would treat it as a failure. Fixes a bug.
svn path=/trunk/; revision=47159
2010-05-12 00:36:52 +00:00
Cameron Gutman 449b78ccc5 [NTOSKRNL]
- Fix a typo 
- Safe mode with networking has an OptionValue of 2 not 1
- Currently unused (for now ;))

svn path=/trunk/; revision=47157
2010-05-11 00:36:56 +00:00
Cameron Gutman 609171f4ac [AFD]
- Fix signaling socket termination events on disconnect
- Fixes bug 4951

svn path=/trunk/; revision=47156
2010-05-10 21:14:26 +00:00
Daniel Reimer 7335bf8947 Update the rapps Database to a valid FireFox Link once more...
+ update all apps to the recent versions

svn path=/trunk/; revision=47154
2010-05-10 18:27:07 +00:00
Eric Kohl 76a4723fa9 [INF]
- Add 'PortSubClass' values for serial and parallel ports.

svn path=/trunk/; revision=47152
2010-05-09 21:58:04 +00:00
Daniel Reimer 2699cdc3de Update WinFile to Wine 1.1.44
svn path=/trunk/; revision=47151
2010-05-09 20:23:07 +00:00
Sir Richard eaaf713f3d [NTOS]: Acquire PFN lock before setting up hyperspace PTE/page.
[NTOS]: Flush TLB after setting up hyperspace.
[NTOS]: Use new MiRemoveAnyPage interface instead of MmAllocPage(MC_SYSTEM), as the first test of the new Page API/ABI.
[NTOS]: Add support for creating software PTEs.

svn path=/trunk/; revision=47150
2010-05-09 18:17:53 +00:00
Sir Richard af06182171 [NTOS]: Implement MiRemoveAnyPage and MiRemovePageByColor, but only using the list heads, and not the color list heads. Unused.
[NTOS]: Fixup unused MiInsertPageInFreeList variables ot match the other functions (ColorTable vs ColorHead).

svn path=/trunk/; revision=47149
2010-05-09 18:12:50 +00:00
Sir Richard a38d98d504 [NTOS]: At times, pages may be removed from the zero or free page list, but without being initialized as part of the PFN database, such that their PageLocation has not changed. However, we can detect these pages because their link pointers will be NULL, meaning they're not _really_ free or zeroed. Use this enhanced check when verifying if a page is in use or not, and additionally triple-check by making sure the reference count is zero. This now matches the Windows checks. We also consider Standby pages (not yet implemented) as usable, since we can always steal them.
svn path=/trunk/; revision=47148
2010-05-09 18:06:38 +00:00
Gregor Schneider b6b00740ca [INPUT]
- Reorder keyboard layouts in the registry after one was deleted
- Fixes changing keyboard layouts from regional options
See issue #3317 for more details.

svn path=/trunk/; revision=47147
2010-05-09 15:02:58 +00:00
Johannes Anderwald 9cb27f40af [WIN32CSR]
- Add primitive resizing support and automatic scrolling support
- Patch by Adam Kachwalla (IRC:Crocodile)

See issue #2622 for more details.

svn path=/trunk/; revision=47146
2010-05-09 13:39:48 +00:00
Johannes Anderwald 28f11ad5f1 [CONSOLE]
- Store console changes when screen buffer / window size changes
- Mark property sheet as changed when color control changes

svn path=/trunk/; revision=47144
2010-05-09 13:12:21 +00:00
Michael Martin 786f5a19d7 [win32k]
- When message are sent without waiting a reply (non-queued messages) the message queues are referenced and dereferenced in the call. 
Message removal and cleanup functions for queues expected a reference on the queue. Add checks to determine if the message is a non-queued message and if so release memory for those that had pointers and more importantly skip dereferencing the queues. Possibly fixes random crashes and memory leaks.

svn path=/trunk/; revision=47142
2010-05-09 12:27:57 +00:00
Daniel Reimer 330de811a7 Bug 5355: [PATCH] cacls: Add Japanese resource by Katayama Hirofumi
Bug 5371: TRANSLATION: Italian translation updates by Paolo Devoti
Bug 5337: PATCH: Some kernel32 lang updates (de-DE updated, others fixed) by forenkrams@tuxproject.de
Bug 5366: TRANSLATION: Czech translation update by Radek Liska

svn path=/trunk/; revision=47141
2010-05-09 12:14:25 +00:00
Cameron Gutman e47ef16223 [USBDRIVER]
- Register the device with the device manager only after it has been successfully allocated to avoid a crash
- A device that failed in xhci_alloc would never get deregistered from the device manager so it would crash when it entered xhci_start with a partially set up device extension
- Define release_adapter to HalPutDmaAdapter to fix a DMA adapter leak
[HAL]
- Export HalPutDmaAdapter

svn path=/trunk/; revision=47139
2010-05-09 11:18:16 +00:00
Gregor Schneider 428dff1a79 [WIN32K]
- Check the supplied scancode instead of the state buffer whether a key is up
- Fixes the calculator keyboard input regression introduced with r35117
- Ref: http://www.osronline.com/ddkx/w98ddk/keycnt_4ilz.htm and wine implementation
See issue #3727 for more details.

svn path=/trunk/; revision=47138
2010-05-08 22:26:48 +00:00
Cameron Gutman 1bd675f802 [USBDRIVER]
- Fix an off-by-one error in the probing code
- Scan all PCI buses instead of just the first two
- Fix a horrible bug that resulted in reinitializing EHCI controllers as UHCI controllers which caused a crash on VirtualBox (with _MULTI_UHCI)
- Implement support for multiple EHCI controllers and enable support for multiple UHCI controllers (greatly increases compatibility with real hardware because the first controller detected is often internal)

svn path=/trunk/; revision=47136
2010-05-08 21:53:57 +00:00
Aleksey Bragin 438916ee96 - Fix release build.
svn path=/trunk/; revision=47135
2010-05-08 20:38:58 +00:00
Kamil Hornicek 006a12e270 [WIN32K]
- Bring back support for RLE compressed bitmaps.
- Merge the decompress functions for 4bb and 8bpp bitmaps to one generic function.
- Simplify SURFMEM_bCreateDib a bit by not allowing PNG/JPEG compression at all.
See issue #5276 for more details.

svn path=/trunk/; revision=47134
2010-05-08 18:09:45 +00:00
Timo Kreuzer bfe6479cf7 Revert r47130, it was already comitted.
svn path=/trunk/; revision=47132
2010-05-08 16:42:03 +00:00
Timo Kreuzer 2545e83084 [w32knapi}
Patch by Jerome Gardou: add some more tests for NtGdiDeleteObjectApp

svn path=/trunk/; revision=47130
2010-05-08 16:38:05 +00:00
Eric Kohl e03efb63b2 [WINLOGON]
- Move environment creation to a separate file.
- Impersonate the new user and create the 'Volatile Environment' key for the new user.

svn path=/trunk/; revision=47129
2010-05-08 16:30:56 +00:00
Gregor Schneider 0963ef8f61 Add some win32k/gdi DC tests created by Jerome Gardou
svn path=/trunk/; revision=47128
2010-05-08 16:27:36 +00:00
Sylvain Petreolle 4545e038a2 Disable test_GetLongPathNameW() in kernel32:path test for now.
Fixes testbot crash, bug 5370


svn path=/trunk/; revision=47127
2010-05-08 16:27:15 +00:00