Factorize the code that creates ReactOS freeldr.ini entries, and use it to create a freeldr.ini at a clean ReactOS installation, and when it is installed in the same partition as Win9x/DOS.
CORE-4870 #comment Should be fixed with revision 70467, please retest.
svn path=/trunk/; revision=70467
Properly check the bitmap size in IntSetDIBits, taking into account that it might be set to 0, then we have to calculate it ourselves. Fixes a crash when invalid data is passed to NtGdiCreateDIBitmapInternal.
[GDI32]
Convert COREINFOHEADER to BITMAPINFOHEADER before passing it to NtGdiCreateDIBitmapInternal, which doesn't support it.
CORE-10583 #resolve
svn path=/trunk/; revision=70464
Export NtUserGetClassInfoEx (as it's called in 2k3) both as NtUserGetClassInfo (as it's called on XP) and NtUserGetClassInfo. They have the same prototype.
svn path=/trunk/; revision=70463
- "Fix" an export name: NtUserGetClassInfoEx on 2k3 is the same as NtUserGetClassInfo on XP (note that we currently use the default, aka ros specific, win32kdll on the WHS testbot, but it's mostly identical.
[WIN32KNT_APITEST]
- Fix a typo
- add missing tests to testlist.c
svn path=/trunk/; revision=70462
- Convert win32k native api test to actual wine style api-tests
- Hack around a bit with the win32k dlls, some renaming, etc.
- Delete old apitest stuff
svn path=/trunk/; revision=70458
Don't use DATA and PRIVATE together. DATA means no stub function is generated in the import lib, PRIVATE means nothing is generated in the export lib.
svn path=/trunk/; revision=70454
Now, the fix: the FAT disk checker expected that the free cluster count member of the FAT32 FSInfo sector be really initialized (not to 0xFFFFFFFF), and it expected the presence of the backup of the FSInfo sector as well as the free sector following the FSInfo sector.
svn path=/trunk/; revision=70449
- DPRINT messages printed via VfatPrint by the check-disk procedure.
- Addendum to r70434 and r70435 : The return value of fs_close is equal to the number of corrections made on the disk (0 corrections --> success; 1+ --> something was corrected).
That way, the old code "return fs_close(FixErrors) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;" that we had since eons (which always happened to return STATUS_SUCCESS) was actually
indicating to us that our FAT32-formatted volumes were corrupted.
If you test this revision, you should see something happening if you try to install ReactOS now (something that should have happened since ages actually).
svn path=/trunk/; revision=70447
- Formatting + RtlZero/FillMemory modifications as addendum to r70445.
- Do not hardcode FSInfo signature values, use instead the same set of macros fastfat_new introduces.
svn path=/trunk/; revision=70446
Fix handling of NULL buffer in streamout. Fixes a few msvcrt_crt_apitests, while it breaks a few for crtdll. crtdll is broken anyway and obsolete, nothing uses it, so it doesn't really matter.
CORE-9105 #resolve
svn path=/trunk/; revision=70443
It seems suspicious to directly return the value of fs_close as the NTSTATUS code of the check-disk operation (for FAT32 volumes it happens to return 1 whereas for FAT16 volumes it returns 0).
The documentation of this function says that it "returns a non-zero integer if the file system has been changed since the last fs_open, zero otherwise."
Maybe somebody has a more precise idea on that subject? In the meantime I also add some DPRINTs to attempt to diagnose the conditions where this problem occurs.
svn path=/trunk/; revision=70434
- Gather common code in one file instead of duplicating it everywhere.
- Implement full format for FAT12 and FAT16 (using the same function Fat1216WipeSectors), based on similar code for FAT32 implemented by Eric Kohl in revision 63693.
svn path=/trunk/; revision=70433
- fat.asm: remove trailing whitespace.
- fat32.asm: backport the fixes from fat32.S introduced a long time ago.
- fat32.S/faty.S: use .space 12, 0 instead of the long .byte array (generates the same code, but is better readable).
- isoboot/btrt: whitespace fix only.
svn path=/trunk/; revision=70432
Add another test for strlen, that tests, whether the direction flag in ELFAGS has been modified. While clearing it is legitimate to do according to the ABI, the native implementation does not change it, so we don't want to do it either.
svn path=/trunk/; revision=70429
- disable GCC builtins
- Add simple tests for strlen, showing that a NULL pointer will cause an access violation, which is broken in our asm implementation
svn path=/trunk/; revision=70427
[MSVCRT] Explicitly pull in _vsnprintf, bsearch and strcspn from CRT, to prevent the MS linker from exporting stubs from libntdll instead.
See CORE-10753
svn path=/trunk/; revision=70425
- Use the old fat.S source for compiling the FAT12 boot sector, until FATX.S is completely implemented.
- Fix an assembly error in FATX.S
- In comments I added experimental FAT12/16/32 targets based on Timo's FATX.S.
svn path=/trunk/; revision=70423
- Implement AbortSystemShutdownW by a call to BaseAbortSystemShutdown.
- Implement InitiateSystemShutdownW by a call to BaseInitiateSystemShutdown.
- Implement InitiateSystemShutdownExW by a call to BaseInitiateSystemShutdownEx.
- Add RPC binding code for the winreg server (in winlogon.exe).
svn path=/trunk/; revision=70420
SHUTDOWN: Fix the hack be calling InitiateSystemShutdownExW instead of ExitWindowsEx.
WINLOGON: Add a hack by calling ExitWindowsEx in BaseInitiateSystemShutdownEx.
svn path=/trunk/; revision=70419
Disable again the DR7 check until we correctly understand why bit 10 of DR7 (reserved) is almost always set (this lead to MSVC-built ReactOS crashing when being starting in non-debugging mode). See also r69244.
CORE-10165 #comment DR7 check again disabled in r70418.
svn path=/trunk/; revision=70418
For MSVC builds (using KDCOM kd64 WinDbg protocol): Bail out for droppable packets after a given number of retries, if no debugger is attached (list of droppable packets can be found in http://articles.sysprogs.org/kdvmware/kdcom.shtml section "KDCOM protocol", subsection "Droppable packets").
CORE-10541 #resolve #comment Finally fixed in revision r70417!
CORE-7106
svn path=/trunk/; revision=70417
Fix the value for EIP used by KDBG after an INT3 set by KDBG itself. The address is already fixed by KiDispatchException, but only in the context frame, not in the trap frame and KDBG insists to use the trap frame for a lot of things. Also, after a cont from such an int3, KDBG uses a single step to re-enable the breakpoint (it needs to disable it after it was hit to be able to execute the actual instruction), but it used to dismiss *any* single steps after that. So make sure, that an actual single step, as created by the debugger is not being dismissed, but the break point is still restored after the next single step entry. You might expect that a kernel debugger would at least support setting breakpoints, but this is KDBG.
svn path=/trunk/; revision=70416
- Change the start type to demand.
- Should stop free loader from throwing a tantrum because it can't load a non-existant boot driver
svn path=/trunk/; revision=70414
Correctly fix the definition of DRIVER_FS_NOTIFICATION (done the same way as the other DRIVER_xxx "callback" functions; by the way you'll notice they are all NTAPI aka. __stdcall. This is not explicitely mentioned in the W(D)DK, because MS supposes you compile all your kernel-mode code in stdcall convention, the WDK environment coming with preset default compiler switches enabling that. But if you try changing them, you'll run into big troubles. In our headers on the contrary we explicitely mention the calling conventions).
[FLTMGR]
Fix FltpFsNotification to adhere to the correct DRIVER_FS_NOTIFICATION definition.
Addendum to r70410.
svn path=/trunk/; revision=70413