reactos.git
10 years ago[NDIS]
Cameron Gutman [Sun, 6 Jun 2010 18:09:25 +0000 (18:09 +0000)]
[NDIS]
- Implement miniport timer queuing
- Add some BUGCODE_ID_DRIVER bug check cases for missing interrupt deregistration, missing timer cancellation, and invalid IRQL when calling NdisMAllocateSharedMemory

svn path=/trunk/; revision=47630

10 years ago[NTOS]: Enable usage of ARM3 paged pool, up until Mm Phase 2.
Sir Richard [Sun, 6 Jun 2010 15:59:42 +0000 (15:59 +0000)]
[NTOS]: Enable usage of ARM3 paged pool, up until Mm Phase 2.
[NTOS]: Re-arrange some of the init code, now that we have access to ARM3 paged pool early-on. Move more code to ARM3::INIT in its right place.
[NTOS]: Enable using the ARM3 PFN Database, getting rid of the old ReactOS PFN database. Should reduce physical memory usage now that we don't have two copies anymore.
[NTOS]: Fix the ARM3 PFN Datbase initialization code.
[NTOS]: Get rid of MiInitializePageList, use MiGetPfnEntryOffset instead of hard-coded pointer math in freelist.c.
This is the last big low-level Mm/ARM3 patch for a long, long time.

svn path=/trunk/; revision=47627

10 years ago[COMPBATT]: Remove useless function.
Sir Richard [Sun, 6 Jun 2010 15:49:54 +0000 (15:49 +0000)]
[COMPBATT]: Remove useless function.

svn path=/trunk/; revision=47626

10 years ago- Fix a comment and remove a superfluous extern.
Stefan Ginsberg [Sun, 6 Jun 2010 14:42:03 +0000 (14:42 +0000)]
- Fix a comment and remove a superfluous extern.

svn path=/trunk/; revision=47625

10 years ago[NTOS]: Another one bites the dust, another one bites the dust. And another one gone...
Sir Richard [Sun, 6 Jun 2010 14:24:18 +0000 (14:24 +0000)]
[NTOS]: Another one bites the dust, another one bites the dust. And another one gone and another one gone. Another one bites the dust, yeah. Out of the doorway the bullets rip, Repeating to the sound of the beat.

svn path=/trunk/; revision=47624

10 years ago[NTOS]: A PFN entry is not necessarily physical only if it is higher than MmHighestPh...
Sir Richard [Sun, 6 Jun 2010 14:15:18 +0000 (14:15 +0000)]
[NTOS]: A PFN entry is not necessarily physical only if it is higher than MmHighestPhysicalPage. It can also be physical if it lies in a memory hole within the min-max physical page range. We can detect this by using our PFN Bitmap. So replace all "Is this an I/O mapping?" checks with a check on whether or not the PFN Database entry is NULL (which will check for us both of these statements). This ought to be a macro...

svn path=/trunk/; revision=47623

10 years ago[NTOS]: Don't use MmAllocPage for the first paged pool PDE, instead, use MiRemoveZero...
Sir Richard [Sun, 6 Jun 2010 14:13:35 +0000 (14:13 +0000)]
[NTOS]: Don't use MmAllocPage for the first paged pool PDE, instead, use MiRemoveZeroPage.
[NTOS]: Use MiInitializePfnForOtherProcess to setup the first paged pool PDE.

svn path=/trunk/; revision=47622

10 years ago[NTOS]: Implement MiRemoveZeroPage and MiZeroPhysicalPage.
Sir Richard [Sun, 6 Jun 2010 14:12:28 +0000 (14:12 +0000)]
[NTOS]: Implement MiRemoveZeroPage and MiZeroPhysicalPage.
Not yet used.

svn path=/trunk/; revision=47621

10 years ago[NTOS]: Fix a loop off-by-one when saving the page table index in contigious memory...
Sir Richard [Sun, 6 Jun 2010 13:42:19 +0000 (13:42 +0000)]
[NTOS]: Fix a loop off-by-one when saving the page table index in contigious memory allocation PFNs. Spotted by Stefan100.

svn path=/trunk/; revision=47620

10 years agoAdd /KDSERIAL to the command line, to make sysreg able to bt in first stage.
Timo Kreuzer [Sun, 6 Jun 2010 07:52:32 +0000 (07:52 +0000)]
Add /KDSERIAL to the command line, to make sysreg able to bt in first stage.

svn path=/trunk/; revision=47615

10 years ago[NTOSKNRL]
Timo Kreuzer [Sun, 6 Jun 2010 07:35:21 +0000 (07:35 +0000)]
[NTOSKNRL]
Add the possibility to break on all first chance exceptions, by passing /FIRSTCHANCE on the command line. Enable it temporary to get some more information from the sysreg crash.

svn path=/trunk/; revision=47614

10 years ago[rtl]
Michael Martin [Sun, 6 Jun 2010 07:21:53 +0000 (07:21 +0000)]
[rtl]
- Fix a overlooked change needed due to mbstowcs fix. Use the number of WCHARs vice number of bytes to calculate end of xmlbuf.

svn path=/trunk/; revision=47613

