Commit graph

59365 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto fd8e3415c8 [NTVDM]: simplify code and add a reference link concerning the CrtColorPaletteMask mask.
svn path=/trunk/; revision=64794
2014-10-17 22:27:34 +00:00
Pierre Schweitzer 60d3d2c399 [NTFS]
Bugfixing... Part 4/X:
- Fix a nasty bug in NtfsLookupFileAt() (how did it work before?). The name parsing was wrong (no progress was being made) and thus was leading to an infinite loop in directory browsing.
- Fix a lovely bug coming from a non-documented feature in NTFS. To properly read the MFT index, you've to apply a mask. Do this to properly handles MFT record. This fixes returned MFT index which allows resuse.
- Do not allow returning MFT records < 0x10 for now. Not sure whether it should be allowed, but so far, these are MFT special records, so let's forget about it. IIRC, they are available on Windows. But trying to chase another bug for the moment.

This does not fix yet directory enumeration.

svn path=/trunk/; revision=64793
2014-10-17 22:17:59 +00:00
Hermès Bélusca-Maïto f9ec8698fc [NTVDM]
- Use a helper function for copying little chunks of memory (1, 2, 4 and 8 bytes) because a profiling of ntvdm showed that especially 1 and 2 bytes of memory were read the most, and calling RtlCopy/MoveMemory for intensively copying 1 or 2 bytes was shown to be inefficient. We also don't use directly intrinsics/builtins because the compiler cannot know in advance the size of the memory to be copied, it cannot perform the required optimizations. It was checked that using the builtin-memcpy or memmove of GCC when compiling the program in release+full optimization mode just embedded a call to _memcpy, and naively using the movsX intrinsics of MSVC does not do the job of "moving" memory taking into account for the possible overlaps. Therefore, for small sizes (<= 8 bytes), we use copy assignments, whereas for large sizes (and for 3, 5, 7, 9+ bytes) we use the regular method of calling RtlMoveMemory. We gain ~=10% speed with this optimization.
- Also I use >> and & for dividing by 4 and 2 instead of the regular / and % operations because they are not optimized otherwise by default by MSVC (they are however, if you explicitely enable optimizations).

svn path=/trunk/; revision=64792
2014-10-17 22:08:51 +00:00
Amine Khaldi 44a73d10bc [CMAKE/KEYBOARD]
* Improve the way we handle keyboard layouts.

svn path=/trunk/; revision=64791
2014-10-17 20:41:58 +00:00
Sylvain Petreolle cab7763783 [EXT2FS]
Properly fix warnings on MSVC, introduced in r38302.
"- 'allowwarnings=true' -- not anymore", they said.
Advice by ThFabba.

svn path=/trunk/; revision=64790
2014-10-17 19:27:29 +00:00
James Tabor df36f5a015 [User32Test]
- Turn off tracking pop up menu tests. See CORE-8299.

svn path=/trunk/; revision=64789
2014-10-17 17:48:35 +00:00
James Tabor 1f5f256e01 [User32]
- Patch by Michael Müller : Also set cch member in GetMenuItemInfo when passing a null pointer.
- Fix two menu tests.

svn path=/trunk/; revision=64788
2014-10-17 16:43:46 +00:00
Kamil Hornicek adf80f6d59 [CMD]
- prevent a buffer underrun (fixes stray quotes being appended on autocomplete in some cases)
- check if the input string is not empty (fixes first file in directory getting skipped on autocomplete)
- fix some typos
CORE-8623

svn path=/trunk/; revision=64787
2014-10-17 16:39:54 +00:00
Aleksandar Andrejevic ec863ef510 [NTVDM]
Add an 8x14 font to the video BIOS.
Font data provided by Roy Tam.


svn path=/trunk/; revision=64786
2014-10-17 14:15:43 +00:00
Amine Khaldi c47d138515 [USER32_WINETEST]
* Sync with Wine 1.7.27.
* Jim! help!
CORE-8540

svn path=/trunk/; revision=64785
2014-10-17 13:49:22 +00:00
Amine Khaldi a0b621c3e4 [ADVAPI32_WINETEST]
* Sync with Wine 1.7.27.
CORE-8540

svn path=/trunk/; revision=64784
2014-10-17 13:36:13 +00:00
Amine Khaldi d38402977a [PSDK]
* Add missing PROCESS_SET_LIMITED_INFORMATION and THREAD_RESUME.

svn path=/trunk/; revision=64783
2014-10-17 13:35:59 +00:00
Thomas Faber 74ea894067 [PING]
- Remove a broken "optimization"
CORE-7509 #resolve

svn path=/trunk/; revision=64782
2014-10-17 13:21:06 +00:00
Amine Khaldi 0854129ae9 [KDCOM]
* Use set_module_type() instead of combining set_entrypoint() and set_image_base().

svn path=/trunk/; revision=64781
2014-10-17 11:12:03 +00:00
Amine Khaldi 2e2fd94fa3 [CMAKE]
* Fix IMAGEBASE handling.

svn path=/trunk/; revision=64780
2014-10-17 11:10:47 +00:00
Amine Khaldi 3331eff2ba [LIBXML2]
* Update to v2.9.2.
CORE-8642

