Commit graph

63862 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
59028e471e [NTVDM]
Add basic disk support with mounting/unmounting images in NTVDM:
- basic disk controller (at the moment this is just a collection of helper functions. A real HW emulation will come later on).
- INT 13h services for the BIOS.
At the moment, the images to be mounted are hardcoded in disk.c. Please see disk.c for examples of how to use the function. This will be reworked to allow user choice without having to recompile NTVDM.
CORE-10262 #resolve

svn path=/trunk/; revision=69365
2015-09-26 17:35:31 +00:00
Amine Khaldi
728e1a6bfa [BOOT] Improve the FILE header section. Brought to you by Adam Stachowicz. CORE-10114
svn path=/trunk/; revision=69364
2015-09-26 16:31:49 +00:00
Amine Khaldi
b43d84ffb5 [COMCTL32] Mark a ros-diff with its tracking ticket: CORE-4912
svn path=/trunk/; revision=69363
2015-09-26 16:30:49 +00:00
Stefan Ginsberg
a73afd7919 [KE]
Misc trap/interrupt fixes:
- Stub legacy KiGetTickCountHandler (INT 2A) to fail instead of breakpointing. We have made it so far without it, and if someone finds something that actually uses this instead of Win32's GetTickCount we can add it then. Raises the bar of making ReactOS breakpoint from 2 bytes to 4.
- Bugcheck with the right status code in case Kei386EoiHelper is called (which means you are trying to load a Windows HAL which we totally do not support right now).
- Use Ke* instead of Kf* in C code for IRQL routines.

svn path=/trunk/; revision=69362
2015-09-26 10:12:53 +00:00
Hermès Bélusca-Maïto
6a0561cf4f [NTVDM]
- Don't hardcode magic values of characters if they have C escape codes.
- Print an extra newline on call to the Ctrl-C handler, as it is done on real DOS.
- Use a do{}while loop which loops while we don't have read a CR character.

svn path=/trunk/; revision=69361
2015-09-26 03:24:55 +00:00
Aleksandar Andrejevic
6a44a622b4 [NTVDM]
DosReadFile echoes the line feed when it encounters it.
A backspace should delete the '^' sign for special characters.


svn path=/trunk/; revision=69360
2015-09-26 02:51:37 +00:00
Aleksandar Andrejevic
acfe187655 [NTVDM]
Fix INT 21h/0Ah.
DosReadCharacter shouldn't echo all the time.


svn path=/trunk/; revision=69359
2015-09-26 00:05:10 +00:00
Hermès Bélusca-Maïto
ac8f71fc86 [NTVDM]
- Fix a comment.
- Do not hardcode buffer size.
- LPVOID -> PVOID.

svn path=/trunk/; revision=69358
2015-09-25 22:42:08 +00:00
Aleksandar Andrejevic
357395eacc [NTVDM]
Don't echo when STDIN isn't the CON device.


svn path=/trunk/; revision=69357
2015-09-25 22:09:37 +00:00
Aleksandar Andrejevic
7f662fde76 [NTVDM]
Fix DOS character device I/O. Implement CON line buffering.
Make sure INT 21h functions 01h, 06h, 07h, 08h, 0Ah and 3Fh work as expected
for CON input.