10 years ago[NTOS]: Clean up /mm a bit, move sysldr.c into ARM3.
Sir Richard [Sun, 6 Jun 2010 04:38:51 +0000 (04:38 +0000)]
[NTOS]: Clean up /mm a bit, move sysldr.c into ARM3.

svn path=/trunk/; revision=47608

10 years ago[NTOS]: Silence more debug spew.
Sir Richard [Sun, 6 Jun 2010 04:37:53 +0000 (04:37 +0000)]
[NTOS]: Silence more debug spew.

svn path=/trunk/; revision=47607

10 years ago[NTOS]: Fix for the the bug that broke ARM3 paged pool (and has been corrupting React...
Sir Richard [Sun, 6 Jun 2010 01:04:03 +0000 (01:04 +0000)]
[NTOS]: Fix for the the bug that broke ARM3 paged pool (and has been corrupting ReactOS paged pool behind the scenes for years):
        When a KCB (key stuff) is allocated, the key name associated with it receives an NCB (name stuff). In case this name is already used, a cache exists, and an existing NCB is grabbed, and its reference count is increased. When the KCB goes away, its NCB loses a reference. When all references are gone, the NCB is destroyed. Simple enough.
        It turns out that what was currently happening is that an NCB would get dereferenced to 0, deleted, but still remained attached to a valid KCB (shouldn't happen). When that KCB went away, the NCB's reference count was dropped to... -1, and then -2, -3, -4, etc. Remember this is a FREED NCB. In other words, freed pool, that might now belong to someone else, was getting "-1" operations on it. So any value stored in that freed pool would get decremented by one. In ARM3 paged pool, because the allocator keeps a linked list, what would happen is that the FLINK pointer would be 0xE0F01234 instead of 0xE1A01234. What happened is that "0xE1A0" was treated as the reference count of the freed NCB, and it kept getting dereferenced down to 0xE0F0.
        Proving this was easy, by adding an ASSERT(Ncb->RefCount >= 1) to the routine that dereferences NCBs. Obviously, we should not try to dereference an NCB that has a reference count of 0, because that NCB is now gone. Adding this ASSERT immediately caught the error, regardless of which pool implementation was being used, so this was a problem in ReactOS today, right now.
        My first thought was that we were taking references to NCBs without incrementing the reference count. The NCB gets referenced in two places: when it gets created, and everytime a cached NCB is re-used for a new KCB (all this in CmpGetNameControlBlock).
After adding some tracing code, I discovered that CmpGetNameControlBlock would sometimes return an NCB that was cached, but without referencing it. I did not understand why, since the code says "if (Found) Ncb->RefCount++".
        Further analysis showed that what would happen, on this particular instance, is that NCB "Foo" was being Found, but NCB "Bar" was returned instead. Therefore, causing some serious issues: First, NCB Foo was receiving too many references. Secondly, NCB Bar was not being referenced.
        Worse though, it turns out this would happen when "Foo" was the CORRECT NCB, and "Bar" was an INCORRECT NCB. What do we mean by correct and incorrect? Well, because NCBs are hashed, it's possible for two NCB hashes to be VERY SIMILAR, but only ONE OF THOSE NCBs will be the right one -- for example, HKLM\Software\Hello vs HKLM\Software\Hell.
        In our case, when a KCB for "Hello" was searching for the "Hello" NCB, the "Hello NCB would get a reference, but the "Hell" NCB would be returned. In other words, whenever a HASH COLLISION happened, the incorrect NCB was returned, probably messing up registry code in the process. Subsequently, when the KCB was dereferneced, it was attached to this incorrect, under-referenced NCB.
        Since in ANY hash collision with "Hell", in our example, the "Hell" NCB would come first, subsequent searches for "Hellmaster", "Hellboy", "Hello World" would all still return "Hell". Eventually when all these KCBs would go away, the "Hell" NCB would reach even -18 references.
        The simple solution? When the CORRECT NCB is found, STOP SEARCHING! By adding a simple "break" statement. Otherwise, even after the correct NCB is found, further, incorrect, collided NCBs are found, and eventually the last one ("Hell", in our example) got returned, and under-referenced, while "Hellmaster" and "Hellboy" were not returned, but LEAKED REFERENCES.
        There you have it folks, MEMORY CORRUPTION (USE-AFTER-FREE), INCORRECT REGISTRY NAME PARSHING, REFERENCE LEAKS and REFERENCE UNDERRUNS, all due to ONE missing "break;".
        -r

svn path=/trunk/; revision=47605

10 years ago[NTOS]: Kill some debug spew.
Sir Richard [Sun, 6 Jun 2010 00:49:26 +0000 (00:49 +0000)]
[NTOS]: Kill some debug spew.

svn path=/trunk/; revision=47604

10 years ago[NTOS]: Even after allowing ARM3 paged pool, we should still use the old allocator...
Sir Richard [Sat, 5 Jun 2010 19:32:46 +0000 (19:32 +0000)]
[NTOS]: Even after allowing ARM3 paged pool, we should still use the old allocator to free allocations made by the old allocator!

svn path=/trunk/; revision=47601

10 years ago[NTOS]: Fix up POOL_PREV_BLOCK based on suggestion by hpoussin.
Sir Richard [Sat, 5 Jun 2010 19:19:28 +0000 (19:19 +0000)]
[NTOS]: Fix up POOL_PREV_BLOCK based on suggestion by hpoussin.
[NTOS]: Fix up NTAPI location in function definition.
[NTOS]: Implement even more stringent header checks: ExpCheckPoolHeader and ExpCheckPoolBlocks. Normally we would only want this on a DBG build, but I am enabling them for now until I can fix paged pool. If your machine crashes, reverting this commit is NOT the solution (boots for me).
[NTOS]: Add a AllowPagedPool BOOLEAN that will allow us to selectively enable when the ARM3 pool can be used, playing around with the situation that causes the corruption, and perhaps making it easier to find/fix.

svn path=/trunk/; revision=47600

10 years ago[NTOS]: Kill debug spew.
Sir Richard [Sat, 5 Jun 2010 19:17:21 +0000 (19:17 +0000)]
[NTOS]: Kill debug spew.

svn path=/trunk/; revision=47599

10 years ago[NTOS]: Fix Exp*PoolList macros. Also make then non-inlined, so we can see who called...
Sir Richard [Sat, 5 Jun 2010 18:26:15 +0000 (18:26 +0000)]
[NTOS]: Fix Exp*PoolList macros. Also make then non-inlined, so we can see who called them in a stack trace.
[NTOS]: Enable them.
This boots on my system -- if it doesn't boot on yours, someone is corrupting your nonpaged pool. Reverting this patch is NOT the solution to your woes.

svn path=/trunk/; revision=47598

10 years ago[WIN32CSR]
Jeffrey Morlan [Sat, 5 Jun 2010 18:17:42 +0000 (18:17 +0000)]
[WIN32CSR]
- Implement basic support for history in line editing
- Reorganize code to reflect that line input is more coupled to history than it is to character input

svn path=/trunk/; revision=47597

10 years ago[NTOS]: Add some paranoid-invariant list access checks to the pool code. They serve...
Sir Richard [Sat, 5 Jun 2010 18:02:45 +0000 (18:02 +0000)]
[NTOS]: Add some paranoid-invariant list access checks to the pool code. They serve a dual purpose: catch pool corruption by broken drivers/kernel code, as well as catch malicious modification of the pool links as part of a kernel-mode exploit.
[NTOS]: Not yet used, thanks to Arthur for the idea.
See comment for more information.

svn path=/trunk/; revision=47596

10 years ago[NTOS]: Defensive programming on the pool macros.
Sir Richard [Sat, 5 Jun 2010 17:54:19 +0000 (17:54 +0000)]
[NTOS]: Defensive programming on the pool macros.

svn path=/trunk/; revision=47595

10 years ago[NTOS]: Use logical math operations on the various block<->entry<->free_list_head...
Sir Richard [Sat, 5 Jun 2010 17:53:17 +0000 (17:53 +0000)]
[NTOS]: Use logical math operations on the various block<->entry<->free_list_head operations in the pool code, instead of works-by-chance-and-assumption pointer math operations. This will now allow pool implementations where the pool header is not the size of a pool block (and the size of a LIST_ENTRY, by definition, although, even that, could change, if we choose to implement a cache-aligned overhead).

svn path=/trunk/; revision=47594

10 years ago[NTOSKRNL]
Cameron Gutman [Sat, 5 Jun 2010 17:51:12 +0000 (17:51 +0000)]
[NTOSKRNL]
- Print the base address of the process that we killed to make debugging much easier

svn path=/trunk/; revision=47593

10 years ago[NTOS]: Define the POOL_HEADER for x64.
Sir Richard [Sat, 5 Jun 2010 16:53:54 +0000 (16:53 +0000)]
[NTOS]: Define the POOL_HEADER for x64.
[NTOS]: Define POOL_BLOCK_SIZE definition to set the minimum pool block size. In NT, this is equal to a LIST_ENTRY structure, because the Pool Allocator must be able to store a LIST_ENTRY into a freed pool block. This also determines the alignment of pool allocations. So 8 on x86, 16 on x64.
[NTOS]: Don't depend on LIST_ENTRY, but use POOL_BLOCK_SIZE instead (on IA64, if we ever want to support this, the pool block size is different from a LIST_ENTRY/POOL_HEADER).
[NTOS]: The following ASSERTs must hold: the POOL_HEADER must be as big as the the smallest pool block (POOL_BLOCK_SIZE), which must be at least as big as a LIST_ENTRY structure. 8 == 8 == 8 on x86, 16 == 16 == 16 on x64.

svn path=/trunk/; revision=47592

10 years ago[NTOS]: Don't assume that ANY fault in the system address range, not associated to...
Sir Richard [Sat, 5 Jun 2010 14:59:50 +0000 (14:59 +0000)]
[NTOS]: Don't assume that ANY fault in the system address range, not associated to a memory area, might be ARM3. Instead, since this hack only exists for early boot page pool support, make only treat this as an ARM3 fault when it happens in the paged pool area or higher. Leads to more direct Mm crashes when invalid page access happens, instead of infinite "PAGE FAULT ON PAGE TABLES".

svn path=/trunk/; revision=47589

10 years ago[NTOS]: In MiInitializePfnForOtherProcess, should increment the sharecount of the...
Sir Richard [Sat, 5 Jun 2010 14:55:17 +0000 (14:55 +0000)]
[NTOS]: In MiInitializePfnForOtherProcess, should increment the sharecount of the page table PFN entry, not the PFN entry of the PTE itself. Spotted by Stefan100.

svn path=/trunk/; revision=47588

10 years ago[NTOS]: In MiDeleteSystemPageableVm, should also handle the case where the PTE is...
Sir Richard [Sat, 5 Jun 2010 14:54:26 +0000 (14:54 +0000)]
[NTOS]: In MiDeleteSystemPageableVm, should also handle the case where the PTE is demand-zero. This can happen if the caller allocated, say, 12KB (3 pages) of paged pool, only touched 4KB (1 page), and then frees the allocation -- the other 2 pages will still be demand-zero at this point.

svn path=/trunk/; revision=47587

10 years ago[NTOSKRNL]
Eric Kohl [Sat, 5 Jun 2010 12:20:53 +0000 (12:20 +0000)]
[NTOSKRNL]
NtDuplicateToken: Fail, if a primary token is to be created from an impersonation token and and the impersonation level of the impersonation token is below SecurityImpersonation.

svn path=/trunk/; revision=47586

10 years ago[WIN32CSR] Implement some basic line editing capability
Jeffrey Morlan [Sat, 5 Jun 2010 06:10:53 +0000 (06:10 +0000)]
[WIN32CSR] Implement some basic line editing capability

svn path=/trunk/; revision=47584

10 years ago[NTOS]: Implement MiDeleteSystemPageableVm.
Sir Richard [Sat, 5 Jun 2010 04:16:46 +0000 (04:16 +0000)]
[NTOS]: Implement MiDeleteSystemPageableVm.
[NTOS]: The paged pool free code was behaving incorrectly, assuming that paged pool was "locked down" and never paged out/reused (a valid NT operation mode), while the allocation code was assuming paged pool was a volatile, reusable, pageable resource (normal NT operation mode). The free code now assumes normal operation mode, and actually frees the freed paged pool pages, by using MiDeleteSystemPageableVm.
I have a feeling this will make ARM3 paged pool work.

svn path=/trunk/; revision=47582

10 years agoadd missing file
Jeffrey Morlan [Sat, 5 Jun 2010 03:12:51 +0000 (03:12 +0000)]
add missing file

svn path=/trunk/; revision=47581

10 years ago[KERNEL32], [WIN32CSR]
Jeffrey Morlan [Sat, 5 Jun 2010 00:45:08 +0000 (00:45 +0000)]
[KERNEL32], [WIN32CSR]
- Implement console history (note: not too useful yet without any way to recall it)
- Implement APIs GetConsoleCommandHistoryLength, GetConsoleCommandHistory, ExpungeConsoleCommandHistory, SetConsoleNumberOfCommands, GetConsoleHistoryInfo, SetConsoleHistoryInfo.
- Remove stub of obsolete function SetConsoleCommandHistoryMode, which no longer exists in Windows.

svn path=/trunk/; revision=47580

10 years ago[NTOS]: When expanding paged pool, use MiRemoveAnyPage, not MmAllocPage.
Sir Richard [Fri, 4 Jun 2010 22:08:40 +0000 (22:08 +0000)]
[NTOS]: When expanding paged pool, use MiRemoveAnyPage, not MmAllocPage.
[NTOS]: When expanding paged pool, initialize the PFN entry for the allocated page. Note we might be in arbitrary process space, so the PTE is not necessary valid for the process causing the expansion.
[NTOS]: Implement MiInitializePfnForOtherProcess to handle the case above.
[NTOS]: Change two static ASSERTs into C_ASSERTs. Might break non-x86 builds for a bit (vs breaking them at boot, which is worse).
Paged pool should start working soon.

svn path=/trunk/; revision=47579

10 years ago[winnt.h]
Timo Kreuzer [Fri, 4 Jun 2010 21:50:06 +0000 (21:50 +0000)]
[winnt.h]
Fix definition of KNONVOLATILE_CONTEXT_POINTERS for amd64

svn path=/trunk/; revision=47578

10 years ago[FREELOADER]
Cameron Gutman [Fri, 4 Jun 2010 20:36:48 +0000 (20:36 +0000)]
[FREELOADER]
- Use the old method for identifying the drive type (based on partition number) which actually works for floppies now because I changed the DrivePartition value returned (floppy = 0, cdrom = 0xFF) in a previous commit
- Fixes bug 5233

svn path=/trunk/; revision=47577

10 years ago[FREELOADER]
Cameron Gutman [Fri, 4 Jun 2010 20:22:29 +0000 (20:22 +0000)]
[FREELOADER]
- Remove duplicated code
- Add back the Mac hack but use 0x8A for the lowest CD-ROM drive number instead of 0x90

svn path=/trunk/; revision=47576

10 years ago[NTOS]: Build paged pool demand-zero PTE with MI_MAKE_SOFTWARE_PTE macro.
Sir Richard [Fri, 4 Jun 2010 20:18:27 +0000 (20:18 +0000)]
[NTOS]: Build paged pool demand-zero PTE with MI_MAKE_SOFTWARE_PTE macro.
[NTOS]: Handle paged pool demand-zero fault fulfillment with MI_MAKE_HARDWARE_PTE macro.
[NTOS]: Use MiRemoveAnyPage instead of MmAllocPage, in paged pool demand-zero fault fulfillment.
These changes affect code paths that are not currently in-use.

svn path=/trunk/; revision=47575

10 years ago[DDK]
Timo Kreuzer [Fri, 4 Jun 2010 20:16:26 +0000 (20:16 +0000)]
[DDK]
Fix definition of USE_DMA_MACROS

svn path=/trunk/; revision=47574

10 years ago[MMEBUDDY]
Timo Kreuzer [Fri, 4 Jun 2010 18:37:14 +0000 (18:37 +0000)]
[MMEBUDDY]
Make mmebuddy more 64bit compliant. Based on r40127 by Samuel Serapion with some modifications by me.

svn path=/trunk/; revision=47573

10 years ago[WIN32CSR] Console input simplification:
Jeffrey Morlan [Fri, 4 Jun 2010 18:26:22 +0000 (18:26 +0000)]
[WIN32CSR] Console input simplification:
- Put code for processing events for line input in one place, instead of duplicating it everywhere
- Remove "Fake" and "NotChar" fields from ConsoleInput struct. ConioProcessKey didn't actually add Fake events; they were used for the \n when converting \r to \r\n, but this is better done by the line input code.
- Build an input line completely on the server side; this will make it practical to add history and more sophisticated editing later

svn path=/trunk/; revision=47572

10 years agoTesters: Please test this build.
Sir Richard [Fri, 4 Jun 2010 17:49:36 +0000 (17:49 +0000)]
Testers: Please test this build.
[NTOS]: Implement a MI_MAKE_HARDWARE_PTE macro for the generation of valid kernel PTEs instead of always taking the ValidKernelPte and changing its flags. This macro will take into account the protection mask (up until now ignored) and use the array previously implemented to determine the correct hardware PTE settings. Assertions are also added to validate correct usage of the macro, and later revisions will fill out NT-specific fields to help deal with transition PTEs, page faults, etc.
[NTOS]: Make the stack code the first user of this macro, for the stack PTEs. Good testing base as we create kernel stacks very often.
[NTOS]: The NT MM ABI specifies that in between the allocation of a new PTE and its initialization as a valid PFN, the PTE entry should be an invalid PTE, and should only be marked valid after the PFN has been initialized. For stack PTEs, do this -- first allocating the page, making it invalid, then initializing the PFN, and then writing the valid page.

svn path=/trunk/; revision=47571

10 years ago[NTOS]: Allocate non-paged pool pages with MiRemoveAnyPage instead of MmAllocPage.
Sir Richard [Fri, 4 Jun 2010 17:40:11 +0000 (17:40 +0000)]
[NTOS]: Allocate non-paged pool pages with MiRemoveAnyPage instead of MmAllocPage.

svn path=/trunk/; revision=47570

10 years ago[HAL]
Timo Kreuzer [Fri, 4 Jun 2010 16:56:14 +0000 (16:56 +0000)]
[HAL]
Delete empty folder

svn path=/trunk/; revision=47569

10 years ago[WIN32CSR] Consistently store console input events internally as unicode.
Jeffrey Morlan [Fri, 4 Jun 2010 16:31:56 +0000 (16:31 +0000)]
[WIN32CSR] Consistently store console input events internally as unicode.

svn path=/trunk/; revision=47568

10 years ago[KS]
Timo Kreuzer [Fri, 4 Jun 2010 15:58:43 +0000 (15:58 +0000)]
[KS]
- KSSTREAM_POINTER_OFFSET doesn't have an Alignment member on 64 bit systems. Comment the use out in these cases. It should probably be removed completely, as it's only an alignment / dummy value, but I leave this to the expert in this field.
- ULONG -> ULONG_PTR for pointer casts

svn path=/trunk/; revision=47567

10 years ago[win32k]
Giannis Adamopoulos [Fri, 4 Jun 2010 11:30:14 +0000 (11:30 +0000)]
[win32k]
- CreateWindow: initialize window position after sending WM_GETMINMAXINFO message

svn path=/trunk/; revision=47566

10 years ago[HAL]
Timo Kreuzer [Fri, 4 Jun 2010 10:59:19 +0000 (10:59 +0000)]
[HAL]
- Move all amd64 specific files to one amd64 folder
- Compile x86 specific timer code only on x86
- Use KeRegisterInterruptHandler instead of manual idt manipulation
- add missing stubs for amd64

svn path=/trunk/; revision=47565

10 years ago[NTOSKRNL]
Timo Kreuzer [Fri, 4 Jun 2010 10:51:44 +0000 (10:51 +0000)]
[NTOSKRNL]
Implement KeRegisterInterruptHandler and KeQueryInterruptHandler for amd64

svn path=/trunk/; revision=47564

10 years ago[HAL]
Timo Kreuzer [Fri, 4 Jun 2010 10:17:55 +0000 (10:17 +0000)]
[HAL]
- Move memory functions from halinit.c to new memory.c
- HalpAllocPhysicalMemory: MemoryFirmwareTemporary -> LoaderFirmwareTemporary (same value, different enum)

svn path=/trunk/; revision=47563

10 years ago[KERNEL32], [WIN32CSR]
Jeffrey Morlan [Fri, 4 Jun 2010 06:36:12 +0000 (06:36 +0000)]
[KERNEL32], [WIN32CSR]
- Make Get/SetConsoleTitle more compatible with windows; in particular, transfer title via capture buffer to allow for longer titles.
- Tighten up capture buffer validation in win32csr.

svn path=/trunk/; revision=47562

10 years agorevert 47559 and 47560 (once again... sigh)
Timo Kreuzer [Fri, 4 Jun 2010 00:49:33 +0000 (00:49 +0000)]
revert 47559 and 47560 (once again... sigh)

svn path=/trunk/; revision=47561

10 years agotry to fix build
Timo Kreuzer [Fri, 4 Jun 2010 00:26:49 +0000 (00:26 +0000)]
try to fix build

svn path=/trunk/; revision=47560

10 years ago[DDK]
Timo Kreuzer [Fri, 4 Jun 2010 00:19:39 +0000 (00:19 +0000)]
[DDK]
Merge the rest of the old header-branch version of ntddk.h, but with a large number of additional types #if 0'ed out

svn path=/trunk/; revision=47559

10 years ago[DDK]
Timo Kreuzer [Thu, 3 Jun 2010 23:40:33 +0000 (23:40 +0000)]
[DDK]
try to work around the testbot brokenness with an #if 0"

svn path=/trunk/; revision=47558

10 years ago[HAL]
Timo Kreuzer [Thu, 3 Jun 2010 23:18:20 +0000 (23:18 +0000)]
[HAL]
Include the correct headers for amd64 vs i386

svn path=/trunk/; revision=47557

10 years ago[DDK]
Timo Kreuzer [Thu, 3 Jun 2010 23:08:40 +0000 (23:08 +0000)]
[DDK]
In an incredibly daring move, add even more types to ntddk.h

svn path=/trunk/; revision=47556

10 years ago[DDK]
Timo Kreuzer [Thu, 3 Jun 2010 22:25:25 +0000 (22:25 +0000)]
[DDK]
2nd try, this time adding half of the structures.

svn path=/trunk/; revision=47555

10 years agoRevert r47553 because testbot doesn't like it
Timo Kreuzer [Thu, 3 Jun 2010 22:15:54 +0000 (22:15 +0000)]
Revert r47553 because testbot doesn't like it

svn path=/trunk/; revision=47554

10 years ago[DDK}
Timo Kreuzer [Thu, 3 Jun 2010 21:55:57 +0000 (21:55 +0000)]
[DDK}
Add a number of PCI related types to ntddk.h

svn path=/trunk/; revision=47553

10 years ago[ReactOS-amd64.rbuild]
Timo Kreuzer [Thu, 3 Jun 2010 20:57:25 +0000 (20:57 +0000)]
[ReactOS-amd64.rbuild]
The old explorer won't compile for amd64 without massive hacking, so remove it from the build.

svn path=/trunk/; revision=47552

10 years ago[ROSTESTS]
Timo Kreuzer [Thu, 3 Jun 2010 20:08:26 +0000 (20:08 +0000)]
[ROSTESTS]
Fix 64 bit build of some modules (Samuel Serapion, modified by me)

svn path=/trunk/; revision=47551

10 years ago[W32KNAPI]
Timo Kreuzer [Thu, 3 Jun 2010 19:39:28 +0000 (19:39 +0000)]
[W32KNAPI]
Add few more tests for NtGdiCreateBitmap

svn path=/trunk/; revision=47550

10 years ago[GDI32API]
Timo Kreuzer [Thu, 3 Jun 2010 19:35:05 +0000 (19:35 +0000)]
[GDI32API]
add IsHandleValid and use it SelectObject test

svn path=/trunk/; revision=47549

10 years ago[DESK]
Gregor Schneider [Thu, 3 Jun 2010 18:47:37 +0000 (18:47 +0000)]
[DESK]
- Rearrange screensaver wait codes around the MsgWaitForMultipleObjects function
- Fixes screensaver configuration windows blocking the control panel
- Refs: http://blogs.msdn.com/b/oldnewthing/archive/2005/02/17/375307.aspx and http://codereflect.com/2008/09/19/when-and-how-should-we-use-msgwaitformultipleobjects/

See issue #4213 for more details.

svn path=/trunk/; revision=47548

10 years ago[COMCTRL32]
Timo Kreuzer [Thu, 3 Jun 2010 17:56:15 +0000 (17:56 +0000)]
[COMCTRL32]
Sync listview.c with wine 1.2 rc2

svn path=/trunk/; revision=47547

10 years ago[PSDK]
Timo Kreuzer [Thu, 3 Jun 2010 17:52:23 +0000 (17:52 +0000)]
[PSDK]
add LVSIL_GROUPHEADER definition to commctrl.h

svn path=/trunk/; revision=47546

10 years ago[BROWSEUI]
Timo Kreuzer [Thu, 3 Jun 2010 17:44:52 +0000 (17:44 +0000)]
[BROWSEUI]
merge r44391 from amd64 branch
fix 64bit build

svn path=/trunk/; revision=47545

10 years ago[user32]
Giannis Adamopoulos [Thu, 3 Jun 2010 16:12:43 +0000 (16:12 +0000)]
[user32]
- Remove a reactos only export (PrivateCsrssInitialized)
- Don't call NtUserGetClassLong
- Move implementation of AnyPopup to user mode
- Fix a small bug in GetParent and in IsChild

[csrss]
- Don't call PrivateCsrssInitialized

[win32k]
- Call CsrInit in NtUserInitialize so we can remove PrivateCsrssInitialized
- Romove a reactos only syscall (NtUserGetClassLong)
- Remove UserGetClassLongPtr, UserGetWindow, UserGetWindowLong, IntGetOwner. Instead access objects directly
- In WINDOW_OBJECT store pointer to the ownder window instead of a handle

svn path=/trunk/; revision=47544

10 years ago[DDK]
Timo Kreuzer [Thu, 3 Jun 2010 15:57:52 +0000 (15:57 +0000)]
[DDK]
Make RtlLargeIntegerDivide FORCEINLINE instead of __inline to avoid multiple definitions

svn path=/trunk/; revision=47543

10 years ago[rbuild]
Timo Kreuzer [Thu, 3 Jun 2010 15:50:19 +0000 (15:50 +0000)]
[rbuild]
- cleanup obsolete rbuild flags for amd64
- undefine WIN32 for amd64, only _WIN32 should be defined

svn path=/trunk/; revision=47542

10 years ago[SYSDM]
Gabriel Ilardi [Thu, 3 Jun 2010 15:09:08 +0000 (15:09 +0000)]
[SYSDM]
- Update Italian and Spanish translations.
- Add untranslated strings to the rest of the languages.

svn path=/trunk/; revision=47541

10 years ago[ACPICA]
Timo Kreuzer [Thu, 3 Jun 2010 14:55:25 +0000 (14:55 +0000)]
[ACPICA]
- Hack acwin64.h, don't assume msvc for win64

svn path=/trunk/; revision=47540

10 years ago[RBUILD]
Timo Kreuzer [Thu, 3 Jun 2010 14:49:47 +0000 (14:49 +0000)]
[RBUILD]
- append stdcall decoration only for i386 target

svn path=/trunk/; revision=47539

10 years agomerge 46805 from amd64 branch:
Timo Kreuzer [Thu, 3 Jun 2010 14:19:18 +0000 (14:19 +0000)]
merge 46805 from amd64 branch:

[RBUILD]
Fix some parameters (starting with --, not with -)

svn path=/trunk/; revision=47538

10 years ago[NTOSKRNL]
Eric Kohl [Thu, 3 Jun 2010 13:36:50 +0000 (13:36 +0000)]
[NTOSKRNL]
NtDuplicateToken: If the called does not provide any desired access rights the duplicate token will inherit the granted rights of the original token.

svn path=/trunk/; revision=47535

10 years ago[SYSDM]
Eric Kohl [Thu, 3 Jun 2010 13:17:33 +0000 (13:17 +0000)]
[SYSDM]
- Check the custom paging file sizes for being within useful limits and display warnings if these limit were exceeded.
- Translators: Please translate the message strings!

svn path=/trunk/; revision=47534

10 years agoMerge 46523 from amd64 branch:
Timo Kreuzer [Thu, 3 Jun 2010 12:47:40 +0000 (12:47 +0000)]
Merge 46523 from amd64 branch:

- Fix assert macro
- Add crt="MSVC" to a number of modules to resolve _assert

svn path=/trunk/; revision=47533

10 years ago[FREELDR]
Cameron Gutman [Thu, 3 Jun 2010 08:09:42 +0000 (08:09 +0000)]
[FREELDR]
- Remove an overzealous API check and the work-around for it

svn path=/trunk/; revision=47531

10 years ago[FREELDR]
Cameron Gutman [Thu, 3 Jun 2010 07:48:35 +0000 (07:48 +0000)]
[FREELDR]
- Verify that Int 13 extensions are supported before trying to use them

svn path=/trunk/; revision=47530

10 years ago[rtl]
Michael Martin [Thu, 3 Jun 2010 07:08:07 +0000 (07:08 +0000)]
[rtl]
- len returned from mbstowcs is the required size of the destination string, so only allocate the needed size.
- When doing the actual conversion pass in the size of the ansi string not the needed size of destination.
- These changes were missed in 47527.

svn path=/trunk/; revision=47529

10 years ago[crt]
Michael Martin [Wed, 2 Jun 2010 23:58:28 +0000 (23:58 +0000)]
[crt]
- mbstowcs: Fix incorrect size passed as the second parameter for call to RtlMultiByteToUnicodeN.
Fixes loading assemblies when manifest is in a manifest file due to parsing failure.

svn path=/trunk/; revision=47527

10 years ago[SYSDM]
Gabriel Ilardi [Wed, 2 Jun 2010 22:49:27 +0000 (22:49 +0000)]
[SYSDM]
- Update Italian and Spanish translations.

svn path=/trunk/; revision=47526

10 years ago[SYSDM]
Eric Kohl [Wed, 2 Jun 2010 22:29:19 +0000 (22:29 +0000)]
[SYSDM]
- Fix a bug in the creation of the 'PagingFiles' registry value.
- Set paging file sizes only if both user defined sizes are valid numerical values and display a warning otherwise.
- Translators: Please translate the message strings!

svn path=/trunk/; revision=47525

10 years ago[usetup]
Gabriel Ilardi [Wed, 2 Jun 2010 22:28:37 +0000 (22:28 +0000)]
[usetup]
- The last error messages were swapped in some languages, spotted by Paolo Devoti.
- Added the minimum required disk space also in the debug print.
See issue #5440 for more details.

svn path=/trunk/; revision=47524

10 years ago[win32k]
Giannis Adamopoulos [Wed, 2 Jun 2010 18:14:53 +0000 (18:14 +0000)]
[win32k]
- Fix detection of file type while generating vcxproj files

svn path=/trunk/; revision=47523

10 years ago[win32k[win32k]
Giannis Adamopoulos [Wed, 2 Jun 2010 16:55:21 +0000 (16:55 +0000)]
[win32k[win32k]
-Allow menus to be shown over the taskbar
See issue #5415 for more details.

svn path=/trunk/; revision=47522

10 years ago[netshell]
Gabriel Ilardi [Wed, 2 Jun 2010 15:43:07 +0000 (15:43 +0000)]
[netshell]
- Improve current network connection status icons.

svn path=/trunk/; revision=47521

10 years agoSeveral Italian translation updates by Paolo Devoti.
Gabriel Ilardi [Wed, 2 Jun 2010 14:04:07 +0000 (14:04 +0000)]
Several Italian translation updates by Paolo Devoti.
See issue #5438 for more details.

svn path=/trunk/; revision=47520

10 years ago[HAL] Fix compiler preprocessor checks for the IRQL masks so other compilers than...
Stefan Ginsberg [Wed, 2 Jun 2010 13:59:47 +0000 (13:59 +0000)]
[HAL] Fix compiler preprocessor checks for the IRQL masks so other compilers than GCC get proper entries too.
[HAL] Define the HalpHardwareInterrupt macro for MSVC too.
[HAL] Replace IRQL_DEBUG with DBG so we always check for incorrect IRQL on debug. I believe incorrect IRQL raise/lower is a common and serious enough error to always be checked for on debug builds without defining some special debug option.

svn path=/trunk/; revision=47519

10 years agoPolish Translation Updates by Maciej Bialas.
Daniel Reimer [Wed, 2 Jun 2010 11:34:56 +0000 (11:34 +0000)]
Polish Translation Updates by Maciej Bialas.

svn path=/trunk/; revision=47518

10 years ago[HAL]
Aleksey Bragin [Wed, 2 Jun 2010 11:26:19 +0000 (11:26 +0000)]
[HAL]
- Fix a typo.

svn path=/trunk/; revision=47517

10 years ago[NTOSKRNL]
Cameron Gutman [Tue, 1 Jun 2010 20:06:53 +0000 (20:06 +0000)]
[NTOSKRNL]
- Revert the hack in r47514
- The ASSERT is there to make sure the PFN lock is held
- Fix the issue properly by holding the PFN lock while initializing

svn path=/trunk/; revision=47516

10 years ago[FONTVIEW] Select the oldest font back into the DC, leftover from bug #5182
Gregor Schneider [Tue, 1 Jun 2010 19:36:43 +0000 (19:36 +0000)]
[FONTVIEW] Select the oldest font back into the DC, leftover from bug #5182

svn path=/trunk/; revision=47515

10 years ago[NTOS]
Johannes Anderwald [Tue, 1 Jun 2010 15:08:14 +0000 (15:08 +0000)]
[NTOS]
- Fix assertion hit during install
- Fix identation
- Remove superflous spaces

svn path=/trunk/; revision=47514

10 years ago[NPFS]
Johannes Anderwald [Tue, 1 Jun 2010 10:57:26 +0000 (10:57 +0000)]
[NPFS]
- Fix 2 memory leaks when creating a pipe fails
- Fix minor style issue

svn path=/trunk/; revision=47513

10 years ago[NPFS]
Johannes Anderwald [Tue, 1 Jun 2010 09:52:16 +0000 (09:52 +0000)]
[NPFS]
- Check if MmGetSystemAddressForMdlSafe failed

svn path=/trunk/; revision=47512

10 years ago[rbuild]
Giannis Adamopoulos [Tue, 1 Jun 2010 09:31:24 +0000 (09:31 +0000)]
[rbuild]
msvc backend:
- Start implementing real support for vcxproj files
- Fix generating sln files
- Move msvc rules in a separate folder
- Various fixes

svn path=/trunk/; revision=47511

10 years agoAdd invariant checks and fix a bug: Copy+Paste error misusing OldFlink
Art Yerkes [Tue, 1 Jun 2010 09:22:10 +0000 (09:22 +0000)]
Add invariant checks and fix a bug: Copy+Paste error misusing OldFlink

svn path=/trunk/; revision=47510