svn path=/trunk/; revision=64779
2014-10-17 10:58:01 +00:00
Thomas Faber e5a60cbf1b [NPFS]
- Arch, pool tags are specified in reverse order

svn path=/trunk/; revision=64778
2014-10-17 10:04:57 +00:00
Amine Khaldi 5a93a71d04 [WIN32K]
* Workaround for CORE-8525, CORE-6023, CORE-7735 and CORE-8635.
* Brought to you by V and Amine. Thanks to Timo and Jerome for the reviews.
CORE-8525 CORE-6023 CORE-7735 CORE-8635 #comment Please retest with r64777 or later.

svn path=/trunk/; revision=64777
2014-10-17 07:59:29 +00:00
Pierre Schweitzer 3fa669eddb [NTFS]
Bugfixing... Part 3/X:
- Really release the allocated memory in NtfsFindFileAt() and NtfsLookupFileAt(). Don't attempt to release caller pointer!

This fixes crashes on directory enumeration failure. Even though this latter still doesn't work.

svn path=/trunk/; revision=64776
2014-10-17 06:55:52 +00:00
Hermès Bélusca-Maïto 13b500f258 [FAST486]: Use psh/poppack.h here too.
svn path=/trunk/; revision=64775
2014-10-17 02:31:14 +00:00
Hermès Bélusca-Maïto a12d0f001f [FAST486]: rename some structs and use #include <pshpack/poppack.h> for portability purposes.
svn path=/trunk/; revision=64774
2014-10-17 02:29:48 +00:00
Hermès Bélusca-Maïto f9278312d9 [FAST486]: Do not call RtlCopyMemory for copying few bytes (2 and 4).
svn path=/trunk/; revision=64773
2014-10-16 21:48:18 +00:00
Thomas Faber 9bc2c3ba15 [NPFS]
- Don't return a canceled IRP from NpRemoveDataQueueEntry.

svn path=/trunk/; revision=64772
2014-10-16 21:43:03 +00:00
Pierre Schweitzer 104149a180 [NTFS]
Bugfixing... Part 2/X:
- Please welcome yet another structure in our NTFS driver... The INDX buffer which is used for non resident index entries. Doc (incomplete) here: http://bos.asmhackers.net/docs/filesystems/ntfs/INDX.html
- Make use of it in NtfsFindMftRecord() to replace some totally obscure code.
- Add some asserts to verify we read somehow what we expect. One of the assert is not working properly... Hum! Need to find out why.

We don't go any farther so far. Good news though: a FIXME has been replaced by another FIXME.
NB: This would deserve being ported to FreeLDR to fix the same FIXME.

svn path=/trunk/; revision=64771
2014-10-16 21:37:27 +00:00
Timo Kreuzer 08a4791b4a {NTOSKRNL]
Handle int 0x2c (assertion failure) in KDBG by breaking into the debugger instead of ignoring it and pretending it was handled. Now NT_ASSERT works on GCC builds as well. (As good as things work in KDBG...)

svn path=/trunk/; revision=64770
2014-10-16 21:33:32 +00:00
Jérôme Gardou 6b2a5b98f0 [TCPIP]
- Fix potential NULL pointer dereference

svn path=/trunk/; revision=64769
2014-10-16 20:15:33 +00:00
Jérôme Gardou e9067c2bda [INCLUDE/IDL]
- Properly mark some arguments as [out] only for wlansvc interface.

svn path=/trunk/; revision=64768
2014-10-16 20:15:26 +00:00
Jérôme Gardou cac835f291 [USERENV]
- Add proper stubs for GetAppliedGPOList[A,W]
CORE-8636

svn path=/trunk/; revision=64767
2014-10-16 20:15:13 +00:00
Jérôme Gardou 84ff0ecbd0 [PSDK]
- Add GetAppliedGPOList[A,W] declarations
CORE-8636

svn path=/trunk/; revision=64766
2014-10-16 20:14:25 +00:00
Pierre Schweitzer 682e176eca [NTFS]
Bugfixing... Part 1/X:
- FixupUpdateSequenceArray() returns a NTSTATUS, so properly handle it.
- Actually... Attributes name can be unicode in case of a file name, but it can also be ansi, for streams name... So, don't force UNICODE_STRING, it causes more troubles than it solves.

So, now, we really progress in reading directory. Instead of finding no files because we improperly read attributes, we now corrupt memory somewhere and crash ReactOS.

svn path=/trunk/; revision=64765
2014-10-16 20:05:36 +00:00
Amine Khaldi b5e8d798e9 [WIN32K]
* Zap EGAColorsTriples and DefLogPaletteTriples.
* Remove extra () around a comparison.

svn path=/trunk/; revision=64764
2014-10-16 19:14:52 +00:00
Thomas Faber e67bbc79a9 [NPFS]
- Don't truncate pipe name in the RootPipe case in NpCreateFcb. Found by Windows's RtlInsertUnicodePrefix implementation -- which might indicate that ours is broken.

svn path=/trunk/; revision=64763
2014-10-16 16:57:11 +00:00
Thomas Faber 32f8a44f8e [NPFS]
- Don't call RtlEqualUnicodeString (paged code) while holding a spin lock. Powered by Driver Verifier.