svn path=/trunk/; revision=69356
2015-09-25 22:00:57 +00:00
Stefan Ginsberg
d8105a4366 [KDBG] Let's try to have one single version of DPFLTR_DEFAULT_ID shall we -- 101 as part of DPFLTR_TYPE enum is correct, 0xFFFFFFFF as an incorrect define for the "internal" default ID is wrong.
svn path=/trunk/; revision=69355
2015-09-25 19:28:05 +00:00
Stefan Ginsberg
0ad0cb4df8 [NDK] Put ZwCreateKeyedEvent in NDK where it belongs.
[EX] Remove "KeGetCurrentProcess" and just use the EPROCESS Pcb member for type correctness instead of inventing a new macro to hide the casting.
[PS] Remove stray INIT_FUNCTION (doesn't do much on a prototype).
[IO] Define _IO_DEBUG_ to 0 again after someone forgot to leave it on 4 years ago (only bloated the code since IopTraceLevel was 0 anyway).

svn path=/trunk/; revision=69354
2015-09-25 18:40:56 +00:00
Pierre Schweitzer
549ecc5195 [KMTESTS:IO]
Add more tests for IoCreateFile(), this time purely dealing with symlinks reparse points.
They won't run on ReactOS (obviously) as we don't have RW NTFS support.

On Windows, they show interesting results....
With Windows 2003, creating the symlink is allowed and works, but then Windows is totally unable to deal with it and keeps complaining about an unhandled reparse tag.
The only way to open it is to open the reparse point itself. Not that working symlinks... Not sure which part is not able to handle the said reparse tag. NTFS? Io?
With Windows Vista+, it just works fine. Symlink is created & functionnal.

Broken logic!

svn path=/trunk/; revision=69353
2015-09-25 15:57:28 +00:00
Pierre Schweitzer
9099445189 [KERNEL32_APITEST]
Rename apitest Mailslot test to MailslotRead to avoid testman issue with mailslot winetest

svn path=/trunk/; revision=69352
2015-09-25 14:53:08 +00:00
Pierre Schweitzer
2f233ce1f9 [KERNEL32_APITEST]
Add a test for CORE-10188 (which was fixed by Thomas in r69236).
It is based on Nikita Pechenkin's patch with a few modifications by me to avoid race condition on start (and avoid flappy test) and to match more closely our coding style

ROSTESTS-190 #resolve #comment Committed in r69351. Thanks!

svn path=/trunk/; revision=69351
2015-09-25 14:44:38 +00:00
Ged Murphy
c83ceb5eaf [ATL]
A few more gcc based fixes. Just needs the template parameter issues fixing

svn path=/trunk/; revision=69350
2015-09-24 20:59:09 +00:00
Hermès Bélusca-Maïto
1fdce1dd81 [DEVMGR_NEW]
(Resources) Add a missing comma. Fixes part of GCC build.

svn path=/trunk/; revision=69349
2015-09-24 19:11:24 +00:00
Hermès Bélusca-Maïto
85dcbc9ea2 [DEVMGR_NEW]
- Use ROS-style paths for include files.
- Fixup its CMakeFiles for C++11 compilation under GCC (done the way we did for other C++ projects).
- Add a VS project for DEVMGR to make Ged happy.

[ATL]
Start C++ fixups:
- Add 'placement new' operator.
- Add some missing functions (that were not caught by MSVC compilation because we atm. accept function usage without the existence of its actual code...).
More to follow...

svn path=/trunk/; revision=69348
2015-09-24 18:06:02 +00:00
Giannis Adamopoulos
f6bba8eac7 [SHELL32]
- Fix displaying the name of guid items.

svn path=/trunk/; revision=69347
2015-09-24 15:49:18 +00:00
Ged Murphy
efe4a23c11 Revert back to the old devmgr I'll install gcc and reapply the changes tonight.
Apologies for the spam

svn path=/trunk/; revision=69346
2015-09-24 07:30:08 +00:00
Ged Murphy
b8a02e823c Turn off building devmgr for now due to multiple gcc errors. I'll install gcc :o and fix things locally instead of relying on the buildbots
svn path=/trunk/; revision=69345
2015-09-24 07:18:29 +00:00
Ged Murphy
f5c7241e9d unixification
svn path=/trunk/; revision=69344
2015-09-24 07:13:21 +00:00
Ged Murphy
6d43e0f56d Fix build (part 1 of ?)
svn path=/trunk/; revision=69343
2015-09-24 07:09:29 +00:00
Ged Murphy
c3f8176204 [DEVMGR]
Delete the old devmgr and replace it with devmgr_new

svn path=/trunk/; revision=69342
2015-09-24 07:06:29 +00:00
Alex Ionescu
88cc94bcb3 [NTOSKRNL]: Now that OBJ_VALID_ATTRIBUTES doesn't include all attributes, fix the kernel parameter checks.
svn path=/trunk/; revision=69341
2015-09-24 03:32:08 +00:00
Alex Ionescu
f8f8f5c96b [NDK]: Add OB_FLAG_KERNEL_EXCLUSIVE and OBJ_KERNEL_EXCLUSIVE flags
[NTOSKRNL]: Add a helper function such that user-mode cannot pass certain kernel-only object attributes to ObOpenObjectByPointer.
[NTOSKRNL]: Make \Device\PhysicalMemory OBJ_KERNEL_EXCLUSIVE
[NTOSKRNL]: Deny access to user-mode when opening a handle to an object with OBJ_KERNEL_EXCLUSIVE
[NTOSKRNL]: Fix NtOpenProcess, NtOpenThread, NtOpenThreadTokenEx, NtOpenProcessTokenEx to use the helper function. Should fix Rtl using OBJ_KERNEL_HANDLE in user-mode.
Thanks to ThFabba for finding out these bugs, and the hbelusca for adding a missing check to NtOpenProcessTokenEx.

svn path=/trunk/; revision=69340
2015-09-24 02:40:30 +00:00
Hermès Bélusca-Maïto
d65c53b046 [NTVDM]
- Fix ZF and CF flags setting in function INT 2Fh, AX=1214h.
- Use CreateEventW explicitely.
- Set the VdmTaskEvent event at startup. This allows user input by default (even if we don't run our own DOS) in NTVDM. Fixes keyboard input not working when testing boot&usage of MSDOS 6.

svn path=/trunk/; revision=69339
2015-09-24 00:27:59 +00:00
Hermès Bélusca-Maïto
5c49e6b52e Fix build.
svn path=/trunk/; revision=69338
2015-09-23 23:55:04 +00:00
Hermès Bélusca-Maïto
f5c0c9408e [NTOS]: Implement KeDeregisterNmiCallback.
Aside question: we have a "nmidebug" driver in \drivers\base\. In it is a NMI callback "NmiDbgCallback". I was wondering what "((void(*)())&KiBugCheckData[4])();" should do, according to the surrounding code, since in some conditions this code path is actually run: http://i.imgur.com/TUsEr5p.jpg

svn path=/trunk/; revision=69337
2015-09-23 23:52:03 +00:00
Pierre Schweitzer
f44942d42f [KMTESTS:IO]
- Properly free handles in driver (spotted by Thomas)
- Remove dead code in driver (spotted by Thomas)
- Send an IOCTL to stop on symlinks to allow more precise tests

svn path=/trunk/; revision=69336
2015-09-23 21:30:22 +00:00
Ged Murphy
10339625ec [DEVMGR]
List devices without names as 'Unknown Device'

svn path=/trunk/; revision=69335
2015-09-23 21:24:06 +00:00
Ged Murphy
d77d1a8911 [DEVMGMT]
- Fix devmgmt.exe to correctly build and link against devmgr.dll
- This is a temp exe that just calls DeviceManager_ExecuteW. This will later be replaced by mmc.exe and devmgmt.msc

svn path=/trunk/; revision=69334
2015-09-23 20:30:32 +00:00
Ged Murphy
a8867c885d [ATL]
Try to fix gcc build (without having a local install of gcc...)

svn path=/trunk/; revision=69333
2015-09-23 20:12:44 +00:00
Ged Murphy
d3519a4284 [ATL]
- Add support for CAtlString and all its supporting base classes.
- It doesn't do much more than assign wchat_t arrarys and call LoadString, but it's a full base to start adding more methods as people decide to.

svn path=/trunk/; revision=69332
2015-09-23 20:05:31 +00:00
Thomas Faber
c43914c6a7 [NTDLL_APITEST]
- Fix a test failure on WHS-Testbot

svn path=/trunk/; revision=69331
2015-09-23 15:53:24 +00:00
Giannis Adamopoulos
8953816270 [SHELL32]
- Fix a bug in my latest commit.

svn path=/trunk/; revision=69330
2015-09-23 15:20:56 +00:00
Thomas Faber
5e43107328 [NTDLL_APITEST]
- Add simple tests for NtOpenThreadToken[Ex] and NtOpenProcessToken[Ex]

svn path=/trunk/; revision=69329
2015-09-23 15:14:25 +00:00
Giannis Adamopoulos
d7a9abc45b [SHELL32]
- Add a few helper functions: SH_ParseGuidDisplayName, SHELL32_SetNameOfGuidItem, SHELL32_GetDetailsOfGuidItem.
- SHELL32_SetNameOfGuidItem is based on a patch for CORE-5995
- Use the helpers in CControlPanelFolder, CDesktopFolder and CDrivesFolder. Implements getting the comment and renaming registry items in these folders and share some more code.

svn path=/trunk/; revision=69328
2015-09-23 15:02:05 +00:00
Ged Murphy
6a3a86fe62 [SETUPAPI]
- Buffer lengths are calculated in chars not bytes.
- Fixes use of CM_Get_Device_ID_Size / CM_Get_Device_ID

svn path=/trunk/; revision=69327
2015-09-23 09:27:32 +00:00
Ged Murphy
749209aeaf [INCLUDES]
- Fix linking with c++ modules

svn path=/trunk/; revision=69326
2015-09-23 09:04:39 +00:00
Ged Murphy
0baf2174fc [DEVMGR]
Fix building with cmake (msvc)
It needs my local ATL changes to build, I'll add these soon

svn path=/trunk/; revision=69325
2015-09-23 08:49:48 +00:00
Alex Ionescu
0e86ca73d0 [NTOSKRNL]: Properly respect the registry's Win32PrioritySeparation value instead of ignoring it.
[NTOSKRNL]: Actually apply the foreground priority boost to threads in a foreground process.
[NTOSKRNL]: Correctly handle the case where the quantum length and fixed/variable flag are set to "default", instead of falling back into the server case.
Thanks to WINSRV doing the right thing, ReactOS console apps now receive the priority separation boost. However, my tests show that it doesn't last as long as it should on Windows (quantums too short? bug in priority decrement?). Also, since Win32k.sys doesn't tell the kernel about foreground GUI apps, they don't get the boost. Someone needs to add a NtSetInformationProcess call in whatever win32k function determines active focus.
Dedicated to ThFabba who needs to write some tests ;-)

svn path=/trunk/; revision=69324
2015-09-23 05:10:58 +00:00
Hermès Bélusca-Maïto
81b8c2bb92 [NTVDM]
- Do not hardcode the number of XMS memory blocks that can map the HMA. It should be function of the MAX_ADDRESS value of our emulator.
- Require that MAX_ADDRESS should be greater or equal than 1 MB.

svn path=/trunk/; revision=69323
2015-09-23 01:45:18 +00:00
Pierre Schweitzer
9e06c66b38 [KMTESTS:IO]
Extend the IoCreateFile tests with two parts tests.
First part properly checks for opening/reparse handling on mount points (and ideally on symlinks, see below).
The other part checks for proper handling of the IO_STOP_ON_SYMLINK parameter.

Regarding symlink, I'm clearly not convinced that what I did is correct (hence the failure on both W2K3 & ROS). It seems to me that symlink resolution is up to the FSD and not to IO which only handles mount point traversal.
If someone (Alex?) can confirm/infirm and give more insight, that's more than welcome.

svn path=/trunk/; revision=69322
2015-09-22 22:31:08 +00:00
Ged Murphy
5aaa6edd08 [DEVMGR]
- A few cmake fixes

svn path=/trunk/; revision=69321
2015-09-22 21:44:19 +00:00
Ged Murphy
e82b2a4870 [DEVMGR]
- Build the properties as C++
- Rearrange the folder structure
- The whole thing now builds and runs from VS (with a few hacks). CMake next

svn path=/trunk/; revision=69320
2015-09-22 18:23:03 +00:00
Giannis Adamopoulos
0ea9ff44f2 [SHELL32]
- Add a helper HCR_GetClassName function to load the name of a reg folder to a STRRET
- Further simplify CAdminToolsFolder, CFontsFolder and CMyDocsFolder

svn path=/trunk/; revision=69319
2015-09-22 18:11:32 +00:00
Pierre Schweitzer
49b29b7594 [KMTESTS:MM]
MmAllocatePagesForMdlEx() was added on Windows 2003 SP1. Import it for "older" systems.

svn path=/trunk/; revision=69318
2015-09-22 18:05:45 +00:00
Amine Khaldi
bff3154159 [CLUSAPI] Order the exports and make sure the list matches our target (Windows Server 2003 Sp2). By Radek Liška, confirmed by me. CORE-8174
svn path=/trunk/; revision=69317
2015-09-22 17:19:14 +00:00
Amine Khaldi
3e7d2f5da8 [CARDS] Order the exports and make sure the list matches our target (Windows Server 2003 Sp2). By Radek Liška, confirmed by me. CORE-8174
svn path=/trunk/; revision=69316
2015-09-22 17:15:37 +00:00