Commit graph

55196 commits

Author SHA1 Message Date
Amine Khaldi 2d69844819 [BASE/SETUP]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61124
2013-11-28 22:06:38 +00:00
Amine Khaldi 951f0f0909 [SERVICES]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61123
2013-11-28 22:04:59 +00:00
Amine Khaldi 72f576f3c4 [APPLICATIONS]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61122
2013-11-28 22:04:03 +00:00
Amine Khaldi dfc4c1754c [SCREENSAVERS]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61121
2013-11-28 22:00:38 +00:00
Amine Khaldi 94223619fd [APPS/NETWORK]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61120
2013-11-28 21:59:13 +00:00
Amine Khaldi fc05cbf624 [MSCUTILS]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61119
2013-11-28 21:57:21 +00:00
Amine Khaldi 70a054144e [GAMES]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61118
2013-11-28 21:56:11 +00:00
Amine Khaldi c5e13cf799 [CMDUTILS]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61117
2013-11-28 21:52:17 +00:00
Eric Kohl b6c0091383 [FDC]
Enumerate all BIOS-detected floppy drives which are attached to the current controller.

svn path=/trunk/; revision=61116
2013-11-28 20:32:37 +00:00
Eric Kohl fa67f52657 [FDC]
10 Build before commit!
20 goto 10

svn path=/trunk/; revision=61115
2013-11-28 15:50:42 +00:00
Eric Kohl 6e7bfcab4e [FDC]
- Add a floppy disk controller driver. The driver is WIP.

svn path=/trunk/; revision=61114
2013-11-28 15:47:18 +00:00
Thomas Faber 48f677b66a [SERIAL]
- Fix a race condition

svn path=/trunk/; revision=61113
2013-11-28 14:32:04 +00:00
Thomas Faber 1aa6d29ccb [SHELL32]
- Remove unused (and unavailable) std namespace reference
CORE-6672

svn path=/trunk/; revision=61112
2013-11-28 10:37:04 +00:00
Timo Kreuzer d9d49c89bd [NTOSKRNL]
Undo unwanted change. Noticed by Hermes.

svn path=/trunk/; revision=61111
2013-11-27 00:11:06 +00:00
Timo Kreuzer 4019985115 [NTOSKRNL]
- Get rid of MmZeroPte and instead implement MI_ERASE_PTE. Use this and only this to make a PTE zero. The other functions will not allow to do this.
- Add MI_UPDATE_VALID_PTE to update a valid PTE with another valid PTE
- Add 2 additional protection mask constants: MM_PROTECT_ACCESS for the lower 3 bits and MM_PROTECT_SPECIAL for the higher 2 bits. Make use of the latter when dealing with guard pages and caching.
- Deduplicate some code in MmArmAccessFault
- Move code in MiDeleteSystemPageableVm to where it belongs (it was in the wrong else case!)
- Wse MiQueryPageTableReferences instead of manipulating MmWorkingSetList->UsedPageTableEntries

svn path=/trunk/; revision=61110
2013-11-27 00:04:26 +00:00
Timo Kreuzer 5ab8592b44 [NTOSKRNL]
- Implement SepAdjustPrivileges, which does both the counting of (changed) privileges as well as applying them, when requested. Use it in NtAdjustPrivilegesToken twice instead of duplicating the code there.
- Fix return value of NtAdjustPrivilegesToken by making sure to properly count the found privileges and check against the provided ones
- Lock the Token, while messing with the privileges
- Add support for SE_PRIVILEGE_REMOVED
- Proplery (re)calculate Token flags after changing privileges
- Improve failure pathes by using a common cleanup label
- Don't free the allocations atatched to the token in SepCreateToken on failure, since ObDereferenceObject will already do that.
- Make priviliges constants instead of initializing them.