svn path=/trunk/; revision=64762
2014-10-16 16:40:13 +00:00
Thomas Faber c38e07c128 [NPFS]
- Use NpAcquire*Vcb/NpReleaseVcb instead of using NpVcb directly
- CaseInsensitiveIndex is integer, not boolean
- Minor fixes involving unnecessary casts and magic numbers

svn path=/trunk/; revision=64761
2014-10-16 16:36:17 +00:00
Jérôme Gardou a28fa3fdf0 [SPEC2DEF]
- Fix typo: PRix64 --> PRIx64
 - Use GUID to trace 'int128' arguments, as that's what they almost always are.

svn path=/trunk/; revision=64760
2014-10-16 09:23:33 +00:00
Aleksandar Andrejevic 66202b4312 [NTVDM]
Fix the IRQ priority and routing in PicGetInterrupt.


svn path=/trunk/; revision=64759
2014-10-16 01:41:24 +00:00
Timo Kreuzer cb9e70d5f7 [RunTmChk]
Fix a typo, remove a spare int 3, add file headers with BSD license

svn path=/trunk/; revision=64758
2014-10-15 22:44:26 +00:00
Timo Kreuzer 75c6300b37 [NTOSKRNL]
Don't use an uninitialized variable in MmArmAccessFault (Alex, please review). Brought to you by MSVC runtime checks.

svn path=/trunk/; revision=64757
2014-10-15 22:03:50 +00:00
Timo Kreuzer 911faa3a6f [RunTmChk]
Implement a simple version of RunTmChk.lib for MSVC runtime check support, which can also be used in kernel mode. This one is good enough to compile ntoskrnl with it.

svn path=/trunk/; revision=64756
2014-10-15 21:54:12 +00:00
Hermès Bélusca-Maïto e5e46c1db5 [NTVDM]: Arch, please do *not* reinitialize twice the keyboard and the video (first time before initializing the BDA, second time after), otherwise some programs won't display correct things!!
svn path=/trunk/; revision=64755
2014-10-15 21:31:51 +00:00
Pierre Schweitzer a32e6674f9 [NTFS]
- Implement NtfsGetNameInformation()
- Implement NtfsGetDirectoryInformation()
- Implement NtfsGetFullDirectoryInformation()
- Implement NtfsGetBothDirectoryInformation()
- Implement NtfsQueryDirectory() which makes use of all the functions upper + all the previous fixes to make it able to look for a file using WC and file entry index

This is supposed to bring directory enumeration in line on NTFS volumes. BUT, there's a bug at some point which makes it fail (or my test volume is corrupted :-P (which is unlikely (Scheme, get out of this commit message!))). Will look into it later on. Committing so far because it's quite major work anyway.
More to follow~

svn path=/trunk/; revision=64754
2014-10-15 21:02:05 +00:00
Pierre Schweitzer 560d00e49b [NTFS]
Implement NtfsFileFlagsToAttributes() to fix some of the attributes of the MFT to make them usable by ReactOS.
Would deserve a double-check

svn path=/trunk/; revision=64753
2014-10-15 20:36:30 +00:00
Pierre Schweitzer d71653b9cb [NTFS]
Implement NtfsDateTimeToFileTime() which convert epoch time (1970) to Windows time (1601) 

svn path=/trunk/; revision=64752
2014-10-15 20:23:47 +00:00
Amine Khaldi 096445bc16 [TRANSLATIONS]
* Turkish translations update by Erdem Ersoy.
CORE-7861

svn path=/trunk/; revision=64750
2014-10-15 17:46:49 +00:00
Thomas Faber 96b8f1971f [PSDK]
- Use macro version of RtlUlonglongByteSwap in winternl.h because using the fastcall version causes stack corruption
CORE-8632 #resolve

svn path=/trunk/; revision=64749
2014-10-15 16:38:13 +00:00
Hermès Bélusca-Maïto 724f87c880 [NTVDM]: Implement double-width and double-height separately; used when eg. an app displays in 640*180, etc...
svn path=/trunk/; revision=64748
2014-10-15 00:42:19 +00:00
Hermès Bélusca-Maïto 1fd3e7e17e [NTVDM]: Zero-fill memory with RtlZeroMemory (that exists also in NT mode), and use sizeof(object) instead of sizeof(type_of_object).
svn path=/trunk/; revision=64747
2014-10-14 22:46:40 +00:00
Hermès Bélusca-Maïto 9718330254 Forgot this file :)
svn path=/trunk/; revision=64746
2014-10-14 21:53:07 +00:00
Hermès Bélusca-Maïto 2859d00536 [FAST486]
- Invalid extended opcodes get a special handler, so that we are not anymore obliged to check for NULL before running an extended opcode.
- To quickly retrieve extended opcode numbers, add their numbers in regard to their handlers.

svn path=/trunk/; revision=64745
2014-10-14 21:51:00 +00:00
Pierre Schweitzer 4102165fea [NTFS]
Also return the index of the entry which was found

svn path=/trunk/; revision=64744
2014-10-14 20:34:38 +00:00