- Make ntgdi.h more compatible with MS' version -- Define POLYPATBLT and the spooler routines internally, and don't define NtGdiFlushUserBatch outside win32k (not a system call since 2K3)
svn path=/branches/nwin32/; revision=36589
- Rework stubs into proper declaration stubs (but still without return values, so compilation results in lots of warnings).
svn path=/branches/nwin32/; revision=34686
- Add a syscall table and register it.
- Further improve win32k.h to actually include all what's needed, and still compile with MSVC just fine (but using ReactOS's psk/ntgdi.h instead of MS's PSDK).
- Doesn't link since 660+ syscalls are not stubbed.
- Some fixes in the VC project file.
svn path=/branches/nwin32/; revision=34681
- Add project/solution for compiling with MSVC (it actually compiles and links), the project file is a tweaked rbuild-generated one.
svn path=/branches/nwin32/; revision=34648
- Invalid parameter error is returned if requested memory area is located above USER_SHARED_DATA address (0x7FFE0000) (WinXP compatible).
- Access violation error is returned if existing memory area found on requested address and this area have uninitialized region list.
See issue #3467 for more details.
svn path=/trunk/; revision=34630
- Call DbgBreakPoint() only for main thread. It fixes debugging of multithreaded apps.
- Prevent BSOD if ObReferenceObjectByHandle failed in NtGetContextThread and NtSetContextThread.
See issue #3535 for more details.
svn path=/trunk/; revision=34628
- Fix compilation of a number of modules.
- Delete outdated fmifs.h, the one from ReactOS includes should be used instead.
- Move more libs to /lib directory.
svn path=/trunk/; revision=34627
- Implement RamdiskReadWriteReal.
- We now have a working copy loop for both read and write operations.
- Need to implement RamdiskMapPages and RamdiskUnmapPages -- then we'll nearly be done!
svn path=/trunk/; revision=34625
- Fix definition of PFAST_IO_UNLOCK_ALL_BY_KEY.
- Add IO_REPARSE and IO_REMOUNT definitions.
- Add IOCTL_CDROM_DISK_TYPE definition.
- Add FlagOn, BooleanFlagOn, SetFlag and ClearFlag definitions.
- Add FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS definitions.
- Add FSRTL_FLAG_ADVANCED_HEADER definition.
- Add FSRTL_FLAG2_PURGE_WHEN_MAPPED and FSRTL_FLAG2_IS_PAGING_FILE definitions.
- Add FILE_ID_FULL_DIR_INFORMATION and FILE_ID_BOTH_DIR_INFORMATION structures.
- Add FSRTL_FCB_HEADER_V0 and FSRTL_FCB_HEADER_V1 definitions.
- Add FSRTL_COMPARISION_RESULT enumeration.
- Add backwards compatibility support for non-AVL tree routines.
- Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl prototypes.
- Add FsRtlSetupAdvancedHeader macro.
- Add FsRtlIsFatDbcsLegal prototype.
- Add FsRtlTeardownPerStreamContexts prototype.
- Add RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes.
- Fix GenericTable prototypes in rtlfuncs.h
- It seems the ntoskrnl_i386.def exports file is totally incorrect with respect to mingw -- most FsRtl functions are not properly exported. We fixed the ones we need, someone needs to go fix this entire file.
- Add memcmp to the NTOS exports -- we're not entirely sure how you were even expecting 3rd party drivers to load in React?
- Fix FastFat's "VfatFastIoUnlockAllByKey" prototype to match the fixed up PFAST_IO_UNLOCK_ALL_BY_KEY definition.
- Clean-build-tested on i386.
svn path=/trunk/; revision=34611
- Now the kernel attempts to mount us through CDFS!
- Start stubbing the work we'll need to do in RamdiskDeviceControl -- this is where the emulation magic will happen.
svn path=/trunk/; revision=34604
- We end up crashing in CcRosTryToInitialzeFileCache because there is no SectionObjectPointer, and it is assumed this always exists.
- We need to verify if this is truly the case -- in either case, add an ASSERT, since all assumptions should be ASSERTed!
svn path=/trunk/; revision=34603
- Create the name for it, based on the GUID sent by the kernel.
- Create the DOS Device Symbolic Link if requested and if possible.
- Create the DOS Drive Letter if requested.
- (drivers/storage/class/ramdisk/ramdisk.c:440) Creating symbolic link: \DosDevices\C: to \Device\Ramdisk{d9b257fc-684e-4dcb-79ab-f6a2cf0350b7}
- Need to continue implementing..
svn path=/trunk/; revision=34596
- Rename the device types to Bus vs Drive, not FDO vs PDO (they're both FDOs).
- Use a common extension (the first 0x60 bytes or so) between Bus and Drive devices.
- Implement first pass of RamdiskCreateDiskDevice -- doesn't create anything, just validates the parameters.
- Implement our delayed work queue for handling requests asynchronously -- SendIrpToThread. Doesn't do anything for now.
- Implement RamdiskQueryDeviceRelations... not sure if we're doing the right thing. According to PnP, we get a warning that we are "misbehaving".
- Driver seems to crash right now, needs fixes.
- Some reformatting to make more lines fit inside 80 characters so it looks nice in joe.
svn path=/trunk/; revision=34589
- Enable WFI during idle loop.
- Implement undefined exception handler, and get rid of reserved exception code -- this will never happen except for an SoC bug.
- Request an APC interrupt if the new thread we context switched to has APCs pending and enabled.
- Perform DPC watchdog debugging code if a DPC lasted more than a second.
- Do the appropriate bugcheck if DPCs are active during a context switch.
- Go over the FIXMEs in the assembly files too, and create a new FIXME-PERF category.
svn path=/trunk/; revision=34584
- Separate kernel FIXMEs into clearer groupings:
- TODO FIXMEs are highest priority, as they are missing required functionality.
- USER FIXMEs are the next highest priority, since they will be required for user mode support.
- V6 FIXMEs and future groupings are lowest priority, since they relate to hardware support we don't care about for now.
svn path=/trunk/; revision=34583
- Get/SetConsoleTitle: Get rid of unnecessary handle creation; instead, just have csrss get the console from the ProcessData.
- Instead of using ShowX/ShowY to store the origin of the buffer, use the VirtualX member that was put there for this purpose. Rename it to VirtualY, though, since it's a row number. ShowX/ShowY should hold the position of the visible window, once that's implemented.
- From the CSRSS_CONSOLE structure: remove hActiveBuffer (redundant), CodePageId (unused), and hWindowIcon (only used as a temporary)
- Make cursor coordinates be "logical", not "physical". This simplifies various things.
- ConioConsoleFromProcessData: If process has no console, return STATUS_INVALID_HANDLE; don't pretend to succeed (causing many functions to access memory around address 0, which is probably not a good thing). Remove various Console != NULL checks which are now unnecessary.
svn path=/trunk/; revision=34568
- GuiConsolePaint: Clip the paint area to the screen buffer, to stop heap corruption if the window gets oversized.
- ConioDeleteConsole: Do decrement the active screen buffer's refcount, but only after calling ConioCleanupConsole to destroy the window.
- Remove Win32CsrInsertObject. This function did two unrelated things (initialize lock and create handle), but in the only place it was used (CsrCreateScreenBuffer) the lock had already been initialized in CsrInitConsoleScreenBuffer, so this use was erroneous.
- Rename Win32CsrInsertObject2 (creates handle only) to Win32CsrInsertObject.
svn path=/trunk/; revision=34559
- Implement new versions of wctomb and wcstombs, which consider the language set by setlocale() and work according to all behaviours I could find when testing under WinXP SP2.
This was tested with an own test suite (which I can commit as well if anyone is interested)
- Do a real conversion to MultiByte characters using wctomb in fputwc and vfwprintf. (verified under WinXP SP2)
- Set 'MSVCRT___lc_codepage' and 'MSVCRT___lc_collate_cp' to 1252 by default ("C" locale) and not the current active codepage (which might not work with i.e. Eastern codepages)
- Add a new check for 'MultiByteCount < 0' to WideCharToMultiByte (also verified under WinXP SP2)
- Change MB_LEN_MAX back to 2, the value 5 only applies to newer CRT's (msvcrt only handles single-byte and double-byte characters)
- Don't compile the Wine-imported 'wcscpy_s', it isn't available in msvcrt
svn path=/trunk/; revision=34557
- remove XFORM members from DC structure and use MATRIX instead. Use MatrixS2XForm and XForm2MatrixS for intermediate conversion.
- this is a temporary solution (still using fpu) until I'm finished with FLOATOBJ rewrite + XFOROMOBJ api (soon)
svn path=/trunk/; revision=34554
- Set DC's iGraphicsMode to GM_COMPATIBLE when creating a DC
NtGdiRectangle:
- only exclude bottom/right pixels if dc is GM_COMPATIBLE
- fix indentation
svn path=/trunk/; revision=34553
- Fix a problem in VgaIsPresent: Content of the Address Register goes to the Data Register, and vice versa. It also writes content of the Map Select Register (which is number 4) into the Bit Mask Register (number 8).
See issue #2125 for more details.
svn path=/trunk/; revision=34549
- Implement bare boned getprotobyname and getprotobynumber.
- Make winsock functions return proper error codes instead of success (will help to identify any probs with network apps)
- patch by Yuri Sidorov <jura at cp-lab dot com>
For future reference, freeaddrinfo and getaddrinfo should really call GetAddrInfoW and FreeAddrInfoW which should do the work, but our umode network layers are a mess anyway and by no means XP compatible
See issue #3523 for more details.
svn path=/trunk/; revision=34545
This change is also not compatible with current cleaning scripts in RosBE and on the Buildslaves (which only delete "makefile.auto"), leading to possibly unclean builds if the generated makefile wouldn't be deleted.
The ultimate goal would be putting the generated makefiles into the intermediate directories, so we also save one cleaning step.
svn path=/trunk/; revision=34536
- Delete the service from the internal list
- patch by Yuri Sidorov <jura at cp-lab dot com>
See issue #3523 for more details.
svn path=/trunk/; revision=34532
Remove the svn:eol-style property and set svn:mime-type to application/octet-stream, so that these files aren't modified by SVN.
svn path=/trunk/; revision=34531
- Fix unloading function to check if a driver to be unloaded really has DriverSection set, and if not, fail.
- Inspired by bug 3221.
See issue #3221 for more details.
svn path=/trunk/; revision=34526
- Fix BSOD in NtUserWaitForInputIdle because KeWaitForMultipleObjects expects actual pointers to objects, not handles.
- Fix failure branches to have UserLeave and/or object dereference where needed.
See issue #3522 for more details.
svn path=/trunk/; revision=34525
- Speed-up user mode exception handling by calling RtlDispatchException() first if there is no active user mode debugger. This avoids switches to kernel mode if exception can be handled by SEH.
See issue #3485 for more details.
svn path=/trunk/; revision=34521
- Remove a hack in the executive handle implementation, which worked around a memory corruption bug. Revision 32770 should have fixed the bug hidden by this hack.
See issue #3512 for more details.
svn path=/trunk/; revision=34520
- use coordinate transformation
- if transform is not diagonal, call IntGdiPolygon
IntRectangle/IntGdiPolygon:
- use special locking order to avoid lockups
- don't unlock objects that weren't locked
IntGdiPie:
- if transform is cheese, call IntGdiCheeseCake
svn path=/trunk/; revision=34514
$(ROS_ARCH) will only work if an environment variable with the same name is set. But its value and the default value (if none was given) is stored in $(ARCH).
svn path=/trunk/; revision=34505
- Timers now work, along with full scheduling, dispatching and context switching, so our 5 second wait in init.c allows other threads to runs, then completes appropriately.
svn path=/trunk/; revision=34491
- Context switching doesn't really work -- but we've been lucky since we're stuck on a priority 31 thread.
- Instead of worrying about this later when the system will be fully operational, this forces us to expose these bugs, and to make sure everything works.
- This will stress our context switching, waiting, unwaiting and scheduling code on ARM but once it all works well, after 5 seconds we'll be back on track.
svn path=/trunk/; revision=34487
- Exit the trap after a prefetch abort. DbgPrint fully works now, and we're back where we started -- RamdiskCreateDiskDevice.
svn path=/trunk/; revision=34486
- No, we don't sanitize anything right now. There's no user-mode at this point, so it doesn't matter. If you think we should sanitize right now, you need to get out and get laid.
- So this brings us back to KiPrefetchAbortHandler's while (TRUE).
- We have to make sure the funky PC modifications are going to work well, and after that, we can exit the trap.
svn path=/trunk/; revision=34483
- We now get to the point where we call KiDebugRoutine, which is registered as KdpEnterDebuggerException.
- KdpEnterDebuggerException reads our exception record and understands this is a BREAKPOINT_PRINT.
- It then calls the KdpServiceDispatcher.
- This, in turn, calls KdpPrintString.
- Which in turn loops the "debug providers" and calls KdpSerialPrintString.
- Which calls into KDCOM.
- And we see this on the debug log: (ntoskrnl/kd/kdio.c:191) .
- Epic Win. Need to implement KeContextToTrapFrame now.
svn path=/trunk/; revision=34482
- We aren't really sure where the hell we are since we can't printf anything otherwise we'll trap again and end up in an infinite loop.
- So we're debugging with while (TRUE).
svn path=/trunk/; revision=34481
- We pretty much try to duplicate what happens on x86, and build an exception record with the right information.
- We are seeing the debug string in R1 and its length in R2, so we're on the right track.
- We call KiDispatchException now, which isn't yet implemented.
- Yup, all this work just to see a damn debug string the "*proper* NT way". Thanks, asshole.
svn path=/trunk/; revision=34480
- Just like on x86, this routine generates a breakpoint -- on ARM this is done with BKPT followed by an index.
- We use the BREAKPOINT_PRINT index just like on x86.
- This generates a prefetch abort -- so now we implement the prefetch abort handler. Thanks to the trap macros, this was 10 lines of code.
- This calls into the real C handler, which is now unimplemented and hangs the whole system, so we've regressed way back (on purpose).
svn path=/trunk/; revision=34474
modified dll/win32/kernel32/kernel32.def
Stubbed out GetLocaleInfoEx
modified include/psdk/winnls.h
Added some Vista and later NLS defines to the SDK
modified dll/nls/idndl/idndl.rbuild
Correctly set a NULL entry point for idndl.dll
modified dll/nls/idndl_redist/idndl_redist.rbuild
modified dll/nls/normaliz_redist/normaliz_redist.rbuild
Give unique names to the redistributable versions of idndl.dll and normaliz.dll
Everything else
Scattered NLS modules in the appropriate locations, as per standard source tree layout
svn path=/trunk/; revision=34463
- inf-files with multi language support are strongly recommended to be in utf-16 encoding (with byte order mark)
- at the moment only inf-files for second stage setup can contain translations (due to limitations of inflib)
- some of the inf files for hardware installation (/media/inf) are converted to utf-16 and contain a basic German translation in the [Strings.0407] section
- for more details read /reactos/branches/matthias-i18n/media/inf/README
- TODO: for other/further languages add other translations in new string sections
svn path=/trunk/; revision=34461
- Stub out ARM version.
- Eventually the arm_kprintf hack will go away and true serial debugging output will be done through kdcom just like on x86.
- Fix formatting of bootvid.rbuild.
svn path=/trunk/; revision=34456
- Implement RamdiskDeviceControl which only supports FSCTL_CREATE_RAM_DISK for now (the kernel's attempt to create the RAM disk).
- Need to implement RamdiskCreateDiskDevice.
svn path=/trunk/; revision=34453
- Implement IRP_MN_QUERY_RESOURCES/RESOURCE_REQUIREMENTS for FDOs and PDOs (immediately complete the IRP and exit).
- We now get to RamdiskDeviceControl -- the kernel is attempting to create the ramdisk.
svn path=/trunk/; revision=34452
- Add support for IRP_MN_SURPRISE_REMOVAL.
- Handle IRP_MN_QUERY_ID for FDO (it is the first IRP we receive).
- Handle IRP completion for FDOs and forward if necessary.
svn path=/trunk/; revision=34451
- Fix uninitialized pointer in DriverEntry.
- Add hack for ReactOS plug and play manager bug.
- Fix broken assert.
- Now in RamdiskPnp.
svn path=/trunk/; revision=34449
- Because of some ridiculously stupid design in LD, it seems if it cannot find a given entrypoint, it SILENTLY ASSUMES you meant "Hi LD, please use my base address as my entrypoint".
- As such, all our drivers were linked with the start address as the base address... for the RAMDisk driver, this ended up being RamdiskAddDevice.
- When we started implementing RamdiskAddDevice, noticed that DriverEntry wasn't actually getting called. Adding debug prints changed which function was called.
- Wasted a week, thanks LD.
svn path=/trunk/; revision=34444
It adds support for DefaultChar, UsedDefaultChar and the flag WC_NO_BEST_FIT_CHARS.
WC_COMPOSITECHECK is also supported by the Wine implementation, but I don't have an idea how to port it to ReactOS, as we don't seem to have composition tables. I left FIXME's for this flag in the appropriate blocks, this is why some of the code might look badly structured/unoptimized at the moment.
As we completely rely on the NLS tables for the conversion now, this commit might trigger some bugs there. I already found out that the CP950 table doesn't map Unicode 0 back to MultiByte 0 (but 254), using Windows' c_950.nls it works correctly. Other tables could be buggy as well, c_1252.nls worked flawlessy for me though.
- Added comments to the CPTABLEINFO structure based on documentation from http://www.ping.uio.no/~ovehk/nls/
svn path=/trunk/; revision=34426
- Pass buffers via a CSR capture buffer, instead of trying to cram them in the size-limited LPC message.
- GetConsoleAliasW: Return number of bytes written, not unrelated "Size" variable.
- GetConsoleAliasExesW: Return value is in bytes, not characters.
- GetConsoleAliasA, GetConsoleAliasExesA: Parameters and returns of corresponding W functions are in bytes, not characters.
- IntFindAliasHeader, IntGetAliasEntry: Break when current name is greater, not less.
- IntCreateAliasHeader: Fix bad use of pointer arithmetic; initialize Data to NULL.
- IntCreateAliasEntry: Fix bad use of pointer arithmetic.
- IntGetConsoleAliasesExesLength: Fix infinite loop; add sizeof(WCHAR) instead of 1.
- IntGetAllConsoleAliasesLength: Fix infinite loop.
- CsrGetConsoleAlias, CsrGetAllConsoleAliases, CsrGetConsoleAliasesExes: Don't use a winerror where an NTSTATUS is needed.
svn path=/trunk/; revision=34413
- Implement RtlSetUserValueHeap, RtlSetUserFlagsHeap, RtlGetUserInfoHeap functions. It is quick implementation and it works.
- It fixes "Out of memory" error in all InnoSetup based installations. A lot of software can be at least installed in ReactOS now.
- Also it fixes Delphi applications which use TMemoryStream class.
See issue #3464 for more details.
svn path=/trunk/; revision=34404
- Add I_RpcExceptionFilter to rpcrt4 from recent wine and export it. This allows to not do a full rpcrt4 sync right now, but still sync everything else.
svn path=/trunk/; revision=34403
modified lib/sdk/crt/libcntpr.rbuild
Add qsort and div to crt and libcntpr
modified lib/sdk/crt/include/internal/tls.h
modified lib/sdk/crt/stdlib/qsort.c
Fixed ineptly-ported DJGPP qsort to not use TLS
svn path=/trunk/; revision=34396
Bug 3468: Translate calc to norwegain by Lars Martin
Bug 3470: Translate file charmap by Lars Martin
Bug 3471: Translate file Remote desktop by Lars Martin
Polish Shell32 Translation Update by Olaf Siejka
svn path=/trunk/; revision=34383
- Always call ZwRaiseException in user mode and RtlDispatchException in kernel mode.
- If RtlDispatchException failed call ZwRaiseException in kernel mode. Otherwise unhandled RtlRaiseException() call in kernel mode simply ignored (do nothing)!
- Call RtlRaiseStatus in RtlRaiseException, if something went wrong.
See issue #3434 for more details.
svn path=/trunk/; revision=34377
- Removed NtUserGetSystemMetric, updated all related.
- Add GetConnected, this is needed, sometimes global pointers are initilized with zeros. This is normal.
- Fix prototype for NtUserDragDetect, and add the Esc key hit to DragDetect.
svn path=/trunk/; revision=34370
- Do not corrupt the stack anymore
- Use a consistent trap frame layout (enable OldIrql and PreviousMode, and set the 0xBADB0D00 debug mark)
- Use slower but more correct trap prolog/epilog code for now.
- Generalize all prolog/epilog code into macros just like on x86. As a result, traps are now 6 lines of code.
- Rewrite the system call interface from the ground up:
- System calls didn't actually work: a debug print made the stack layout magical enough so that they didn't normally crush, but only slowly ate the stack.
- Copying arguments from caller to system call was, as the comment on the original code so aptly put it, "total shit".
- Due to ABI concerns, and to provide an actual template on how you're -supposed- to implement something like system calls on RISC processors, we now use
a model similar to BSD, but about ten times better (with that much less code too). We'll document it later on the RosPSG Wiki.
- This code probably contains some of the most vile-yet-elegant macro magic ever written for such low-level code as system call dispatching.
- The result of all this is that we're at the same place as before (RamdiskAddDevice needs to be implemented by the Ramdisk guys) but with a sane low-level
backend that isn't slowly eating away the stack, corrupting data, and basically working through random chance.
- Move timebase code from stubs.c to its own file, time.c.
- Silence multiple debug prints and fix a corrupted debug print in KiSystemStartup.
svn path=/trunk/; revision=34366
IntCreateCompatibleBitmap: Remove 65535px maximum (Windows has no such limit); return the stock 1x1 bitmap instead of creating a new one.
BITMAPOBJ_GetRealBitsPixel: Change parameter type to UINT; remove 2bpp return (2bpp bitmaps are not actually supported)
svn path=/trunk/; revision=34358
- No need to register cryptui, since its registering routines are stubs. Fixes ERROR_MR_MID_NOT_FOUND in 2nd stage.
See issue #2719 for more details.
svn path=/trunk/; revision=34353
- don't show OpenWith dialog on network neighbourhoud shell folder
- use translatable "open" verb for shelllink's context menu
- deactivate shelllink property dialog, it should be implemented using IShellPropSheetExt interface
- enumerate context menu handlers also in the progid key
- shortcut items now show again the "open" item
svn path=/trunk/; revision=34320
Patch by Samuel Serapión with some modifications by me after discussing it with Art Yerkes
See issue #3387 for more details.
svn path=/trunk/; revision=34297
- FreeLoader first reads entire ntoskrnl.exe (about 20M) into memory, then copies it to other address. Now, freeldr reads it straight to the place, not allocating extra memory for buffer.
- Aleksey: This changes should be eventually adopted and merged into winldr's peloader.c.
See issue #3447 for more details.
svn path=/trunk/; revision=34292
- Implemented GetLastActivePopup, based on wine.
- Fixed DCE, pass all tests, except six clipping and one ROP check, which might be due to DCX_NORESETATTRS flag not being reset during the next GetDCEx call. <Researching>
svn path=/trunk/; revision=34289
- NtGdi(Get|Set)BitmapDimension: SEHify; set ERROR_INVALID_HANDLE on a bad non-NULL bitmap.
- NtGdiGetDCforBitmap: Don't crash on bad bitmap.
svn path=/trunk/; revision=34288
- GetLastActivePopup is unimplemented and returns a zero. So User32 locally checks and sees the zero and passes it to win32k for processing. There an (kbug) exception is thrown.
svn path=/trunk/; revision=34274
- Fixes the problem of selecting Explorer START menu than mouse over and clicking another application.
- Doesn't fix the problem of selecting Explorer START menu than mouse over to the opened file Explorer and clicking on it.
- Why, one might ask? The file Explorer shares the same TID.
svn path=/trunk/; revision=34270
- NtGdiBitBlt: Fix null pointer access when cleaning up after failure to lock source bitmap.
- NtGdiStretchBlt: Fail gracefully if a bitmap can't be locked. Don't delete XlateObj if it couldn't be created.
- NtGdiPolyPatBlt: Actually *use* the safe copy that so much code was dedicated to creating. :)
- Trim a few bits of redundant code.
svn path=/trunk/; revision=34267
I verified this behaviour with a test app under Windows XP SP2. This is also the code used by the fputwc function of our previous msvcrt.
svn path=/trunk/; revision=34266
- Converted over to use the new draw/fill square algorithm for draw arcs and draw/fill round rects.
- Tested with (Area.exe) Yuan program. Getting better.
svn path=/trunk/; revision=34248
- enable/disable checkboxes when normal/diagnostic startup is selected
- automatically select normal startup checkbox as other options are not implemented
- bug 1986
svn path=/trunk/; revision=34243
- Converted over to use the new fill square algorithm for fill arcs and draw/fill ellipse.
- Tested with (Area.exe) Yuan program. Chord work and the CW/CCW works as it should.
- The pie angle still floats with aspect ratio of ellipse and not point fixed. Work in progress.
svn path=/trunk/; revision=34233
- Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile.
See issue #3408 for more details.
svn path=/trunk/; revision=34232
- When delivering kernel APC, set the pending flag to false (by analogy with delivering user APC and clearing its pending flag).
See issue #3426 for more details.
svn path=/trunk/; revision=34230
- Get rid of other ntdll imports (memcmp in freetype, tan in win32k) and instead link the functions statically, so ntdll is no longer loaded at all in kmode. Saves about 550kB of memory.
- Also remove unused <library>hal</library> in freetype.
svn path=/trunk/; revision=34227
* Fixed bug with Conversion function: "Category" type must be found like "from" and "to" because the combobox sorts its items alphabetically.
* Fixed bug with memory function and GNU multi-precision libraries: the memory must be initialized to zero when the calculator starts, otherwise "MP" will crash.
* Fixed bug when closing an expression with right parentheses.
svn path=/trunk/; revision=34220
This way we are only bound to the CreateProcess limit (32767 characters) and not to the maximum cmd command line (8192 characters). Fixes the "Line too long" problems some people were experiencing.
Thanks to Yury Sidorov on ros-dev for the hint.
- Simplify the GenerateLinkerCommand code by removing a duplicated code path, which existed for a bug closed some time ago.
Thanks to Hervé for the hint.
svn path=/trunk/; revision=34218
- Ramdisk does not depend on Class2 or ScsiPort.
- Disable loading any other driver than ramdisk.sys and cdfs.sys. We won't support PCI and the storage stack for a while, so ramdisks are the best and quickest way to test the actual kernel and get to user-mode as soon as possible to continue work on the VM management inisde Mm.
- We get up to RamdiskAddDevice (not yet implemented)!
svn path=/trunk/; revision=34214
- If we move away from a standard inf file (not necessarly a good idea), we may be able to return back to a single directory and dynamically generate .inf data.
- Update rbuild to deal with this new fact.
svn path=/trunk/; revision=34211
- This means we actually load and parse drivers now!!! Some Mm work was required to support unloading and remapping: MmDeleteVirtualMapping is now implemented.
- We can now see scsiport.sys and atapi.sys strings displayed on the LCD.
- Implemented HalQuery/SetDisplayParameters, HalQuery/ReleaseDisplayOwnership and HalDisplayString just like on x86.
- Since we now load symbols for the drivers (or at least try to), stubbed DebugService2, which also shows us what's being loaded.
- Extended the Loader MemoryType array to include XIP/RAM Disk Memory.
svn path=/trunk/; revision=34210
"fixing two hiden bug in reactos, null termante the string right at end, code tested in vs, but it seam no affact on wine test mscvrt printf test. What hell is the snprintf function call to ??".
Instead of fixing "hidden bugs", it introduced a real very well hidden bug, which was overwriting the target buffer and thus corrupting everything starting from the heap, and ending with pools. It's possible to install and run OO2 Writer now.
See issue #3311 for more details.
svn path=/trunk/; revision=34180
- Fix one of the oldest bugs: "ROS can not parse partition table corectly". The original macro that calculates the space casts the value to ULONG, while ULONGLONG math is required here.
See issue #950 for more details.
svn path=/trunk/; revision=34174
- Ported GraphApp draw arc fill algorithm. It was faster than X11. Include copyright license in header.
- Now we can draw pies and arcs and fill them, need to test chord fill.
svn path=/trunk/; revision=34169
- Fix a bug in KeRemoveQueueApc: the code was always removing the first entry in the APC queue
instead of the actual APC. This should fix weird user-mode timer bugs. (Spotted in bug 3354).
See issue #3354 for more details.
svn path=/trunk/; revision=34167
- initialize range control
- use ES_NUMBER style for edit text
- recovery options handling is not yet implemented
- the resource for czech, denmark, hungary, japan, netherlands, sweden must be manually synced
- fixes bug 3390
svn path=/trunk/; revision=34151
- Fixed path coordinate problem by enabling old code and fixing arc move to issues. See that code that everyone thought that had no real use was usefull after all.
- Found more image and region problems, see bug 3402.
svn path=/trunk/; revision=34128
- Change some infinite loops to ASSERTs since bugchecks now work and we can better differentiate stubs versus loops versus unimplemented code.
- Add back the system call debug prints -- total hack to make the stack work.
- Add support for the ARC Disk Information/Signature in FreeLDR.
- We've reached a major, major milestone here folks -- the kernel bugchecks because no boot device was found (since we don't have any working drivers yet).
- We have a lot of stuff to fix before continuing, and code review will take some time.
svn path=/trunk/; revision=34121
- Implement KiSaveProcessorControlState and make the appropriate changes to KPROCESSOR_STATE and KSPECIAL_REGISTERS on ARM to support this, as well as moving the ARM Register definitions from ntos to NDK.
- Implement RtlCaptureContext.
- With these changes, BSODs now work, but because of missing palette code, they are actually R(Red)SODs, which is awesome.
- Remove debug prints from system call code -- this ends up somehow corrupting the return values *sigh*. More work to be done there, defintely. We have now regressed but we have an RSOD.
svn path=/trunk/; revision=34120
- Rewrite Path handle support and reordered path.c.
- Wine Sync/Port PATH_WidenPath and PATH_DoArcPart. Wine Path test results: 151 tests executed (0 marked as todo, 24 failures). 3 skipped.
- Found where the use of SelectObject in DC_InitDC, placed nulls into hbrush and hpen, I comment out and used StockObject and now default drawing works.
- Implemented AngleArc and most of Arc. This is very experimental and it does draw and does not crash.
- Cleaned up some files with extra <CR> at the end of lines.
- Fully tested: Taskmgr, FF 1.5, Abiword, drawing programs, and all.
- Note: Path drawing is majorly misaligned. Fill path will draw in one area and Stroke path will draw in another.
- Note: Trunk: Gdi wine DC test: dc.c:89 Failed to lock hDC, sometimes locking up the system. See bug 3333.
svn path=/trunk/; revision=34119
- Properly set dwFirstChance member EXCEPTION_DEBUG_INFO structure returned by WaitForDebugEvent function.
- Properly handle dwContinueStatus parameter of ContinueDebugEvent function.
See issue #3393 for more details.
svn path=/trunk/; revision=34111
- Fix a major problem in pushlock implementation: if there are 2 or more
threads waiting for a lock, only one of them ever gets woken. ExfWakePushLock
is missing a break in its loop so it removes all the WaitBlocks instead of just
the last one.
- This fixes all "weird" hangs happening, including FF1.5 installer hang, VMWare Video Driver Installer hang, taskmgr tabs hang, and other similar problems.
See issue #3141 for more details.
svn path=/trunk/; revision=34092
- Fix a bug in FreeLDR-ARM, we forgot to set the RegistryLength, resulting in a corrupted registry. We can now load the system registry.
- Enable code to handle DPC, Timer and Deferred Ready cleanup (portable code that's already written).
- Enable code to handle quantum end.
- We now load all the way to IoInitSystem!IopInitializeBootDrivers.
svn path=/trunk/; revision=34091
- We use this in the clock ISR, that can now actually send the trap frame to KeUpdateSystemTime.
- Implement KeUpdateRunTime to handle time accounting and DPC rescheduling as well as Quantum End.
- Ignore quantum end for now.
- We now have a working timebase, and we're back to our earlier checkpoint around CmInitSystem1!.
svn path=/trunk/; revision=34088
- We do not yet handle all cases, most notably, timer expiration.
- There may still be some bugs to work out in the code, but it's a start.
- This regresses progress, but does not ignore time anymore.
svn path=/trunk/; revision=34084
- add support for preventing all commands to be run on the channel by default. Now TechBot only answers some of the commands in PM
- add back the error Command
svn path=/trunk/; revision=34079
- Fix a race condition in msgina, which occasionally led to hangs at "Loading your personal settings"
See issue #3384 for more details.
svn path=/trunk/; revision=34077
- Fix a bug in MmDeletePageTable.
- Use MmCreateVirtualMappingForKernel when we are already in the right process context, and allow it to be used for addresses < KSEG0_BASE as well.
- We now have full memory mapped file support, and get all the way to CmInitSystem1.
svn path=/trunk/; revision=34072
- Initialize LastChanceShutdownList.
- Sndblst.sys and a bunch of other drivers using Io[Un]RegisterLastChanceShutdownNotification work now.
See issue #3331 for more details.
svn path=/trunk/; revision=34064
- Fix broken .rbuild file -- not sure how this was supposed to build in the first place.
- This gets us further -- more of ARM Mm needs implementing.
svn path=/trunk/; revision=34061
Bug 3287: My network place properties not displayed correctly by Mario Kacmar (kario@szm.sk)
P.S. The Polish Translation in the previous Commit was made by Maciej Bialas, not Olaf Siejka.
svn path=/trunk/; revision=34058
- We do not attemp to build world anymore. We have handwritten a new ARM rbuild file that only builds what we need for our current ARM work.
- HAL and FreeLDR do not seem to have an "installpath"... why not? Added one at least for our ARM stuff, so that "make install" can drop the binaries.
- Fixed some ARM DDK macro inconsistencies, allow more drivers to build.
- It is now possible to use "make install -k" to drop a completely working ARM build onto an image due to all these changes.
svn path=/trunk/; revision=34055
I know this is probably not the best way for doing the job, but I don't know of any other method to achieve the same.
- Change the right popup menu to only show the "Options" and "Exit" menu items (like ctfmon does)
- Add the missing 'return 0;' statements, when a message was handled
See issue #3372 for more details.
svn path=/trunk/; revision=34053
Instead of copying those functions into every host tool, which needs it (as we did previously), we can now implement them all in this library and link the host tools to it.
If USE_HOST_WCSFUNCS is not defined, the "wcsfuncs.h" file will define them to the CRT functions (so this library does not create overhead, when the code is built for the target platform)
See issue #3285 for more details.
svn path=/trunk/; revision=34050
- Korean translation of explorer-new added
- See issue #3368 for more details.
- Alexander Wurzinger <<Lohnegrim At gmx DOT net>
- Patch for the "CreateEnergyList failed"-Error added.
- See issue #2469 for more details.
svn path=/trunk/; revision=34045
- Add the selected test to the main combo
- Tag the dll path to each combo item
- Run the test when the 'run' button is hit.
We can now run all Wine tests from the GUI, but we get no feedback yet.
svn path=/trunk/; revision=34043
Alexander Wurzinger <Lohnegrim At gmx DOT net>
- Patch to fix the "Pos InitData failed"-Error in power options.
- See issue #2469 for more details.
svn path=/trunk/; revision=34040
- Wrap libwine's memory allocations, avoiding msvcrt imports in kernel32
- The cause is that libwine/debug.c uses functions (malloc, free, realloc, _strdup) which are only present in a complete CRT, creating imports from msvcrt.dll in any module that uses it, including kernel32.dll. Since kernel32 is currently importing from msvcrt, kernel32 gets DLL_PROCESS_DETACHed first, creating a problem for msvcrt's DLL_PROCESS_DETACH which, as a result of a recent bugfix, now uses kernel32 functions that depend on the resources that were freed.
- Fix this by implementing those 4 functions as wrappers around the Local* APIs, in order to avoid the problematic imports.
See issue #3373 for more details.
svn path=/trunk/; revision=34037
- Filled FCB structures with more informations
- Added them to linked list
- Set mounted volume to FILE_DEVICE_DISK_FILE_SYSTEM
- Various code cleanup
svn path=/trunk/; revision=34036
The browse dialog now lists all winetest dlls and allows selection of either all tests in all dlls, all tests within a dll, or the option to choose individual tests. (rewuires a modified winetest framework)
svn path=/trunk/; revision=34034
Thanks to hackbunny for pointing out that ##__VA_ARGS__ will strip the trailing comma and this works on both GCC and MSVC.
svn path=/trunk/; revision=34031
- bootdata, hives and usetup modified for korean keyboard layout
- See issue #3345 for more details.
- Patch from Gabriel Ilardi <gabrielilardi [at] hotmail [dot] it> for timedate settings applied
- See issue #3251 for more details.
svn path=/trunk/; revision=34028
Also clean up sysreg a bit and put all #include's for standard headers in the .h files. (they were spread around the .cpp and the .h files previously)
See issue #3370 for more details.
svn path=/trunk/; revision=34027
- As a result, fixed a couple of incorrect functions linkage.
- Fixed a name of vsnprintf, so really msvcrt's version is used now, not RTL's one.
svn path=/trunk/; revision=34026
This will plug into the new testing framework for the Wine tests, which will also publish it's results on a live website (if I can get Colin to help me with the web stuff ;) )
This is the time to pester me with requests / ideas anyone may have.
svn path=/trunk/; revision=34016
* In ExTimedWaitForUnblockPushLock, check only for STATUS_SUCCESS (which is the only status return when the wait was satisfied, while other like STATUS_TIMEOUT would still be considered a success).
* In ExBlockPushlock, fix a typo when trying out an interlocked exchange with a new value - wrong value was assigned.
* In ExfAcquirePushLockShared, assign PushLock value passed to this function, not the NewValue, like it's done in ExfAcquirePushLockExclusive.
* In ExfReleaseReleasePushLockExclusive, fix a typo which led to incorrect behavior and not waking up the pushlock when it should be.
svn path=/trunk/; revision=34008
- Cosmetic fix: initialize pushlocks using a special macro, not by assigning 0 to its value.
See issue #3352 for more details.
svn path=/trunk/; revision=34000
- GDIOBJ_FreeObjByHandly: unlock handle table entry when object to delete was locked
- REGION_AllocRgnWithHandle: unlock region before trying to delete it on failure
Now gdi32_winetest clipping doesn't freeze ros anymore
svn path=/trunk/; revision=33995
- fix a test name
- comment out more tests for EngReleaseSemaphore, they cause heap corruption on ros
- convert more TEST -> RTEST
svn path=/trunk/; revision=33994
- Hackmove: Define NTDDI_VERSION in kernel32, otherwise it gets derived from WINVER version (and thus kernel32 becomes Vista). This allows to remove #undef NTDDI_VERSION from ndk/obtypes.h.
svn path=/trunk/; revision=33990
This patch has already been submitted to Wine, but as they don't care currently, I applied it manually here and updated "comctl32_ros.diff" accordingly.
Patch by Timo Kreuzer
svn path=/trunk/; revision=33985
This patch has already been submitted to Wine, but as they don't care currently, I applied it manually here and updated "wininet_ros.diff" accordingly.
svn path=/trunk/; revision=33984
- Make use of the SARCH rbuild parameter to define the target board (default to ARM VersatilePB for now)
- Make official ARM include directory (include/reactos/arm) and move the ARM DDK there
- Start creating header files for different target board components.
- Update halfuncs in NDK with one missing function, and temporarily, one ARM function.
svn path=/trunk/; revision=33979
- Implement KiInitMachineDependent -- this is only useful for x86 and has nothing relevant to ARM, so we just return.
- Implement HalAllProcessorsStarted (again, a no-op) and HalQueryRealTimeClock (uses the RTC on the board -- uboot must set it up first).
- Make sure we get the right Sp during a system call (this is still broken though).
- We need to fix our system call handler next.
svn path=/trunk/; revision=33977
- Don't implement BitBlt for now.
- Add the bootdata font file to the arm bootvid as well.
- Not sure how it's possible, but we are seeing text output on the console with this hacked-up code! The ReactOS version string appears...
- We are now getting much further in the boot cycle.
svn path=/trunk/; revision=33976
- Don't hang in the clock interrupt anymore, for now we'll just ignore it (but it works! :D)
- Make all unimplemented bootvid functions hang the system, so we can better stop at progress-points.
- Implement VidInitialize:
- We allocate a 640x480@16bpp framebuffer using contiguous physical memory (our MMU code survives!).
- We setup the LCD controller timings and framebuffer address.
- We enable the LCD
- For debugging, we're also drawing a nice little test pattern... and it works! We have GUI Code :)
svn path=/trunk/; revision=33974
- Stub out all the bootvid functions for ARM, and add an infinite loop so we stop there.
- Remove the infinite loop from the HAL -- Hal Initialization is complete.
- We must now implement the LCD graphics functions.
svn path=/trunk/; revision=33973
- Since we have two timers (ha x86!!!), set the second one as the stall timer. It's a one-shot periodic timer, set to the exact number of microseconds being waited on.
- To fully emulate stalling, we don't use a clock interrupt for it (it supports not sending one!) and just busy-loop until the value reaches 0.
- Tried it with a 10 second (10000000 us) wait and it worked -perfectly-.
- Re-implemented KeStallExecutionProcessor and got rid of the other code. Back in HalInitSystem(phase1) now...
- Also killed some DPRINT1s getting on my nerves.
svn path=/trunk/; revision=33971
- We are now back to HalInitSystem just like before the previous fixes.
- Now we'll implement stall calibration and switch to the clock interrupt.
svn path=/trunk/; revision=33970
- Also written KeStallExecution.
- Now, we are back to where we hang before Phase 1 (so Phase 1 doesn't occur anymore).
- This hang is because we used to do a DPC here, which isn't good, since IRQL is already at dispatch.
- Instead, the correct course of action is to enter the idle loop, which will schedule the phase 1 thread.
- But, we don't have an idle loop yet ;-)
svn path=/trunk/; revision=33969
- Get rid of KeSwapIrql -- both lower and higher IRQL handling was treated the same!
- We can now re-activate the assert in the IRQL code
- Disable interrupts before changing the interrupt mask!!!
- And re-enable them solely if they were enabled.
- Clear interrupts mask before setting a new one -- raising isn't always additive!
- Fix KiInterruptHandler to perform operations in the right order.
- Finish implementing interrupt exit code.
- Code KeArmStatusRegisterGet to read CPSR and interrupt status.
- Make debug prints a lot more readable and dont trying to acquire the stack during pool allocations.
- Setup the clock interval timer!!!
- This code regresses progress but makes stuf fwork right. We'll get better after implementing the stall interrupt.
svn path=/trunk/; revision=33967
This function is meant to be used for a single menu item info and just frees the memory allocated for dwTypeInfo.
Replaced this with a simple HeapFree call to free the memory for the whole array allocated in MenuGetAllRosMenuItemInfo.
Fixes a heap corruption discovered by encoded.
See issue #3349 for more details.
svn path=/trunk/; revision=33959
- First of all, MenuSetItemData is only called from InsertMenuA/W and ModifyMenuA/W.
Therefore the passed MENUITEMINFO structure will always be empty, so it makes no sense to check for flags in this structure.
This way, I could simplify the code block for MF_BITMAP.
- Also fType = MFT_BITMAP and fMask = MIIM_BITMAP at the same time passed to win32k don't work.
Changing this back to only set fMask fixes bitmap menus.
- Furthermore the data for MF_OWNERDRAW is really stored in dwItemData and not in dwTypeData.
The MSDN documentation for InsertMenu applies here, not the one for the MENUITEMINFO structure.
This fixes owner-drawn menus like the one in Abiword.
See issue #3272 for more details.
svn path=/trunk/; revision=33958
The freetype asm function FT_MulFix clobbers the edx register, but doesn't tell it to gcc explicitly, so when inlined versions were resulting in wrong results. Fix it by also marking edx as output register.
Also enable commented out code in win32k again that works correctly now.
By me:
I modified the patch to not alter any 3rd party code, but instead I copied the fuction to _ftmulfix_ros.c and also coplied the container file ftbase.c which now uses the fixed function from our private file.
This fixes a bunch of text output issues (underscore, text marking)
See issue #3346 for more details.
svn path=/trunk/; revision=33951
- Add bounds checking for GetSystemMetrics both in user32 and in kernel counterpart.
- Based on a patch from bug 3316.
See issue #3316 for more details.
svn path=/trunk/; revision=33947
- Minor patch to HEAP_GetPtr to include magic value in debug output.
- Fixing the parameters checking in HEAP_InitSubHeap (it is currently not used - put between #if 0 / #endif ).
- Correcting HEAP_FindFreeBlock which was logging error message as warning (while still returning NULL to caller) by changing severity of logged message.
- Implementing RtlEnumProcessHeaps (previously stubbed out).
- Fixing sanity checks in and implementation of RtlGetProcessHeaps (previously
the function was not checking for the counter value, and also was not assigning anything to the returned value; now this seems to be corrected.
- Fixing RtlValidateProcessHeaps implementation (the function was stubbed out because (most probably, I wasn't able to find a bug mentioning this) it was previously using a global lock for all heaps (which probably could cause some problems in the kernel), now it only locks heaps belonging to the given process - and this is the correct behaviour.
Aleksey Bragin <aleksey@reactos.org>
- Fix typo in ntuser.c, and low severity of debug message.
See issue #2964 for more details.
svn path=/trunk/; revision=33945
- This fixes an issue where code was using PCR->CurrentThread but x86/shared routines use PRCB->CurrentThread.
- Added a note to explain the difference, and we now set both.
- We currently stop at Phase 1 HAL Initialization.
svn path=/trunk/; revision=33940
- We completely ignore setting the thread to the right scheduler state, and don't do any APC delivery checking, or any other work.
- We now implement a basic KiThreadStartup, which behaves properly (we believe). Doesn't handle user-mode threads yet, though.
- This gets us through PspSystemThreadStartup, and..
- We now reach Phase1InitializationDiscard! A major step has been reached, now it's time to cleanup what has been done until now and verify it to be correct.
- Then we move on... the next two things will be 1) Hal Initialization (setting up the timer) and 2) Displaying the boot logo.
- Graphics will require using the PL-110 LCD Controller.
svn path=/trunk/; revision=33937
- The only things we do are swap the stack and then display the old/new thread/stack.
- More work to be done to actually save the non-volatiles, prepare the thread state, and restore the volatiles for the new thread.
- Then we will return to the saved return address, and we should be in Phase 1 with working thread switching/scheduling.
svn path=/trunk/; revision=33935
- _iob is already defined as a dll_import
- _rotl intrinsic is now implemented (should use rol instruction, but not sure on the syntax!)
- Add a stub psctx.h for ARM
- Added InterlockedEXchangePointers
- Fix uninitialized variable warning in ex/resource.c
- Start to implement interrupt handling:
- We now have a rudimentary interrupt handler that takes care of software interrupts
- We now have a rudimentary DPC handler which takes care of switching to the next thread, if any
- We now setup the HAL Interrupt Source -> IRQL Table (The IRQLMask Table).
- Implemented HalGetInterruptSource, which allows us to get the interrupt # that cause the IRQ.
Note: this wasn't needed on Alpha/PPC/MIPS NT ports, because that information is stored on the CPU,
and the kernel could read it -- we must abstract it through the HAL.
- Add the OldIrql to the TRAP_FRAME, we don't use it yet.
- We are now ready to context switch to the Phase 1 thread.
svn path=/trunk/; revision=33933
- In Kd and GDB exception handler wrappers, return FALSE if kdDoNotHandleException, and return TRUE otherwise (kdHandled / kdContinue). After my previous commit these functions were always returning FALSE / exception not handled.
svn path=/trunk/; revision=33929
- Leave and refactor existing underlying linux-code based sprintf implementation into lnx_ prefixed functions.
- Misc source code and headers cleanup.
- Fixes bugs 2910, 2803.
See issue #2803 for more details.
svn path=/trunk/; revision=33927
- Give the Run Dialog resources a default title (only done in German and English resources so far, others still need to be done)
- Add support for passing no title to RunFileDlg, so that it uses the default title
- Pass no hardcoded english title in Explorer and Task-Manager.
I slightly modified the patch to also remove the other hardcoded text passed in Explorer.
See issue #3340 for more details.
svn path=/trunk/; revision=33919
Fix a memory leak.
Enable the Apply button when the users full name or description is changed.
- Group properties:
The group description can be changed.
Update the group list when the group description changes.
svn path=/trunk/; revision=33901
it did not check after some NULL pointer and did crash in firefox.
and some reason NtGdiCreateCompatibleBitmap fail in some case, that what happen in firefox 1.5.
svn path=/trunk/; revision=33885
Make it act bit more like windows, use PatBlt instead for BitBlt for no ROP source for it bit faster
Thx irc Goplat found my bug in the macro.
svn path=/trunk/; revision=33876
- Don't make single-step break into KDBG if it comes from user-mode.
- Don't make KDBG return "continue" for breakpoint/singlestep, it should return "do not handle exception".
- Add 20 new invalid instructions detected instead of crashing/"UNHANDLED CODE".
- Fix DR registry handling (set DebugActive = TRUE when needed, and set Context->Dr7).
- Fix set/get context: These two functions didn't work at all. Get actually performed a Set, and Vice-versa. Also, Set would incorrectly set the frame of the caller, not the target thread. Also, the trap frame pointer wasn't being grabbed correctly for kernel-mode callers.
- Move the code to a non-portable i386 directory, since the code is architecture-specific.
- Move GET_SET_CTX_CONTENT out to ps.h.
svn path=/trunk/; revision=33871
- Remove a leftover from kernel32 which assumed that if "BeingDebugged" was TRUE, the library was being tested on an XP machine.
svn path=/trunk/; revision=33870
- Add SEH to NtCreate/OpenKey, which fixes the rest of the wine registry tests.
- Fix PnP Manager code that was doing case sensitive registry access with "Registry".
svn path=/trunk/; revision=33869
- Largely based on the patch by Samuel Serapion.
- Include file.c from Wine's msvcrt, but exclude its contents from the build process for now.
svn path=/trunk/; revision=33866
also by mistake _seh_longjmp_unwind was not longer redirected to seh_longjmp_unwind it is now again
thx irc nick : Goplat to notice this.
svn path=/trunk/; revision=33862
- add a comment about who removes a message from a queue
- fix filter handling (typo)
- correct the callers next list entry, if it might have been deleted. Yes, it's ugly, but the only way I could currently think of without rewriting everything and it was already ugly before. This fixes bug 2317 and some random crashes with FF.
See issue #2317 for more details.
svn path=/trunk/; revision=33860
- Remove ExTryToAcquireResourceExclusiveLite from NDK since it's not exported by NT kernel.
- Add ObSetSecurityObjectByPointer, RtlInitAnsiStringEx (and implement it, rather straightforward) to NDK.
- Uncomment exports in ntoskrnl_i386.def which are already implemented.
- Add KeInvalidateAllCaches to ARM's stubs.
svn path=/trunk/; revision=33825
It currently tests the features I needed to adjust/implement when fixing the wininet problem.
ReactOS currently passes all tests, but fails one if you launch the test app for the second time quickly after the first time (timing problem in the network code?).
- Fix the behaviour on an ioctlsocket FIONREAD call: The output buffer is not touched, when we have no socket, but when we have no connection, it is set to 0.
- Forward the socket call to WSASocketW instead of WSASocketA, minimal performance improvement
svn path=/trunk/; revision=33824
Fixes compilation with MSVC. (note that you also have to change the calling convention from __stdcall to __cdecl in the auto-created project file for the lib)
svn path=/trunk/; revision=33823
I think it testing all case it can now, and also split up some test to EngDeleteSemaphore and EngReleaseSemaphore and EngAcquireSemaphore, that was in EngCreateSemaphore
svn path=/trunk/; revision=33816
As we implement some more functions in the network stack now, I could remove some hacks from the "wininet_ros.diff" file.
Anyways, the following things still needed to be changed:
- Pass a variable to WriteFile for receiving the number of bytes written. This parameter is not checked for NULL in ReactOS and Windows, when lpOverlapped is also NULL.
I'll submit a patch about this to Wine as well.
- Replace Unix poll() calls by equivalent select() calls
- Bypass sock_get_error(), directly call WSAGetLastError() as we don't have to translate Unix socket errors.
See issue #3197 for more details.
svn path=/trunk/; revision=33788
1. it break vmware drv, for it align each bitmap row it create
2. diffent behoirs in diffent vm
this did show we have more serius bug to fix before we can apply correct fix.
svn path=/trunk/; revision=33783
accdoing OSR it is number of bytes to next scanline in the bitmap, wine version did align it, that why wrong number of bytes was reported also fixed overflow bug in the math, and make sure if some part of win32k send in negtive width, it will not calc it wrong, Remove one hack in win32k, thx of this, Thx fireball that suggest this functions mabey was wrong
svn path=/trunk/; revision=33782
2. this is almost 100% correct list of windows 2003 export list of msvcrt.def and it will make abiword working again for it was missing api wfreopen and allot more api from msvcrt
3. this add back api that was remove api they exists in windows 2003 export list
4. List was provide from colin f
See issue #3293 for more details.
svn path=/trunk/; revision=33764
- Remove NT3/4 specific unimplemented function and change STDCALL -> NTAPI in mm.c
- Make ReactOS i386 kernel exports almost fully correspond to W2003SP1 ntoskrnl.exe's exports.
svn path=/trunk/; revision=33759
- Remove usage of unexported RtlDuplicateUnicodeString in green.sys driver (this is basically the same fix which Herve applied to blue.sys).
svn path=/trunk/; revision=33758
- optmize by moving the locking of the dc to NtGdiFlushUserBatch instead of doing it for every object
- fix wrong pointer calculation (GdiFlushUserBatch returns the size of the objects in bytes not in ULONG)
- simplify a check
- add a comment: on XP NtGdiFlushUserBatch doesn't return NTSTATUS, but a pointer to inside the Teb, maybe random/VOID
svn path=/trunk/; revision=33750
Thanks to CMan for regression-testing!
Also I removed Magnus' change in r33700.
If this is really required, please name the reason and add the change to a usp10_ros.diff file as this is a Wine-synched component. Also don't forget to include a header file for the DbgPrint prototype.
See issue #3280 for more details.
svn path=/trunk/; revision=33749
- Sync parts of msvcrt with Wine (more will follow)
This makes us passing a lot more msvcrt Wine tests (like all heap tests)
svn path=/trunk/; revision=33747
fast explain windows xp and higher have two gdi table, it is better reuse same macro for both, that rewrite it one more time.
svn path=/trunk/; revision=33744
Revision 1.37 fixes the exception in ole32 when opening a file with FoxitReader. Also fixes some warnings and hopefully some usermode crashes.
1.28: Jonathan Ernst <jonathan@ernstfamily.ch>
Update the address of the Free Software Foundation.
1.29: Alexandre Julliard <julliard@winehq.org>
include: Exception filters should return LONG, not DWORD.
Also move UnhandledExceptionFilter definitions to winbase.h since they
are there in the latest SDK.
1.30: Rob Shearman <rob@codeweavers.com>
include: Move Wine-specific EH_* defines from winnt.h to include/wine/exception.h.
1.33: Rob Shearman <rob@codeweavers.com>
Add a new convenience macro for an exception handler that handles all exceptions.
When using native compiler exceptions, the previous method of doing
this, __EXCEPT(NULL), would expand to __except(
(NULL)(GetExceptionInformation())) which doesn't compile as NULL isn't a
function.
So add a new macro, __EXCEPT_ALL, which works correctly both when using
native compiler exceptions and without and which makes the meaning of
code in which it is used clearer.
1.35: Alexandre Julliard <julliard@winehq.org>
ntdll: Make the exception handling functions inline.
1.36: Alexandre Julliard <julliard@winehq.org>
exception.h: Only push the exception frame after sigsetjmp.
Otherwise on Windows longjmp may want to mess with the exception frame.
1.37: Alexandre Julliard <julliard@winehq.org>
exception.h: Preserve registers when calling RtlUnwind.
See issue #812 for more details.
svn path=/trunk/; revision=33732
Added definitions for NormalizeString and IsNormalizedString (Vista and later)
Correct an embarassing bug (some macros were terminated with ";", shame shame)
added nls
added nls/3rdparty
added nls/3rdparty/icu
We officially welcome IBM's excellent ICU4C library for Unicode support to our humble source tree. May our marriage be long, happy and fertile.
added nls/3rdparty/icu4ros.rbuild
added nls/dll
added nls/dll/normaliz_redist
added nls/dll/normaliz_redist/normaliz.cpp
added nls/dll/normaliz_redist/normaliz.def
added nls/dll/normaliz_redist/normaliz_redist.rbuild
added nls/lib
added nls/lib/normalize
added nls/lib/normalize/normalize.cpp
added nls/lib/normalize/normalize.rbuild
added nls/nls.rbuild
modified ReactOS-generic.rbuild
Incomplete implementation of the redistributable normaliz.dll DLL for Unicode normalization, as a technical preview of what's to come from the use of ICU4C - namely, straightforward, painless implementation of complex algorithms and several megabytes worth of data, with a Win32-compatible interface on top. Currently disabled in the build until basic testing is over.
Watch this space for more of the same.
svn path=/trunk/; revision=33703
* Implemented correct behaviour in GetRealWindowClass(), but in reality just shifted the todo parts to NtUserGetClassName() instead.
svn path=/trunk/; revision=33689
- Sync the advapi32 crypt functions to Wine 1.0-rc2, this way we pass some more winetests.
Changes by myself:
- Implement SystemFunction036 (RtlGenRandom) as the Wine equivalent is based on /dev/urandom, so that it cannot be used.
Warning: This function uses the pseudo random number generator RtlRandom. It should better be implemented using a crypto-safe random number generator!
svn path=/trunk/; revision=33679
This code was writen by me and Daniel Zimmermann (netzimme at aim dot com) and it is base on wine version,
See issue #3266 for more details.
svn path=/trunk/; revision=33657
This fixes the "rebuild-everything-on-every-change" bug (at least for me)
For the record, this is broken since r32595.
Note: If you have building problems after this commit when building a single module, please try to revert only my changes from lines 1847 to 1850.
svn path=/trunk/; revision=33652
installers the depend on the USERPROFILE variable being present. Does
not fix the Word 2003 viewer install but changes the behavior slightly
and is more correct.
svn path=/trunk/; revision=33650
- Remove KiRosPrintAddress export from ntoskrnl_i386.def, and CcRos* apis too.
- Make win32k use KeRosDumpStackFrames instead of KiRosPrintAddress.
svn path=/trunk/; revision=33646
- define WMIAPI macro
- add TraceEvent, GetTraceLoogerHandler prototypes
- PEVENT_TRACE_HEADER should not be defined in the NDK
svn path=/trunk/; revision=33643
- Fix memory corruption that happened pretty much everytime you pressed a key or moved the mouse -- reponsible for countless crashes, including the famous ASSERT during 1-stage setup.
- Remove anti-memory-corruption-workaround from VFAT
- Note: If you're going to do use device queues in your driver, please learn how. Kthxbye.
Patch by Alex Ionescu <alex.ionescu@reactos.org>
_____
Alex,
Marry me,
KJK::Hyperion
XOXOXO
See issue #3116 for more details.
svn path=/trunk/; revision=33633
- Fix NtFlushVirtualMemory definition in PSDK.
- Fix NtFlushVirtualMemory's usage in kernel32.
- Fix FlushViewOfFile's prototype (DWORD -> SIZE_T, as it is in PlatformSDK).
- Add a C_ASSERT definition to winnt.h.
- Change a meaningless ASSERT to a C_ASSERT.
svn path=/trunk/; revision=33623
- Uncomment function declarations in psdk/imagehlp.h and thus make crypt32 use them to prevent stack corruption (it was generating implicit declarations warnings).
svn path=/trunk/; revision=33620
this will make allot ATI card working proper. thx again bear windows for the info and mail response which card need it, more info for this issue at http://www.bearwindows.boot-land.net/vbemp.htm#10
svn path=/trunk/; revision=33619
- remove Fireball's, ugly nasty hack.
- Fix debug output to show the right problem
- For all people who think the handle table might be messed up: add a function that validates the handle table integrity after a process is closed, when GDI_DEBUG is defined.
- fix the BaseObjects hHmgr field when converting an object to a stock object.
- move all GDI_DEBUG stuff into it's own file
See issue #2954 for more details.
svn path=/trunk/; revision=33618
- copy string the resulting strings on success but on failure
- fix 2 memory leaks in EnumDisplayMonitors
- fixes a user32_winetest error
svn path=/trunk/; revision=33612
- use WideCharToMultiByte instead of RtlUnicodeStringToAnsiString
- fix memory leak in GetClipboardFormatNameA
- ReactOS now passes all user32_winetest.exe clipboard test (previously 2 failures)
svn path=/trunk/; revision=33610
- Fix the commented out export in win32k.def and fix the definition for EngGetCurrentCodePage.
- Add RtlGetDefaultCodePage to NDK headers.
svn path=/trunk/; revision=33609
- GDI_TABLE_ENTRY ProcessId is a dword or int not a short.
- Notice also the pid for f5e, it's set GDI_OBJ_HMGR_NONE with pUser 0. Our DCE code handling pUser is right with that respect.
- Tested wine gdi32: dc gdiobj and user32: dce, all result same as before.
object list for DC type objects owned by ALL PIDs
I, handle, Lock, sCount, pid, pv, objt, unique, Flags, pUser, Tlock
--------------------------------------------------------------------------------------------
f4c, ca010f4c, 0, 0, d60, e2ebc2a0, DC, ca01, 0, 00f80570, 00f80570
f5e, 60010f5e, 0, 0, 80000012, e28ce008, DC, 6001, 4, 00000000, 00000000
f9d, b4010f9d, 0, 0, d60, e2ee6008, DC, b401, 0, 00350000, 00350000
svn path=/trunk/; revision=33605
- Export undocumented Win32k functions and add stubs for them (information about prototypes if from Alex). Also implement and export a couple of documented APIs, and a bunch of APIs we implement but did not export.
svn path=/trunk/; revision=33604
- Enabled installname attribute and removed hard coded output file name from *Iso module types. We can now use properties : ReactOS_$(arch).iso > ReactOS_i386.iso
svn path=/trunk/; revision=33603
- Made TechBot more configurable through .config files
- Code refactoring
- Removed automatic parameter parsing support to make everyone happy
svn path=/trunk/; revision=33586
- add the styles grayed and disabled in case they have not been added
- initialize allocated user buffer to zero
- allow support for bitmap items with MF_HELP style
- check result of WideCharToMultiByte
- always zero terminate a string buffer when enough space is available
svn path=/trunk/; revision=33578
Of course, ReactOS' cmd doesn't work at all with the framework at the moment :-)
Some tests were taken from "seta_test.cmd" by Royce. (see file headers)
svn path=/trunk/; revision=33560
-sync winetest to WINE-rc1
-add a rbuild file for winetest (not added to build yet)
note: minor winetest modifications should be made like loading tests from a folder at startup
svn path=/trunk/; revision=33556
note: All rbuild files in reactos\dll\keyboard must be updated to contain the follwing information:
<module name="kbdusl" type="keyboardlayout" (...) description="US Dvorak for left hand" lcid="00030409" layoutId="001A" layoutnameresid="5027" >
svn path=/trunk/; revision=33539
- Replace IsUserAdmin (Wine API) with IsUserAnAdmin (shell32 API)
When you now add the PROCESSOR_POWER_INFORMATION structure to "precomp.h" (which was "accidentally omitted from WinNT.h" according to MSDN..), sysdm.cpl can be compiled using MSVC and the MS PSDK headers.
svn path=/trunk/; revision=33530
- menu item is a separator when id, flags and string is zero (verified with MS Visual 2005)
- set item separator MF_GRAYED as default style
- rewrite CheckMenuRadioItem
- check if checkmarks applies to more than one submenu
- check if checkmark was set
- dont set checkmark on menu item separator
- recurse into sub menus when available
- implement handling by MF_BYPOSITION
- ReactOS now passes now all tests from test_CheckMenuRadioItem in user32_winetest
svn path=/trunk/; revision=33529
- Simplify blitting the screen bitmap to the main window.
This also hides a ROS GDI bug, for which I'm going to open a new bug report.
See issue #3241 for more details.
svn path=/trunk/; revision=33528
- Italian translations and various fixes to Magnify (fixes part of bug #3241 as well)
Changes by me:
- Shorten the german dialog string a bit, so that it won't be truncated. Strings for Static controls can only be 256 characters long.
A french translator should change the text as well, because it's longer than 256 characters.
See issue #3245 for more details.
svn path=/trunk/; revision=33513
- Now uses shell32 functions for loading the control panel applets, so that the mutex is used as well (see bug #781)
- Supports all built-in command-line parameters, which are supported by the WinXP version.
This also added support for opening shell folders.
- Loads other possible parameters from the registry.
- Only passes the command for RunControlPanel to each ListView item, not a whole struct whose members aren't needed later.
- Fixed memory leaks
- Added a header file
- Fixed indentation
This is the last version of the standalone Control Panel.
I will change it to call the Explorer shell folder in my next commit.
See issue #781 for more details.
svn path=/trunk/; revision=33507
- User name and passwords are NOT checked upon the creation of a new user account.
- Disable all unimplemented popup menu items.
svn path=/trunk/; revision=33505
This way, stuff like "notepad abc.txt " will correctly pass "abc.txt " as the filename like Windows does.
See issue #1818 for more details.
svn path=/trunk/; revision=33487
Changing the ASSERT, so that it doesn't spit out an "unused variable" warning on Release builds doesn't work, because then it expects this variable to exist. (which is not the case for some struct elements passed to ASSERT in some other parts of the kernel)
svn path=/trunk/; revision=33486
This makes us passing (at least) one more sub test of a Wine test (user32_winetest text)
Behaviour verified under Windows XP SP2.
svn path=/trunk/; revision=33484
* Fixed indentation in User32EnumWindows()
* Removed internal use of Set/GetLastError() from User32EnumWindows() - makes even more winetests pass
svn path=/trunk/; revision=33483
- Add the correct Visual Studio version to the .sln file header, so that the Visual Studio Version Selector does not get confused.
I slightly modified the patch to replace some following if's by else if's.
svn path=/trunk/; revision=33446
BugFix CreateBitmapIndirect, the code have been tested in reactos and windows, include abiword
1. the bmWidthBytes must be align with 2 and it must be 2 or higher like windows xp/2003 and msdn
2. Do not do direcly call to NtGdiCreateBitmap use CreateBitmap so we getting same behoir for 1x1 1Bpp bitmap.
3. This will also take care of handle leaks for bitmap that being create with height = 0, width = 0 and do not delete the object.
4. Windowss does not check if the incoming bitmap is NULL, this behoir to make it more compatible.
svn path=/trunk/; revision=33427
- Move a DEFAULT_BITMAP definiton from gdi32 into ntgdityp.h (not the best place, but could be moved to a better one later), and assign it a number 21, which it is on Windows XP (tested with a win32kntest framework, tests are committed).
- Fix CreateBitmap to return a 1x1 stock bitmap object if the requested Width and Height are 0.
- All of this work is based on Magnus Olsen's patches and Wine.
svn path=/trunk/; revision=33418
- Winesync of crypt32
The function import_certs_from_dir had to be killed, because it uses UNIX-only functions. (see "crypt32_ros.diff")
- This gets MSN Messenger a bit more to work
svn path=/trunk/; revision=33417
the private size of stackobject list contain 22 object, and we do not want mix up the private size and the user mode size for different version.
svn path=/trunk/; revision=33415
it works for any apps want it. and using this undoc value
testcase exists in w32knapi have been run in windows and reactos.
svn path=/trunk/; revision=33412
2. BugFix IntGdiCreateBitmap
1. Height can not be negative value
2. width can not be negative value
3. Planes or BitsPerPixel can not be biger that 32Bpp
4. BitsPerPixel can not be 0
5. width size is max 0x7FFFFFFF hex
svn path=/trunk/; revision=33403
Bug 3228: Update for few slovak RCs by Mario Kacmar (kario@szm.sk)
Some fixes and translation updates for winhelp and wordpad synched from wine
Netherland Translation for charmap from Wouter Thierens
svn path=/trunk/; revision=33392
Changing everything internally to TCHAR would be like rewriting the app, because regedit even hardcodes string sizes in bytes and then memcmp's them... (see regproc.c:234)
Compiling it ANSI-only also doesn't work, because the API's for ACL stuff are Unicode-only.
svn path=/trunk/; revision=33382
- Bugfix: Previously macros like "gotoroot=cd \" weren't passed correctly as we just used argv[1].
Now use GetCommandLine and pass the full command line.
- Fix indentation
svn path=/trunk/; revision=33379
Also remove the USE_W32API define, which was done for many other modules in the past.
Finally, fix the indentation of the rbuild file :)
svn path=/trunk/; revision=33370
- Only increment VideoPortDeviceNumber, when IntVideoPortCreateAdapterDeviceObject and IntVideoPortFindAdapter succeeded.
This fixes loading the CL54xx miniport driver. But it still isn't usable, because win32k cannot find the DDI driver for it.
svn path=/trunk/; revision=33357
* Renamed an internal D3D9 struct variable
* Re-implemented IDirect3DDevice9::GetAvailableTextureMem(), hopefully more correct this time around
svn path=/trunk/; revision=33347
- made more and more easily extensible:
* commands automatically loaded from plugins dlls
* declarative and automatic command parameter parsing
* common code moved to base classes
- other fixes
svn path=/trunk/; revision=33344
This should prevent Explorer to disappear when user doesn't want to download the Mozilla ActiveX control.
See issue #3126 for more details.
svn path=/trunk/; revision=33306
patch from Stefan Ginsberg stefan__100__at hotmail dot com
it remove the bad macro DXG_GET_INDEX_FUNCTION that never worked as it should.
svn path=/trunk/; revision=33305
Bug 3204: Bulgarian translations for ReactOS by Станев (sstpr@narod.ru)
Bug 3210: Fix italian mistakes into CPL by Carlo Bramini (carlo.bramix@libero.it)
Small fixes By Olaf Siejka.
Sync Winhelp and Wordpad to Code frozen Wine.
svn path=/trunk/; revision=33292
- As for other changes in 33274: removed accidentally committed DPRINT1s by Magnus, removed unneeded DisplayNumber zero-init, because it's always initialized by a call to GetDisplayNumberFromDeviceName().
svn path=/trunk/; revision=33290
- use dxdiag parent window for dialogs which have pushbuttons
- restore window size after finishing DirectDraw tests
- use wsprintfW over swprintf- cut off build info from version string
svn path=/trunk/; revision=33269
* Moved IDirect3D9 specific helper functions from generic helpers to implementation file
* Renamed a couple of internal D3D9 structs
svn path=/trunk/; revision=33263
1. Remove the hack in ddraw.c that only allown one edd_directdraw_global it been move to dc.c for it is each drv that need alloc this space.
2. Remove we do not trying loading dxg.sys twice.
3. Remove we do not try enable the dx interface when it is already enable, better check for it is need it later.
svn path=/trunk/; revision=33242
- Load SHInvokeDefaultCommand when required to avoid msvc linker dependencies
- explorer_new now builds and links with msvc9, although it'll crash if you try to run it at the moment. Investigation needed.
svn path=/trunk/; revision=33234
we need the graphic drv DeviceObject be sent in, it is known as PDev->hSpooler in windows
reactos win32k does not set it up yet so we using reactos version of it
it call PDev->VideoFileObject->DeviceObject.
svn path=/trunk/; revision=33225
- Fix some minor translation errors in the german translation and adjust the size of the elements of some control panel applets.
See issue #3211 for more details.
svn path=/trunk/; revision=33224
Cleanup : intEnableReactXDriver it contain less code now. for most of the work are done by dxg.sys.
now ms dxg.sys fill the edd_directdraw_gloabl struct by it self.
svn path=/trunk/; revision=33221
Fixed DRIVER_BuildDDIFunctions it now setup all api from the drv to DRIVER_FUNCTIONS struct. it is update to windows 2003, we can now use all hw acc api that exists in the drv.
we do not doing that yet.
svn path=/trunk/; revision=33217
- Seperators with MENUEX now need the full definition (although the docs don't say this yet)
- explorer_new now builds with msvc9. Doesn't link yet though...
svn path=/trunk/; revision=33213
Updated German USETUP Translation.
To Translators: kbswitch is open for translations now in my eyes. DXDiag maybe too. Ask Johannes Anderwald about it
svn path=/trunk/; revision=33211
- Add IInitializeObject and IBanneredBar COM interfaces. Manually add the members, which is a bit of a hack. We need to fix DECLARE_INTERFACE_IID_ to pre-register interfaces
- explorer_new no longer has redefinition errors when attempting to build with msvc9
svn path=/trunk/; revision=33209
it was not the drv hPDev that was the frist param it was hdev aka pDC->pPDev
now we see value getting fill in to edd_DdirectDraw_Global from pfnDdEnableDirectDraw fucntion in ms dxg.sys
svn path=/trunk/; revision=33206
- Added a stub for untfs.dll
- Added the support of untfs.dll to autochk.exe (and a bit reviewed code when loading provider)
That way, autochk won't complain anymore... And it creates places to work!
svn path=/trunk/; revision=33199
- enumerate all available display / sound adapters dynamically at start (does not work yet)
- rewrite TabCtrl_OnSelChange to reflect changes
svn path=/trunk/; revision=33188
Fixed : some comment
Add DD_MISCELLANEOUS2CALLBACKS so it works now with ms dxg.sys from user mode with callbacks.
it mean follow api from the gf card drv should work now with syscall to win32k from user mode
NtGdiDdAlphaBlt, NtGdiDdCreateSurfaceEx, NtGdiDdGetDriverState, NtGdiDdDestroyDDLocal
svn path=/trunk/; revision=33167
that mean driver api DestroyDriver, CreateSurface, SetColorKey, SetMode, WaitForVerticalBlank, CanCreateSurface, CreatePalette, GetScanLine, MapMemory works inside ms dxg.sys now
test of that is NtGdiDdCreateSurface, NtGdiDdSetColorKey, NtGdiDdWaitForVerticalBlank, NtGdiDdCanCreateSurface, NtGdiDdCreatePalette, NtGdiDdGetScanLine
works and show prof it being call to the drv. that mean we got the graphic card api working now. It still exists bugs. Long live our ReactX that showing frist life sign with ms dxg.sys inside vmware and thuse api working. But it is not egunt getting a dx apps working yet.
svn path=/trunk/; revision=33156
- Canadian French (Legacy)
- Canadian Multilingual Standard
- Dutch
- Estonian
- Georgian
- Latvian
- Macedonian (FYRO)
svn path=/trunk/; revision=33154
lefttodo fix correct positions of everything in the edd_directdraw_global amd fill in the driver phdev correct in that struct as well.
Hacked : NtGdiDdGetScanLine for now, it crash when it being call again.
svn path=/trunk/; revision=33153
Add : more debug data for ReactX it is need it to fill all edd_ struct right, allot of the debug functions will go away after we got up stable interface.
BugFix : EDD_DIRECTDRAW_LOCAL the struct did miss one member.
svn path=/trunk/; revision=33152
Bugfix PEDD_DIRECTDRAW_LOCAL define
add allot debug data at NtGdiDdQueryDirectDrawObject we are here now, prepare activate the whole graphic driver directx interface.
we will add back some older code of the old desgin of the directx interface, for we need init the graphic card directx interface
it is not done by dxg.sys, it is done by win32k and dxg.sys using the cached data from win32k. rember it is cached for each drv.
but we will only support one graphic drv for dx for now, when the code comes alive again.
svn path=/trunk/; revision=33151
fixed : remove few hacks I did and reactivate some api I did take offline.
the struct EDD_DIRECTDRAW_LOCAL from yuah gdi book does not match windows xp, I have verify some member for windows xp.
the struct EDD_DIRECTDRAW_GLOBAL from yuah gdi book does not match windows xp, I have verify some member for windows xp.
and add two new member so hPDEV get in right place.
svn path=/trunk/; revision=33147
- Reformat MDL implementation (mdlsup.c) to make it readable, and add comments.
- Add a couple dozen assertions to validate that MDL flags, state and addresses.
- Use ADDRESS_AND_SIZE_TO_SPAN_PAGES macro for nice MDL calculations.
- Set Mdl->Process only when required, and set/unset various MDL flags which were being ignored/incorrectly manipulated.
- Keep track of Process->NumberOfLockedPages during MDL lock/unlock.
- Don't return the base address of the MDL allocation when mapping locked pages - MDLs have a byte offset which was being ignored.
- Fix incorrect usage of MDLs found in the kernel (thanks to the new assertions).
- Split kernel vs. user mode MDL requests in a much more organized and optimized fashion.
- Fix a number of smaller bugs throughout the code.
svn path=/trunk/; revision=33139
- Reformat and cleanup the entire file, deprecate NtVirtualLock/Unlock which didn't really work (and aren't really required for any apps for now)
- Major perf optimizations to NtRead/VirtualMemory: Use pool memory transfer when more efficient than MDL, and use local stack buffer when size permits.
- This patch provides up to 109% improvement (more than twice as fast) in certain virtual memory operations.
- Thanks to Alex for researching this issue, and providing the internal information on the various optimizations and behaviors the NT implementation uses.
svn path=/trunk/; revision=33133
- Revert some changes from r33106:
* Set the size of szTempLCID back to CCH_LAYOUT_ID + 1, a layout ID mustn't be longer than this.
As we pass the correct size to the Registry functions as well, there can be no buffer overflow.
MAX_PATH was probably used here, because input.dll had a bug as well, so that it saved the layout ID with the wrong length.
* Use wsprintf over _stprintf
* Pass the correct value to dwBufLen (in bytes, not in TCHAR's!)
- Add back SystemParametersInfo, so that the system gets to know about the keyboard layout change.
EnumWindows is still used for setting the new keyboard layout to all existing Windows.
- Don't show a different menu for left and right clicks, that's not how most popup menus work under Windows.
Instead append all menu items from the menu template to the popup menu.
- Call SetForegroundWindow before and post a WM_NULL message after calling TrackPopupMenu, so that the popup menu will be closed, when the user clicks somewhere else
- Fix indentation
input.dll:
- Fix some incorrect lengths passed to other functions
- Get rid of some unneeded variables
- Always use the 32-bit Registry functions over the old 16-bit deprecated ones
- Fix some other stuff here and there
svn path=/trunk/; revision=33130
- load treeview classes on startup
- link to dinput8 + dxguid library
- start implementing DirectInput dialog
- use DirectInput version 8 for now
svn path=/trunk/; revision=33121
C_ASSERT is equivalent to a typedef, NOT a variable declaration
modified ntoskrnl/mm/pe.c
Convert as many ASSERTs as possible to C_ASSERT
svn path=/trunk/; revision=33117
- CDFS should enter a critical region before acquiring a resource.
- "Fix" resource assert during installation by adding some padding at the end of the VFAT FCB header -- corruption happens at pad 51.
- Once we detect corruption at pad 51, skip the FCB instead of attempting to flush it.
- Fix a serious bug in our detection of incorrect resource usage while APCs are not disabled.
- Fix a serious bug which caused shared resources not to wake up waiters when it was released, and which cause it to wake up waiters when there were still active locks held.
New ERESOURCE implementation by Aleksey (thanks to Alex for providing the information required)
- Remove ERESOURCE_XP concept, and fix the three incorrect and different definitions of the ERESOURCE structure.
- Fix the ERESOURCE implementation to use the new Vista ERESOURCE type. Two main changes:
* The count is now a 32-bit count called ActiveEntries. ActiveCount is now simply a flip-flop bit (0/1) for backward compatibility (we set to 0 when active entries is 0, and 1 when active entries is > 0)
* Instead of caching two owners, we only cache one owner, in the OwnerEntry field.
- Optimize some search algorithms slightly (just better code).
- Remove duplicated code for ExReleaseResourceLite and call ExReleaseResourceForThreadLite instead. Alex says this is ok.
svn path=/trunk/; revision=33111
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.