svn path=/trunk/; revision=61109
2013-11-26 23:28:37 +00:00
Timo Kreuzer 543797fee3 [NTOSKRNL]
- Remove the BoundaryAddressMultiple parameter from MmCreateMemoryArea (wasn't used) and give it instead a Granularity parameter
- Use the Granularity parameter in MmMapViewOfSegment to make sure that full sections are allocated on a MM_ALLOCATION_GRANULARITY aligned address.
- Check for overflow and unaligned image base in MmMapViewOfSection when mapping image sections
- Return proper status code on failure

svn path=/trunk/; revision=61108
2013-11-26 21:38:02 +00:00
Eric Kohl ac56ce2849 [NETAPI32]
BuildUserInfoBuffer: Set the UF_PASSWD_CANT_CHANGE account control flag if the user does not have the USER_CHANGE_PASSWORD access right for his own account data.

svn path=/trunk/; revision=61103
2013-11-26 16:56:33 +00:00
Eric Kohl 40ff0c70f0 [NTOSKRNL]
- Create the Security directory and the LSA_AUTHENTICATION_INITIALIZED event in SepInitializationPhase1().
- Get rid of SeInitSRM().

svn path=/trunk/; revision=61102
2013-11-26 15:27:48 +00:00
Thomas Faber 60dda8ace4 [KERNEL32]
- Fix wrong check for realtime priority class in CreateProcessInternalW
- Fix double free in GetEnvironmentVariable[AW]
- Fix broken sizeof usage ('X' is of type int!)
- Remove redundant casts and comparisons

svn path=/trunk/; revision=61101
2013-11-26 15:09:21 +00:00
Thomas Faber dcf715c76b [POWRPROF]
- Fix a warning

svn path=/trunk/; revision=61100
2013-11-26 15:00:06 +00:00
Thomas Faber 1485fd938e [KMTESTS:RTL]
- Fix a warning

svn path=/trunk/; revision=61099
2013-11-26 14:26:31 +00:00
Thomas Faber f9209a2045 [NTOS]
- FORCEINLINE belongs before the return type (-Wold-style-declaration)

svn path=/trunk/; revision=61098
2013-11-26 13:45:33 +00:00
Eric Kohl 84852426dd [NETAPI32]
Refactor BuildUserInfoBuffer: Move the user info buffer inside of BuildUserInfoBuffer. This simplifies its callers.

svn path=/trunk/; revision=61097
2013-11-25 16:00:40 +00:00
Thomas Faber 205bebdd7f [CMAKE]
- Enable -Wtype-limits in GCC builds

svn path=/trunk/; revision=61096
2013-11-25 12:30:03 +00:00
Timo Kreuzer 3d5b732f52 [NTOSKRNL]
Windows / ReactOS uses a software protection field called protection mask, which is stored inside invalid (Software) PTEs to provide information about the desired protection, when a page is made valid by the page fault handler. The mask consists of the values 0-7 specifying the read/write/execute rights, 0 being inaccessible aka MM_ZERO_ACCESS, plus 2 flag-like bits, for uncached and writecombine memory respectively. Both flags together don't make sense, so this combination is used to mark guard pages. Since all these flags only make sense when used together with a proper access (i.e. not MM_ZERO_ACCESS), the combination of these flags together with MM_ZERO_ACCESS was given special meaning: MM_DECOMMIT, which equals MM_GUARDPAGE | MM_ZERO_ACCESS is for decommitted pages, that are not yet erased to zero, MM_NOACCESS, which is the mask for pages that are mapped with PAGE_NOACCESS (this is to make sure that a software PTE of a committed page is never completely 0, which it could be, when MM_ZERO_ACCESS was used), and finally MM_OUTSWAPPED_KSTACK for outswapped kernel stacks. See also https://www.reactos.org/wiki/Techwiki:Memory_Protection_constants.
The next thing to know is that the number of PTEs that are not null is counted for each PDE. So once a page gets committed, a software PTE is written and the reference count is incremented. When the page is made valid by the fault handler, the count is not changed, when the page is decommitted, the MM_DECOMMIT software PTE is written and again the PTE stays non-null and nothing is changed. Only when the range is cleaned up totally, the PTEs get erased and the reference count is decremented. Now it happened that our page fault handler missed to validate the access rights of protection constants. The problem that came up with this is a major one: since a decommitted page is a software PTE with MM_DECOMMIT as the protection mask (which we remember has the MM_GUARDPAGE bit set), the fault handler considered faults on decommitted PTEs as faults on guard pages and simply removed the guard page flag, leaving a completely empty PTE behind! So the decommitted page got erased without decrementing the reference count. This lead to CORE-7445.
- Add protection flags (MM_GUARDPAGE, MM_WRITECOMBINE, MM_OUTSWAPPED_KSTACK)
- Instead of writing 0 to a PTE, use MI_WRITE_INVALID_PTE with MmZeroPte
- Implement MiIsAccessAllowed that checks for read/write/execute access and use it in MiAccessCheck
- Add some more ASSERTs
CORE-7445 #resolve

svn path=/trunk/; revision=61095
2013-11-25 00:18:33 +00:00
Giannis Adamopoulos a24db78920 [shell32]
- define STR_FILE_SYS_BIND_DATA in the public headers and use it in IFileSystemBindDataImpl and CFSFolder. Now we use the same string to store the IFileSystemBindDataImpl in the bind context. 
- Fix CFSFolder::ParseDisplayName to properly parse paths with a IBindCtx
- Should fix creating pidls that represent files that don't exist and fix SHChangeNotify tests that hanged for a whole minute in our test suite

svn path=/trunk/; revision=61094
2013-11-24 21:42:28 +00:00
Thomas Faber c61dbc2626 [RTL]
- Allow parsing manifest files larger than 32 kB. Fix a DPRINT. Patch by David Quintana.
CORE-7642 #resolve

svn path=/trunk/; revision=61093
2013-11-24 20:04:45 +00:00
Eric Kohl 2f87b89094 [MSGINA]
- Add a disabled "Change Password" button to the Security dialog.
- Add the "Change Password" dialog and a basic dialog function.

svn path=/trunk/; revision=61092
2013-11-24 17:24:44 +00:00
Thomas Faber 0aec7507d5 [NPFS]
- Fix a use after free in NpFsdCreate

svn path=/trunk/; revision=61091
2013-11-24 16:22:17 +00:00
Timo Kreuzer 3f0ef714a4 [NTOSKRNL]
Remove deprecated and unused functions MmDisableVirtualMapping and MmRawDeleteVirtualMapping

svn path=/trunk/; revision=61090
2013-11-24 16:18:50 +00:00
Timo Kreuzer 0973b7e223 [NTOSKRNL]
Try to fix the failed assertions in testbot

svn path=/trunk/; revision=61089
2013-11-24 15:54:03 +00:00
Timo Kreuzer 1fb03001db [NTOSKRNL]
Make use of MiQueryPageTableReferences

svn path=/trunk/; revision=61088
2013-11-24 12:51:45 +00:00
Thomas Faber fee89c7617 [NTOS:MM]
- Add missing \n to DPRINT in MmGetPhysicalAddress

svn path=/trunk/; revision=61087
2013-11-24 09:26:24 +00:00
Timo Kreuzer d059077864 [NTOSKRNL]
- Use MI_IS_MAPPED_PTE instead of unportable bit fiddling
- Use MiDecrementPageTableReferences instead of manually messing with MmWorkingSetList, which is not portable
- Make MmGetPhysicalAddress portable

svn path=/trunk/; revision=61086
2013-11-23 22:34:20 +00:00
Eric Kohl f09cfef7f5 [FORMATTING]
Fix indentation. No code changes!

svn path=/trunk/; revision=61085
2013-11-23 22:08:48 +00:00
Eric Kohl e5769b0d38 [FORMATTING]
Fix indentation. No code changes!

svn path=/trunk/; revision=61084
2013-11-23 18:36:05 +00:00
Timo Kreuzer 41ccb2555a Revert a change from the previous version. MI_WRITE_VALID_PTE only works on invalid PTEs. Thanks to Thomas for noticing.
svn path=/trunk/; revision=61083
2013-11-23 01:42:33 +00:00
Timo Kreuzer b59f1ee141 [NTOSKRNL]
- Add hacks to MmMapViewInSessionSpace and MmUnmapViewInSessionSpace to check for legacy (non ARM3) sections (image sections) and (un)map them in system space instead.
- Fix MmCommitSessionMappedView (it wasn't resetting the PointerPte to the start, when processing the PTE range a second time)
- Remove an ASSERT that didn't allow unmapping session space mappings, since that works (see CORE-6729)
- Change a write to a PTE to using MI_WRITE_VALID_PTE

svn path=/trunk/; revision=61081
2013-11-23 00:43:06 +00:00
Hermès Bélusca-Maïto 78d080bef8 [REGEDIT]
- Fix few French resources.
- Support F2 key for renaming keys/values.
Patch by Edijs Kolesnikovics
CORE-7615 #resolve #comment Committed in revision 61080. Thanks!

svn path=/trunk/; revision=61080
2013-11-22 22:59:19 +00:00
James Tabor 263bd12de4 - Move ATI from stub file. Applications like Magnifier uses it but it seems to return an error.
svn path=/trunk/; revision=61079
2013-11-22 18:45:58 +00:00
James Tabor 1984a7f218 - Fix condition when window is null while in event. See CORE-7635.
svn path=/trunk/; revision=61078
2013-11-22 17:07:02 +00:00
Timo Kreuzer 7f9dd54593 [NTOSKRNL]
Fix / improve NtQueryDefaultLocale, NtSetDefaultLocale, NtQueryDefaultUILanguage and NtSetDefaultUILanguage

svn path=/trunk/; revision=61077
2013-11-22 15:23:18 +00:00
Timo Kreuzer 746a4e93ea [NTOSKRNL]
Skip all images that were loaded using MmLoadSystemImage in MiFindInitializationCode. Drivers loaded by Mm are handled in MmFreeDriverInitialization (which we currently run for boot loaded images as well, so duplicated work...). But now at least session loaded images are NOT processed this way. Because even though they can have INIT sections, they don't neccessarily like it when stuff gets removed, especially win32k doesn't like it when it's .rsrc section is being discarded due to it's section flags!

svn path=/trunk/; revision=61076
2013-11-22 12:51:40 +00:00
Timo Kreuzer cd2e06b94c [NTOSKRNL]
Check the PTE as well in MmArmAccessFault, when we are at high IRQL and fail if it's not valid. Otherwise we just end up in an endless loop.

svn path=/trunk/; revision=61075
2013-11-22 12:23:11 +00:00
Timo Kreuzer d018fb6027 [NTOSKRNL]
Fix MmGetSessionLocaleId and implement MmSetSessionLocaleId

svn path=/trunk/; revision=61074
2013-11-22 12:14:47 +00:00
Timo Kreuzer 49642d5bb1 [NTOSKRNL]
Fix an off-by-one error in an ASSERT in MiDecrementReferenceCount (MmHighestPhysicalPage itself is still a valid PFN)

svn path=/trunk/; revision=61073
2013-11-22 12:10:20 +00:00
Timo Kreuzer dfc5f7e3fa [NTOSKRNL/WIN32K]
Always call the win32 process callout from PsConvertToGuiThread and handle the case where we alrady have an allocated win32 process there. (The original win32k sometimes allocates a win32 process, but doesn't initialize it, so it needs to be called again to do so)

svn path=/trunk/; revision=61072
2013-11-22 11:48:51 +00:00
Timo Kreuzer b5f60c3595 [VIDEOPRT]
Handle IOCTL_VIDEO_USE_DEVICE_IN_SESSION

svn path=/trunk/; revision=61071
2013-11-22 11:36:22 +00:00
Dmitry Gorbachev cc5033f674 [NTOSKRNL]
Trick GCC into not optimizing out RtlMoveMemory.

svn path=/trunk/; revision=61066
2013-11-21 20:44:49 +00:00