- Add sanity checks
- Acquire device entry lock before dealing with device entries
- Fix acquiring bus device extension for parent bus device object
- Store result in irp io status block
- get install interface from assoicated system buffer
- Fixes install of new audio devices with ros ks in windows
- Tested with VBOX 3.2.10+WINXP+SP3
svn path=/branches/audio-bringup/; revision=50104
- Partly implement IKsProcessingObject interface, which will be used to handle ks filter-centric based filters
- Fix broken check, which failed to construct filters, which dont have a FILTER_DISPATCH associated
- Add check which fails create requests, when the filter doesnot allow user mode access (i.e. echo cancelation filter)
- register ks worker to dispatch processing requests to the IKsProcessingObject
- Implement KsFilterAttemptProcessing, KsFilterGetAndGate
svn path=/branches/audio-bringup/; revision=50097
- Move irp completion to CompleteRequest function for debugging of multiple irp completion bugs
- Remove bugs asserts in IKsDevice_PnpStartDevice
- Set device to started when the device does not need pnp notification
- Don't complete the irp in IKsDevice_Create, the driver has already done this
- Comment out UNIMPLEMENTED macro in KsFilterAttemptProcessing
- Fix check in FindMatchingCreateItem
- Don't set DO_DIRECT_IO flags on PDO devices
- Set DO_DEVICE_INITIALIZING flag on PDO device
- Construct device name with swprintf
- Add check if the device entry has already been constructed
- Zero device capabilities
- Implement bus watchdog routine. The routine checks if pdo has successfully been started, otherwise the pdo is marked invalid and the deleted and then constructed again. If the pdo has been started, all pending irp requests are completed with STATUS_REPARSE. (This is probably not supported by Ros kernel yet)
- Acquire device entry list lock when working with device entries
- Always store status code in irp for all Ks bus api routines
- Handle IRP_MN_REMOVE_DEVICE
- Start watchdog timer when IRP_MN_START_DEVICE is received
- Ros KS nos successfully initializes and all audio devices appear in VBOX+WinXP+SP3. Playback not yet working (Needs KsAttemptFilterProcessing for splitter and friends)
- TODO: enhance time out to make audio system initialize faster
svn path=/branches/audio-bringup/; revision=50079
- Move software bus functions into swenum.c
- Add missing #undef INTERFACE in ksiface.h
- Partly implement KsRemoveBusEnumInterface
- Implement KsServiceBusEnumPnpRequest, KsServiceBusEnumCreateRequest, KsIsBusEnumChildDevice, KsInstallBusEnumInterface, KsGetBusEnumPnpDeviceObject, KsCreateBusEnumObject, KsGetBusEnumParentFDOFromChildPDO, KsGetBusEnumIdentifier
- KS now supports the software bus driver
- As a side effect, ks.sys now fully works in Windows XP
- Tested with VBox+WINXP SP3+
svn path=/branches/audio-bringup/; revision=50067
- Fix several bugs in SwDispatchPnp routine
- Routine did not complete requests, when KsServiceBusEnumPnpRequest successfully handled the request
- Software bus driver did not handle resource lists irps
- Software bus driver did not support querying pnp device state
- Software bus driver leaked the irp for IOCTL_SWENUM_GET_BUS_ID requests in SwDispatchDeviceControl
- Software bus driver is now successfully initializes in XP and audio devices are present
svn path=/branches/audio-bringup/; revision=50035
- Fix 2 bugs in KsCreateBusEnumObject. It didnt store the allocated device extension and it didnt store the PnpDeviceObject when it was provided by the caller
- Implement KsGetBusEnumIdentifier, KsGetBusEnumPnpDeviceObject
svn path=/branches/audio-bringup/; revision=50012
- Implement a timeout handler, which detects whether the audio thread has hung. The code has not yet been activated
- Remove unused members
svn path=/branches/audio-bringup/; revision=50001
- Implement WdmAudResetStreamByMMixer, StopStreamingInSoundThread
- WIDM_RESET / WODM_RESET are now implemented
- Skipping now audio bytes (i.e. jumping to different audio position) now properly works and no longer causes a hang under certain conditions
svn path=/branches/audio-bringup/; revision=49997
- Respect channel count which defines if the control acts uniform or per channel
- Fix bug in MMixerSetGetMuxControlDetails
svn path=/branches/audio-bringup/; revision=49993
- Implement MixerEvent callback in wdmaud.drv
- Comment out assert which is hit in VmWare
- Implement full support mux controls
svn path=/branches/audio-bringup/; revision=49990
- Implement registering source / destination lines + controls of alternative mixers
- Implement support function for retrieving mixer by name
svn path=/branches/audio-bringup/; revision=49970
- Fix error message when mmixer library has failed to initialize
- Remove device handle from MIXER_INFO as a mixer can span over more than one device (i.e. mixer, wave)
- Add device handle to mixer control struct
- Store mixer controls in list than in array. Will later be used to add hacks (i.e wave line must have volume controls etc)
- Add reserved member to topology pin struct and mark used pins as reserved. It is then used to add alternative mixers destination lines
svn path=/branches/audio-bringup/; revision=49967
- Implement support for retrieving mux mixer controls
- Implement support for on/off controls
- Store logical pins for nodes connecting to another nodes. Currently not yet used
svn path=/branches/audio-bringup/; revision=49965
- Properly determine the component type and target type of source lines
- Correctly set dwDestination / target type / component member for source lines
svn path=/branches/audio-bringup/; revision=49955
- Fix line ids of source lines
- Fix calculating line id of source lines
- MS sndvol32 is still crashing in user32
svn path=/branches/audio-bringup/; revision=49951
- More fixes for mmixer library
- Store destination lines sharing the same mixer object in the same object
- Fix generating destination lines id / soure lines
- Add mux node for input mixers
- Disable code which checked if the topology node has already been reserved for an another line. Tests in WinXP concluded that ms does not do this at all, though documentation claims it
- Add source line to the correct destination line
- Fix a memory leak
- Fix tons of bugs in MMixerGetLineInfo
svn path=/branches/audio-bringup/; revision=49949
- Pass audio device id to wdmaud.drv callback functions
- Extend VALIDATE_MMSYS_PARAMETER macro
- Handle case when the caller does not pass handle of mixer, but a device id
- Pass device id to mmixer library
- Remove dead code
- MS sndvol32.exe now gets further, but crashes in user32 IntCallMessageProc
svn path=/branches/audio-bringup/; revision=49931
- Check if library has already been initialized
- Remove function macro for legacy (wdmaud.sys connection)
svn path=/branches/audio-bringup/; revision=49919
- Enable mmixer library in wdmaud.drv
- Delete unused code
- Don't call wave streaming handler again from the io completion callback. As this will sooner or later will cause crash because the stack got eaten
- Create a thread for each io packet and handle the completion callback within it.
- Audio packets are now directly routed from winmm -> wdmaud.drv -> portcls instead of winmm -> wdmaud.drv -> wdmaud.sys -> sysaudio.sys -> kmixer.sys -> portcls.sys
- Needs more testing & fine tuning, to fixup audio glitches
svn path=/branches/audio-bringup/; revision=49910
patch by Samuel Serapion:
Implement MemorySectionName case for NtQueryVirtualMemory. Protect buffer access with SEH.
See issue #5753 for more details.
svn path=/trunk/; revision=49898
- Port findstr (incomplete, as author of this patch states, it may satisfy RosBE, .c .h and .rc files) from FreeDOS project. Needed for RosBE-on-ReactOS support.
See issue #5724 for more details.
svn path=/trunk/; revision=49875
- Carlo Bramix: MultiByteToWideChar() has just 6 and not 8 parameters, probably it's a forgetten copy/past from WideCharToMultiByte().
- Carlo Bramix: ConvertULargeInteger() should have its parameter 'Len' declared as UINT rather than 'INT'. This fixes a signed/unsigned mismatch warning.
See issue #5678 for more details.
svn path=/trunk/; revision=49873
- Jerome Gardou: Almost all of the ddraw->refcount winetests pass. One remains, due to the fact that IdirectDrawSurface::SetPalette is unimplemented. IDirectDraw::Createpalette is implemented too, but needs testing. There are no parameter checks.
- Comments from me: The patch is not build-tested, however I did my best to merge it to existing ddraw and I prefer the actual code to be in the repository rather than hanging in bugzilla for years (last comment to the patch is dated 29.10.2009).
See issue #4909 for more details.
svn path=/trunk/; revision=49872
- Conditionally enable heap-related debugging and validation checks by an MM_DBG define for all architectures. Inspired by 49744.
svn path=/trunk/; revision=49792
[NTOS]: Fix up ARM code to match recent ARM3 changes.
[NTOS]: Do not use initguid inside every single file to zillionplicate the GUIDs! Why doesn't the x86 linker catch this?!!?
[ARMDDK]: Define some spinlock functions.
svn path=/trunk/; revision=49780
That's not because ARM will rule the world on a day that you're obliged to break x86 build.
Fixed build. Will it work? Only God knows.
svn path=/trunk/; revision=49779
[CONFIG]: Add new property settings that exist in x86, but not ARM because nobody added them there. For example, nor cc, nor cache were being built on ARM, because NEWCC was undefined (which isn't treated as 0 by rbuild).
How I long for CMAKE.
svn path=/trunk/; revision=49777
[NTOS]: Fix a couple more unportable directly "Hard" PTE field accesses, instead of using portable MI macros.
[NTOS]: Cleanup some of the pool code that had really messed up PDE vs PTE.
[NTOS]: Define the number of page directoty levels for ARM.
[NTOS]: Comment out some ARM3 code that won't be needed now that most of the x86 code is in C.
Fixes all but one build error.
svn path=/trunk/; revision=49774
- Added real implementation of SetLastError() (instead of forwarding to NTDLL)
- Implemented BaseSetLastNTError()
- Renamed Basep8BitStringToCachedUnicodeString() to Basep8BitStringToStaticUnicodeString() and sightly changed its implementation
- Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes
This is matching w2k3 implementation. This is of course a WIP.
svn path=/trunk/; revision=49761
- Implemented FsRtlPTeardownPerFileObjectContexts(), FsRtlLookupPerFileObjectContext(), FsRtlInsertPerFileObjectContext(), FsRtlRemovePerFileObjectContext()
- Stubplemented IoGetFileObjectFilterContext(), IoChangeFileObjectFilterContext()
- Add support of per file object filter context to IopDeleteFile()
As ReactOS doesn't support file objects extensions, this doesn't work (blame Aleksey) - yet
svn path=/trunk/; revision=49758
[FREELDR]: Done originally for ARM, but I think x86 will appreciate the benefit too (and x86 can now go ahead and disable all those ridiculous debug settings that are turned on by default in bheap.c).
svn path=/trunk/; revision=49756
[ARMLLB]: Implement ZOOM2 ARMLLB board support package. TWL4030 read/write implemented (through basic I2C on the HS interface), RTC and Keypad Matrix implemented (through TWL4030), NEC WVGA Panel Initialization (through basic SPI interface on the MBPSI), basic clock setup and GPIO access for DSS/DISPC, setup DSS/DISPC for output on the NEC panel. UART implemented through Quad-UART NS16550 compatible chip (using CPORTlib).
[ARMLLB]: Requires having been booted through x-loader+uboot as a kernel image. Will work on directly booting from NAND later.
svn path=/trunk/; revision=49743
[ARMLLB]: Likewise, not all platforms have a PS/2 controller like the Versatile. ZOOM2 for example has a keypad, so the generic "input" file shouldn't assume keyboard-only. As such, most of the code there should also be made specific, but for now, use an ifdef.
svn path=/trunk/; revision=49741
[ARMLLB]: Include ReactOS's standard debug.h, which lets us un-redefine DbgPrint, and also gives us goodies like ASSERT and DPRINT1.
svn path=/trunk/; revision=49740
[ARMLLB]: Fix support of ATAG_MEM: there can be multiple tags, one per DRAM bank.
[ARMLLB]: Fix the default case not to "return": it should "Break" instead.
[ARMLLB]: Only apply the RAMDisk hack on Beagle for now.
svn path=/trunk/; revision=49735
[NTOS]: Fix MiDetermineUserGlobalPteMask to account ARM, where the PDE and PTE formats are different.
[NTOS]: Fix MiDetermineUserGlobalPteMask to use portable PTE macros instead of hard-coding x86-only fields.
svn path=/trunk/; revision=49728
Partly sync windef.h with mingw-w64 and add specstrings.h
reverts the previous revert, fixed definition of NULL to __null in stddef.h
svn path=/trunk/; revision=49722
- Implemented FsRtlLookupPerStreamContextInternal(), FsRtlInsertPerStreamContext(), FsRtlRemovePerStreamContext(), FsRtlTeardownPerStreamContexts()
Based on my previous work on pierre-fsd branch.
svn path=/trunk/; revision=49716
- Renamed MmIsFileAPagingFile() to MmIsFileObjectAPagingFile() its appropriated name
- Added it to internal headers
- Implemented FsRtlIsPagingFile()
svn path=/trunk/; revision=49712
- Add missing PAGED_CODE() where needed
- Removed a wrong ASSERT in FsRtlIsNameInExpressionPrivate() and replace it by the right one
- Mark FsRtlIsDbcsInExpression() as halfplemented
svn path=/trunk/; revision=49711
- Fix one of the greatest hacks in message handling: do not wake up every message queue when there is mouse or keyboard input ( wake only the thread that must take input)
- rewrite co_WinPosWindowFromPoint, co_MsqInsertMouseMessage and co_MsqPeekHardwareMessage
- port co_IntProcessMouseMessage and MsqSendParentNotify from wine
- call co_IntProcessHardwareMessage from co_MsqPeekHardwareMessage, and not from co_IntPeekMessage
- move co_IntProcessHardwareMessage, co_IntProcessKeyboardMessage and co_IntProcessMouseMessage to msgqueue.c
svn path=/trunk/; revision=49710
Previously, in ReactOS' stories:
ReactOS was broken since more a hundred of commits when two devs decided it was enough. One (we will name him Timo) fixed the context switch. The second, with the help of a third dev (Pierre & Hervé) decided to run tests by disabling some stuff (ie INIT_FUNCTION). This magically made testbot going back to life.
But, some complains came from the ML, so trying to appease world, Pierre decided to revert half of his changes, thinking this would be OK.
~~
Now, after a night. It appears that half revert was a pretty bad idea. Testbot keeps being broken.
So, this commit reverts r49665 (which was half reverting r49662). That way, testbot should be back, able to run tests. BUT, due to a NPFS issue, some tests are broken. Eric has been nicely mailed about that issue, with an idea of fix (thanks go here to Aleksey).
~~
For those who like that, drama to follow on ML.
I turn into being S/M...
svn path=/trunk/; revision=49691
[HAL]
Disable INIT_FUNCTION to see whether it's responsible for Qemu broken status. Some are complaining of unworking trunk since r49463.
This will be reverted after tests.
svn path=/trunk/; revision=49662
- Implement client thread information for the beginning of QS flag support and signaling synchronization of messages.
- Set and clear idle event when setting clearing masks. This fixed the idle foreground hook call from user mode.
- Fixed wine ListBox and ReactOS ComboBox tests. Critical note: SendMessageA/W, when IsThreadHooked is used and any global hooks are affirmed, all messages are sent to Win32k and the result is, A to W and W to A mismatch via UMToKM. Fixing Global hook support exposed a critical bug in ReactOS message system. Enable the appropriate hooks will temporarily remedy this bug.
- All patches are from a checked out revision from 49475. Upping ntuser.h, win32k and user32 to sync.
svn path=/trunk/; revision=49653
- Rename DEVICE_EXTENSION to NPFS_VCB.
- Add a type variable to distinguish FCBs and CCBs for device, directory or pipe.
- Attach an FCB to the VCB that represents the root directory of the file system and implement an open routine for the root directory.
- Make NpfsWaitPipe work when it is called for the root directory.
[KERNEL32]
- Remove the old version of WaitNamedPipeW.
This patch fixes the broken wait pipe code. It was written and tested on r49458 because later revisions do not work for me.
svn path=/trunk/; revision=49646
- Initialize the Zero variable
- Don't corrupt the Color value in case we didn't have any page on MmZeroedPageListHead.
- Fixes boot.
svn path=/trunk/; revision=49614
- Fixed WaitForInputIdle, finally!, passed all the wine tests for it.
- Moved Get/Peek message to the new all in one support routine.
- Foreground hook hits one out of five, this needs more research.
- Attempted to workout synchronizing issues with low level and regular hooks.
svn path=/trunk/; revision=49579
Convert most of the trap and blue screen code from asm to C, use KTRAP_FRAME and KSPECIAL_REGISTERS on the stack, instead of using a bunch of global variables. Convert multiply used asm code chunks into macros. Use intel syntax for remaining asm.
135 lines of C + 178 lines of asm, instead of 942 lines of asm
svn path=/trunk/; revision=49573
MiCowSectionPage to always assume CoW rather than always not
CoW for cache sections.
Make sure we're looking for cache type sections rather than
(as we were in the branch) data file sections. More needed.
svn path=/trunk/; revision=49555
[NTOS]: Assign the working set list address, system-wide, but per-process (in hyperspace).
[NTOS]: Give every process its working set page, and store it. Build a bogus working set list (MMWSL).
[NTOS]: Use the process working set list (MMWSL) to track page table references during faults, just as Windows does.
[NTOS]: Correctly initialize the colored page list heads and assert their validity.
svn path=/trunk/; revision=49525
In streamout(): fix a number of formatting bugs, round floats, fix issue with large unsigned values that were treated as signed, simplify some code.
svn path=/trunk/; revision=49516
New implementation of all printf functions. It's stream based (like MS one is) rather than buffer based (like our old is). Floating point is not 100% finished, but current implementation is good enough to boot. It can be enabled by a config switch.
svn path=/trunk/; revision=49499
- This hook commit fixes the ros regression testing startup, but consider this a hax fix until more research in Global hooks has completed. More pointed Global hook tests are needed. Misc changes, removed unused storage pointers and reordering. For DosBOX, the mouse low level is now working and the keyboard low level should not be so intermittent as before, now sending messages from system desktop not from thread desktop, see bug 5670 for more details.
svn path=/trunk/; revision=49472
Adam Kachwalla <geekdundee@gmail.com>
- "Load Hive..." and "Unload Hive..." menu items implemented
- Make address bar case-insensitive
- Remove trailing slashes in address bar when at root keys (e.g. "HKEY_LOCAL_MACHINE\" or "HKEY_CURRENT_USER\")
- Address "go" button added
- Removed ~8px slack from bottom of the app (not needed and looks better)
- Factored out error displaying functions into error.c file.
See issue #5711 for more details.
svn path=/trunk/; revision=49465
Print delphi exception with the Exception code 0xeedfade, we were previously only checking for 0xeedface, maybe an older value.
svn path=/trunk/; revision=49464
- Fix several bugs in KsProbeStreamIrp
- If requestor is KernelMode - just save a pointer in Irp->AssociatedIrp.SystemBuffer (currently not used)
- If requestor is UserMode mark irp as buffered. Also set Flag IRP_INPUT_OPERATION when the ioctl is IOCTL_KS_READ_STREAM. This is important to propagate modifications to KSSTREAM_HEADERS (in particular DataUsed member)
- ReactOS KS can now be used in WinXP in combination with KSStudio. In order to make it fully work, ks needs to implement software bus functions
[PORTCLS]
- Rewrite internal irp queue handling
- It now supports multiple KSSTREAM_HEADERs per Irp, variable sized KSSTREAM_HEADERs per irp.
- Store the mapped virtual address not in the KSSTREAM_HEADER, as user programs will receive then invalid addresses
- Add checks whether this irp is for an sink pin or source pin
- Fix multiple bugs when the pin is looped buffer mode (How did this work before?)
- ReactOS portcls + WinXP now properly works with audio recording
[WDMAUD_KERNEL]
- Don't free associated stream header anymore
- Tested with VBox 3.2.10 + VmWare Player 3.1.2 + WinXP
svn path=/trunk/; revision=49457
Change all Init functions to be NTAPI instead of FASTCALL, return NTSTATUS, and be an INIT_FUNCTION (saving incredible 2k). Simplify the initialization sequence by using a simple macro. Delete a comment that is not true anymore.
Move some globals to appropriate file.
svn path=/trunk/; revision=49455
[NTOS]: This will save ~280KB of RAM once we dump INIT from RAM in a future patch.
[NTOS]: Display current free RAM at certain checkpoints.
svn path=/trunk/; revision=49445
- Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class
- Return correct error code in ksuser's KsCreatePin
- ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working
- All changes except ksuser change has been verified to work with VBox 3.2.10
- KS user changes not tested yet as KSStudio not working in trunk
svn path=/trunk/; revision=49428
The cache manager rewrite I started years ago has finally appeared in
ReactOS' trunk and although at this point it's not quite perfectly
integrated, it's enough to boot up the bootcd or livecd. To check out
the more mature original, check out arty-newcc-reactos, branch
arty-newcc on bitbucket.org . Amine Khaldi encouraged me quite a bit
to not give up on it, and was able to reach out and be an advocate
when i really wasn't able to. Others agree that the time has come to
begin removing the old cache manager. I expect the remaining problems
in the version going to trunk will be taken care of relatively
quickly.
The motivation for this effort lies in the particularly hairy
relationship between ReactOS' cache manager and data sections. This
code completely removes page sharing between cache manager and section
and reimagines cache manager as being a facility layered on the memory
manager, not really caring about individual pages, but simply managing
data section objects where caching might occur.
It took me about 2 years to do the first pass of this rewrite and most
of this year to fix some lingering issues, properly implement demand
paging in ReactOS (code which didn't come with this patch in a
recognizable form), and finish getting the PrivateCacheMap and
SharedCacheMap relationship correct.
Currently, the new ntoskrnl/cache directory contains an own
implementation of data file sections. After things have settled down,
we can begin to deprecate and remove the parts of ReactOS' section
implementation that depend on a close relationship with cache
manager. Eventually, I think that the extra code added to
ntoskrnl/cache/section will be removed and ReactOS' own sections will
replace the use of the special MM_CACHE_SECTION_SEGMENT in the cache
path.
Note also, that this makes all cache manager (and new section parts)
use wide file offsets. If my section code were to take over other
parts of the ReactOS memory manager, they would also benefit from
these improvements.
I invite anyone who wants to to peek at this code and fix whatever
bugs can be found.
svn path=/trunk/; revision=49423
- Portcls does not need to set the size of the audio buffer for completed irps. This is done in a completion callback in wdmaud. Verified with WinXP portcls
[WDMAUD_KERNEL]
- Free allocated mdls in the io completion routine. Also free the associated stream header.
[KS]
- Replace all ms portcls hacks by one.
- MS Portcls is now working in ReactOS (which is nice for testing audio related bugs)
svn path=/trunk/; revision=49417
- Add dmusprop header
- Add IMP_PowerNotify macro to portcls.h
- Add IID_IMusicTechnology guid to portcls.h
- Add GTI_XXX macros to portcls.h
- Remove broken definitions of KSPROPSETID_Synth, KSPROPSETID_Synth_Dls. They are defined in dmusprop.h
- Add KSDATARANGE_MUSIC to ksmedia.h
- Add KSMUSIC_TECHNOLOGY, KSDATAFORMAT_SUBTYPE_MIDI_BUS, KSAUDFNAME_MIDI, KSNODETYPE_SYNTHESIZER to ksmedia.h
svn path=/trunk/; revision=49388
- Enumerate MIDI devices and provide all necessary functions to deal with them
[WDMAUD_KERNEL]
- Implement support functions which call the provided functions of mmixer library
- Fix a bug in device interface request ioctl handler
- Midi devices should now be visible, capabilities be retrieved and opened / close
- Writing data is not yet supported
svn path=/trunk/; revision=49376
Fix a bug in InitVideo: when looping through the adapters, reinitialize the cbValue before querying the registry.
Also handle failure.
svn path=/trunk/; revision=49360
- Do not leak KSSTREAM_HEADER (48 bytes) for each IOCTL_KS_WRITE_STREAM / IOCTL_KS_READ_STREAM request
- Audio stack should now leak less memory
svn path=/trunk/; revision=49356
Improve the code to enumerate monitors.
- Don't use custom MIN / MAX / ABS macros
- Calculate distance by r^2 = x^2 + y^2
- Use RECTL_bIntersectRect instead of code duplication
- Fix possible NULL pointer dereference
- pass bottom-right exclusive rect to IntGetMonitorsFromRect from NtUserMonitorFromPoint
- Don't handle MONITOR_DEFAULTTOPRIMARY and MONITOR_DEFAULTTONEAREST twice
- Use unsigned variables for unsigned values
- Don't check the result of a UINT returning function for < 0
- Improve readability
svn path=/trunk/; revision=49310
- Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs.
See issue #5627 for more details.
svn path=/trunk/; revision=49296
- Handle various special cases in NtQueryVirtualMemory (e.g. querying illegal virtual addresses, shared memory area, etc). Example of an app doing this - OllyDbg.
svn path=/trunk/; revision=49277
Main features:
- Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations.
- Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices.
- Rewrite device locking. The new method was neccessary to allow dynamic mode switching.
- Implement support for enumerating display devices and settings.
- Implement dynamic mode switching.
- Implement a number of Eng mapping functions.
- Rewrite Eng level surface handling for cleaner code and better compatability.
- Rewrite parts of the DIB handling code.
- Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before.
- Improve the XLATE and BRUSH code, removing several old hacks.
- Improve icon code.
Thanks to Jerome Gardou, Kamil Hornicek and everyone helping.
svn path=/trunk/; revision=49275
- One more leftover to add. Now we test for both Local and Global hooks in user32. This will force any message sent to win32k if there are any Global hookers so we loose in performance. We need to rethink our usage of these Global hookers in our code.
svn path=/trunk/; revision=49268
Simplify the RLE hack and avoid code duplication.
Bail out of UserEnumDisplaySettings early in case invalid ModeNum was requested.
Use default BPP value in UserChangeDisplaySettings if DM_BITSPERPEL is not set. Partially fixes "fullscreen issue" as described on the yarotows wiki page.
Remove some unused variables + misc cleanup.
svn path=/branches/reactos-yarotows/; revision=49267
Set proper flags and masks in BuildDIBPalette. Set PAL_BGR for 24/32 BPP in AllocPalette. Rename Mode to Flags to better reflect its usage. Fixes "red icons" and dibtest.
svn path=/branches/reactos-yarotows/; revision=49265
- Initialize Found to FALSE in NtQueryVirtualMemory. I wonder how GCC missed uninitialized var usage?
- Implement case when NtQueryVirtualMemory is called with non-existing virtual address.
See issue #3755 for more details.
svn path=/trunk/; revision=49261
- Fix a broken loop that resulted in us registering the resources of multiple COM ports as our KD port
- Fixes bug #5530
svn path=/trunk/; revision=49256
- Use new handle check functions in RCloseServiceHandle().
- RControlService: Check if a control request is acceptable for a user mode service before sending it to the service.
svn path=/trunk/; revision=49253
- Fix a critical bug in the conflict detection code
- Don't unconditionally skip conflict detection for shared resources, instead it should be done on a descriptor-by-descriptor basis (if both descriptors are shared)
- This check wasn't removed when I initially wrote this code and added the proper check below
svn path=/trunk/; revision=49252
- Check that we got a valid vector back from HAL when translating an interrupt resource
- Add some debugging messages for failure paths in device resource handling code
svn path=/trunk/; revision=49251
- Fix an exception when set condition * first always is used then moving the mouse. There seems to be an initialization issue (The Init Bug) and not setting a desktop.
svn path=/trunk/; revision=49250
- Partially implement IoAssignResources so that it creates a non-conflicting resource list from the requirements but it doesn't claim the resources for the device in the registry
- Partially implement IoReportResourceUsage so that it checks the resource list for conflicts but doesn't claim the resources in the registry
- Please test this revision with a variety of hardware and drivers because it activates several code paths in the PnP manager
- If this causes problems, look for "Denying an attempt to claim resources currently in use by another device!" in the debug log and report the bug to me
svn path=/trunk/; revision=49249
- Rewrite the resource map code to fix a regression, several failures cases, and a few memory leaks
- Remove an incorrect definition of IopDetectResourceConflict in pnpreport.c (no idea how this didn't trigger an onslaught of warnings)
svn path=/trunk/; revision=49248
- Remove a wrong ASSERT
- Improve EngLoadImageEx to correctly handle the path and optional dll extension.
- Get rid of EngLoadDriver
svn path=/branches/reactos-yarotows/; revision=49245
- Fix multiple bugs in round buffer implementation
- Should result in less audio glitches, especially when playing audio files with low sample rates. Please report any regressions!
svn path=/trunk/; revision=49244
- Rewrite the topology filter / pin / node property handling
- Store property sets of filter / pins / nodes in a common property set array
- Write a common dispatch function, which serves as a trampoline for filter / pin / node property requests
- Private property handlers of the drivers are now accessible
svn path=/trunk/; revision=49243
- Remove silence buffer hack
- Stub DRM Property Handler
- Before stopping the audio pin, fill the dma buffer with silence samples
- create a subdevice descriptor for instantiated pins too
svn path=/trunk/; revision=49242
- Fix check if the pin can be instantiated another time
- Remove hack to close old
- Add function FreePin to remove its old reference
- Fix memory leaks / reference leaks in WavePci pin implementation
- Fix memory / reference leaks in WavePci Close implementation
svn path=/trunk/; revision=49238
- Fix property set support handler for topology nodes
- Check if the driver supports a basic support handler. In that case return the basic support handler
svn path=/trunk/; revision=49237
- Remove the reference counter from the common handle type as a handle is never shared or duplicated.
- Remove the access right from the service handle as it is not used.
- Dereference service manager handles and service handles in two separate functions that SEH-protect the initial access to the handle and signature check. This will protect SCM from bogus handles.
svn path=/trunk/; revision=49214
Implemented FstubAdjustPartitionCount(), FstubConvertExtendedToLayout(), FstubCopyEntryEFI(), FstubCreateDiskMBR(), FstubCreateDiskEFI(), FstubCreateDiskRaw(), FstubDbgPrintSetPartitionEx(), FstubReadHeaderEFI(), FstubReadPartitionTableEFI(), FstubSetPartitionInformationEFI(), FstubVerifyPartitionTableEFI(), FstubWriteBootSectorEFI(), FstubWriteEntryEFI(), FstubWriteHeaderEFI(), FstubWritePartitionTableEFI(), FstubWritePartitionTableMBR(), FstubWriteSector()
Implemented IoCreateDisk(), IoGetBootDiskInformation(), IoReadDiskSignature(), IoSetPartitionInformationEx(), IoVerifyPartitionTable(), IoWritePartitionTableEx()
To sum up, this commit finishes FSTUB API implementation in the ReactOS kernel. This means one important thing: now ReactOS kernel knows about a bit about EFI and about GPT. No need to say that it's the first step into EFI support. But a lot more work is needed. Especially since the kernel is the only real entity in ReactOS to handle GPT. All the rest of the OS doesn't know anything about GPT.
A small note about FstubVerifyPartitionTableEFI(). This function is supposed to check whether a disk formated with GPT is valid, and if it's not, to fix it. First step is implemented. Second step isn't yet supported.
A general note about all that stuff: on GPT, backup table isn't properly handled for the moment, as ReactOS is experiencing disk geometry issues. That means it's not having the proper disk sectors count and then, can't find the backup table (which is located on last disk sector).
References:
http://www.intel.com/technology/efi/http://developer.apple.com/library/mac/#technotes/tn2006/tn2166.htmlhttp://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.h;hb=HEADhttp://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.c;hb=HEAD
svn path=/trunk/; revision=49212
Hackplemented support for IOCTL_DISK_GET_PARTITION_INFO_EX. It will work fine for MBR partitions but will fake returns for GPT partitions.
svn path=/trunk/; revision=49210
[NTOS]: Add support to MiDeletePte/MiDeleteVirtualAddresses to handle Section VADs.
[NTOS]: Add support to MiDeletePte to handle valid, prototype PTEs.
[NTOS]: Add MEM_TOP_DOWN support to ARM3 section code.
[NTOS]: Add support for unmapping currently mapped ARM3 section views at process termination.
[NTOS]: Use the new ARM3 section code for mapping the NLS section in the system (tests the system-view mapping code) and in each new process (tests the data-mapping code). Section is correctly unmapped at process termination time!
svn path=/trunk/; revision=49206
[NTOS]: Fix many MDL API bugs: correctly check for I/O pages, use LIST_HEAD instead of -1, track system-wide locked pages, use the process working set lock instead of the address space lock, add check for cross-ring MDL mappings, and make some small optimizations.
[NTOS]: Make some more fixes in MmAllocatePagesForMdl, MmFreeMdlPages to make the PFN entries more "correct".
[NTOS]: Had a little breakthrough: instead of complicating our lives and hiding certain ReactOS-Mm fields inside legitimate ARM3/MMPFN fields, differentiate between "legacy" (RosMm) and ARM3 pages. The legacy allocator (MmAllocPage/MmRequestPageMemoryConsumer) will use the non-paged pool to allocate a MMROSPFN add-on (8 bytes), in which the RMAP list head and SWAPENTRY are stored. When a legacy "free" is done, this data is deleted. Additionally, we can now tell apart between ARM3 and RosMm pages, so appropriate ASSERTs have been added to make sure the two never cross paths (which should safely let us use all the PFN fields now and implement working sets, etc...). I don't know why I didn't think of this sooner.
svn path=/trunk/; revision=49201
- Fix KSPROPERTY_PIN_CATEGORY handler when no category is provided
- Fix KSPROPERTY_PIN_NAME handler when there is no name provided. Use fallback pin category. If there is no category provided, fail with correct error code
- Fix KSPROPERTY_TOPOLOGY_NAME handler by checking if there is a node name provided. If not use node type as fallback.
- Return correct error code when property request id is out of bounds
svn path=/trunk/; revision=49199
[NTOS]: Reimplement NtQueryVirtualMemory to use VAD information instead. Even though Alloc/Free are still MAREA-based, the fake VADs we build ought to be enough to make the query API work for certain limited scenarios. Only some paths are implemented and it's lacking SEH, but it's good enough for the install/boot requirements. If there are any regressions, please file bugs.
svn path=/trunk/; revision=49194
[NTOS]: Now that VAD and MAREA views are synchronized, remove the VAD limit and let VADs be created at any address. Also do not create an arbitrary 16MB VAD memory area anymore. This basically now allows for as many PEB/TEBs as can fit in the address space, fixing the recent known regression that limited the number of threads a process could have.
svn path=/trunk/; revision=49193
- Kernel streaming pins need to transit states from Run -> Pause -> Acquire -> Stop.
- Fixes SB Live playback hang on last tone when stopping playback
svn path=/trunk/; revision=49191
- Apply a hack to filter out pins, which are not part of filter node processing path
- The hack filters out all pins which have a physical connection. Ideally the code should check if the pin is part of a different rendering path and in that case remove the pin.
- Revert 49167
svn path=/trunk/; revision=49189
[NTOS]: Implement support for deleting user-mode pageable VM addresses. Now when cleaning up the process address space, MiDeleteVirtualAddresses is called for the VADs, so this will now actually free the PEB/TEB pages that were previously getting leaked for each thread/process (a known regression I introduced when moving to VADs for PEB/TEB).
svn path=/trunk/; revision=49187
Initialise PPB to zero.
The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to
be not automatically initialised to zero anymore.
Not every field of the PPB (for which the memory is allocated) gets explicitly
initialised, meaning this results in them having bogus values.
One of the now uninitialised fields is DebugFlags, which results in
DbgBreakPoint being called in NtProcessStartup. Simply ensuring the memory is
zeroed makes it all better again.
svn path=/trunk/; revision=49180
[CDROM]: Add Windows Server 2003 DDK Cdrom Sample, under the license and terms of the Windows Server 2003 DDK.
They both build and run fine, but PCIIDE(x) must be completed/enabled, and atapi must be rewritten to be WDM-compliant.
svn path=/trunk/; revision=49171
[RTL]: Make the PPB live in the Heap instead of having its own virtual allocation, fixing the issue above. Stop rounding it to a PAGE_SIZE, and just use the space required.
svn path=/trunk/; revision=49169
- Add support for topologies where pins directly connect to other pins without nodes in between
- Check if the topology contains node. Fixes assert hit in VmWare Player(sound is not working)
- Thanks to Caemyr for testing
svn path=/trunk/; revision=49166
- Implement support for 2 interrupts
- Halfplement support for 2 DMA channels
- Set/Read the CM_RESOURCE_DMA flags
- Remove a duplicate spin lock initialization
- Partially tested with 2 interrupts in use but UniATA seems to be broken because it registers both interrupts for each channel even though they are not sharable which causes it to fail when initializing the secondary IDE channel
svn path=/trunk/; revision=49162
- Prepare LsapValidateDbHandle for access checks.
- Move the functionality of LsaQueryInformationPolicy (advapi32.dll) into the new function LsarQueryInformationPolicy (lsasrv.dll).
- Remove dead code from advapi32.dll.
svn path=/trunk/; revision=49161
- Remove some code duplication and fix a bug of copying the same interrupt information twice for a device with 2 interrupts (instead of the info for interrupt 1 then the info for interrupt 2) effectively making initialization fail because the resource allocation code will detect a conflict with itself
svn path=/trunk/; revision=49158
Our CRT causes duplicate definitions, when trying to use it as fallback for missing msvcrt imports. Work around this limitation by adding powf and sqrtf wrappers for amd64 builds
svn path=/trunk/; revision=49157
- Fix a typo which lead to incorrect flags being forced. Fixes last remaining major winetest failures (only 1 GlobalAlloc/Free implementation related one is left to be fixed).
svn path=/trunk/; revision=49156
Hackfixed build by stubbing RtlpValidateHeapHeaders(), RtlpValidateHeapEntry() and hackplementing RtlpValidateHeap().
To be properly fixed.
svn path=/trunk/; revision=49155
- Implement registering event routine which gets called when a topology node (volume / mute node) changes
- Implement fetching event changes
[MMIXER]
- Implement support routines which get called when a topology node changes its state
- Volume changes / mute on/off changes should now be broadcasted again to all listening applications
svn path=/trunk/; revision=49151
- Rewrite topology node enumeration algorithm
- Old algorithm didnt properly take in account sum/mux nodes, may assign nodes to multiple lines and was not able to detect circuits which may lead to infinite loops
- New algorithm properly partitions the nodes and also checks if nodes has already been assigned. As a plus, it is also faster
- Algorithm based on msdn http://msdn.microsoft.com/en-us/library/ff538873(v=VS.85).aspx
- Tested on VBox 3.28 (AC97)
- Please retest supported soundcards for regressions
svn path=/trunk/; revision=49150
- Add special debug heap function declarations and stubs.
- Add a useful inline for detecting whether a special or normal heap is going to be used.
svn path=/trunk/; revision=49149
- Add ability to dynamically allocate UCR descriptors when preallocated amount is exhausted.
- Fix a few bugs in RtlpFindAndCommitPages and in deactivated RtlpDecommitFreeBlock.
- Enable free blocks decommitting.
- New heap manager would now be ready to replace the old one.
svn path=/trunk/; revision=49147
- When we try to call a hook with null hook proc will cause a crash in user32. Add an assertion in win32k in order to catch the problem a bit earlier
svn path=/trunk/; revision=49145
- Disable checking if a hook is active. It is safe to disable it for now because it is just an optimization. If we try to call a hook when it is not active, it will fail anyway when it tries to find the hook. Fixes calling low level hooks
svn path=/trunk/; revision=49144
[CSRSRV]: CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped.
svn path=/trunk/; revision=49133
Implemented IopFetchConfigurationInformation(), IopCreateArcNamesCd(), IopCreateArcNamesDisk(), IopVerifyDiskSignature()
Removed IopApplyRosCdromArcHack(), IopGetDiskInformation(), IopAssignArcNamesToCdrom()
Finally, rewritten IopCreateArcNames()
To make it short, this is the rewrite of ARC names handling in the kernel.
This brings our kernel to a higher state of existence. Indeed, it's leaving NT4 design for a proper NT5.2 design, with less hacks, less ROS specific stuff and such.
This code handles the mount manager we don't have yet.
svn path=/trunk/; revision=49131
Implemented FstubAllocateDiskInformation(), FstubDbgGuidToString(), FstubDbgPrintDriveLayoutEx(), FstubDbgPrintPartitionEx(), FstubDetectPartitionStyle(), FstubFreeDiskInformation(), FstubGetDiskGeometry(), FstubReadPartitionTableMBR(), FstubReadSector()
Stubbed FstubReadPartitionTableEFI()
This leads to a correct & working implementation of IoReadPartitionTableEx(). As this state, it only handles MBR partition tables as EFI/GPT as been stubbed out.
EFI/GPT support will come later.
svn path=/trunk/; revision=49130
Switch use from DISK_GEOMETRY to DISK_GEOMETRY_EX. It's needed to handle some Windows 2003's kernel routines.
[CDROM]
Reflect changes in Class2.
[DISK]
Reflect changes in Class2.
Also added support for IOCTL_DISK_GET_DRIVE_GEOMETRY_EX.
svn path=/trunk/; revision=49129
- Check that the interrupt line is not 255
- Check that the interrupt pin is not 0
- Fixes a failed assertion that Caemyr experienced with an ATI Rage graphics card
svn path=/trunk/; revision=49127
- Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap.
svn path=/trunk/; revision=49122
- Update the only two tests that I tested and know that does not have RTL support. The Right To Left support will be another comprehensive change that can be done in a non intrusive way as long no one uses it.
svn path=/trunk/; revision=49117
- Remove the FreeLParam 'feature' from win32k. This hack allowed us to post messages that contain pointers. However we don't do it anymore so we can also remove this as well
- Add keyboard messages to the list with Hardware messages and not in the list with post messages
svn path=/trunk/; revision=49115
- Fix RtlQuery/SetHeapInformation prototypes, move them to an appropriate place.
- Implement RtlQuery/SetHeapInformation.
- Implement in-place block growing.
- Amount of winetest heap failures is down to 6 (3 exceptions still happen).
svn path=/trunk/; revision=49111
- Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset.
- Roel Messiant: Test behaviour in Vista and apply same fix to RegEnumValueA.
See issue #2492 for more details.
svn path=/trunk/; revision=49110
- Properly set HEAP_GROWABLE flag if dwMaximumSize is 0 in HeapCreate. Also check for dwMaximumSize validity. Fixes out-of-memory problems when running "heavy" applications like Office 2003 setup with a new heap manager (which actually respects HEAP_GROWABLE flag).
svn path=/trunk/; revision=49102
- apply patch by Black_Fox (see bug 5434)
- fix minor bugs introduced by it
- generalize changes related to mirroring rectangular selections to free form selections
- solve problem regarding selection contents update
svn path=/trunk/; revision=49089
- Sync to Wine-1.3.4
- Bugfix: The switchtype attribute of non-encapsulated unions was not propagated to a type but only to its aliases.
svn path=/trunk/; revision=49085
- Sync to WINE 1.3.4
[WININET]
- Add a forgotten change to the diff
[WINHTTP]
- Sync to WINE 1.3.4
- Sync the inet_ntop.c change from wininet
- Update the diff
svn path=/trunk/; revision=49083
- Add a ROS-specific change that was missed during the last winesync to fix winsock error handling
- Remove the CP_UNIXCP definition
- Use WSASetLastError instead of errno in inet_ntop.c
- Thanks to IRC:igorko for pointing out the bug
svn path=/trunk/; revision=49078
- Move (and cleanup) private heap definitions and structure to a standalone header file heap.h. It's explicitly included in heap_rewrite.c and heapdbg.c to prevent conflicts with the existing heap manager in heap.c.
svn path=/trunk/; revision=49071
- Implement setting/getting heap user values and flags (very easy provided heap design is now proper). Amount of winetest failures is down to 12 (but 3 crashes in child processes).
svn path=/trunk/; revision=49069
Igor Paliychuk:
- Update some broken links.
- Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic).
svn path=/trunk/; revision=49067
- Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect).
- RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again.
- Fix a typo in comments.
svn path=/trunk/; revision=49063
- Set proper heap flags (tail and free checking) in case heap validation is enabled. Fixes another bunch of winetests.
svn path=/trunk/; revision=49057
Rename the EVENTSOURCE struct to LOGHANDLE because it is currently used like a handle object. The EVENTSOURCE struct will be added again in one of the next commits.
svn path=/trunk/; revision=49055
- Roel Messiant: Remove old-style Peb->ProcessHeaps assignment from RTL, it's already done by MM.
- Roel Messiant: Fix a typo (missing else) between two if branches, which fixes commit routine support.
- Properly save requested size if 0 was given (1 should be allocated, but 0 saved as a requested amount). Fixes winetests.
- Remove unnecessary dprints.
svn path=/trunk/; revision=49048
- Load image execution options before creating process heap (so that GlobalFlag overrides can be taken into account).
- Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status).
- Fixes a dramatic count of ~100 failures in "kernel32_winetest heap".
svn path=/trunk/; revision=49045
On boot, while loading drivers, make starting Loader Block available to the whole kernel to let drivers calling on-boot functions that may need it.
One of them will be implemented later.
svn path=/trunk/; revision=49044
Fixed a FIXME in ARC names by implementing IopStoreSystemPartitionInformation(). This make ReactOS writing boot paths to registry.
svn path=/trunk/; revision=49043
Don't ignore IopCreateArcNames() return while booting.
At the moment, it's just returning STATUS_SUCCES but it will be changed later.
svn path=/trunk/; revision=49042
- Fix allocated/free memory fillers to match those Windows uses (winetests)
- Add missing coalesce-on-free flag check in RtlCreateHeap
- Turn on tail check/pattern filling in RtlAllocateHeap.
- Add extra stuff storage support in RtlAllocateHeap and its helpers.
- Set win32 statuses where necessary.
- Return success in RtlValidateHeap to reduce spam when running winetest.
svn path=/trunk/; revision=49034
- Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation.
See issue #2492 for more details.
svn path=/trunk/; revision=49028
- LoadImageFileExecutionOptions() improvements:
* Apply certain heap flags if the process is being debugged (only if NtGlobalFlags is not overridden).
* Implement enabling page heap and reading image-specific configuration values.
- Add page heap configuration values to the Heap Manager.
svn path=/trunk/; revision=49025
- Fix loading of GlobalFlags in Image File Execution Options. I really wonder who had that brilliant idea that bitwise flags would be stored as a string in the registry.
- If there is a GlobalFlags value specified in the registr for that specific image, it means that value should overwrite NtGlobalFlags. Fix that too (previously it was ORing which made no sense).
svn path=/trunk/; revision=49021
Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv[0] later.
svn path=/trunk/; revision=49020
Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir.
svn path=/trunk/; revision=49018
- Fix incorrect codepage values
- Look for applets in windows dir as well as system dir
- Patch by Carlo Bramix
See issue #3158 for more details.
svn path=/trunk/; revision=49017
- Implement missing parts of a virtual block allocations support.
- Minor fixes to handling extra stuff in heap blocks.
- Wine's heap regression tests now run through the end without crashing and show 277 failures.
svn path=/trunk/; revision=49010
- First commit of a heap manager rewrite. It introduces a totally new heap manager, with the following features:
* Actually resembles real NT's heap manager;
* Based on data structures similar to Windows 2003 and Vista+'s heap structures;
* Supporting advanced heap flags (e.g. useful for debugging);
* Substantially lower fragmentation rates (and thus speed and reliability) than the existing Wine's implementation. It's going to be further enhanced by adding a frontend allocator (for example, as lookaside lists, or as a Low Fragmentation Heap alike frontend in Vista+ systems);
* Real support for user-defined flags and native support for user-defined values;
* Native support for a custom commit routine, which is very important for trunk's win32 subsystem;
* Reserving, committing, decommitting and freeing on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary;
* Support for per process heaps, with a proper lock;
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions.
The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now.
svn path=/trunk/; revision=49007
- Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES.
- Validate protection mask.
- Validate MEM_RELEASE and MEM_DECOMMIT.
- Perform correct SEH in NtFreeVirtualMemory.
- Protect against overflows past VAD/User address ranegs.
- Only reference the process by handle if this isn't already the current process.
- If this isn't the current process, attach to it during the duration of the VM operation.
svn path=/trunk/; revision=49004
- Fix heap code to actually use the new lock instead of using RTL_CRITICAL_SECTION.
- Fix a ROUND_UP and ROUND_DOWN macros: it is a *rule* to wrap every argument in braces in a macro, otherwise shit happens. A couple of days were lost fighting a strange bug in the new heap manager code where it was doing ROUND_UP(Heap + 1, PAGE_SIZE)...
svn path=/trunk/; revision=49003
- Don't place new windows with default position at the top left corner of the screen
See issue #5484 for more details.
svn path=/trunk/; revision=49001
[NTOS]: The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out.
[NTOS]: Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support.
svn path=/trunk/; revision=48999
[NTOS]: Don't assume that CcFlushDirtyPages will run with APCs disabled. Go ahead and actually enter/leave a critical region (Acquire/ReleaseForLazyWrite depend on this). The guarded mutex does disable APCs, but it's released when the actual flush happens.
svn path=/trunk/; revision=48998
[NTOS]: Make every VAD insert also create a MEMORY_AREA. Now the two address space views should be completely synchronized and we can try removing the hack that was done for PEB/TEB support (which will remove the 200 thread regression).
[NTOS]: Implement MiGetNextNode and MiFindEmptyAddressRangeInTree.
svn path=/trunk/; revision=48997
- Move on to using a real HEAP_LOCK structure for a heap lock.
- Implement kernel-mode counterparts of this lock too. Right now these don't introduce much of a difference, but they are going to be properly used by the new heap manager code.
svn path=/trunk/; revision=48994
[NTOS]: Delete WriteCopyView flag from MEMORY_AREA (unused, and was taking up 4 bytes due to alignment), and add a Vad pointer (takes up 4 bytes -- no actual size change).
[NTOS]: For VM and Section MEMORY_AREAs mapped in user-mode, build a "fake" VAD and insert it into the VAD Root of the Process. This means there is now a consistent view between ARM3 and RosMm in terms of user-mode address space layout, which will come in handy later.
[NTOS]: Destroy the MEMORY_AREA's VAD when the MEMORY_AREA itself is deleted. Watch out for the scenario explained in a previous check-in, where the VAD was caught by the MmCleanProcessAddressSpace vad-cleanup-loop.
[NTOS]: Implement MiInsertVad to restore the old functionality of MiInsertNode when the current parent and insertion result is not yet known. It obtains the information and calls MiInsertNode.
svn path=/trunk/; revision=48992
[NTOS]: Added a bogus allocation flag that can be used with Nt/MmCreateSection and MmMapViewInSystemSpace to take the ARM3 path instead. Only for internal testing at the moment.
Now we need to look at how to allow mapping these into user-space as well...
svn path=/trunk/; revision=48981
[NTOS]: Define MI_PTE_LOOKUP_NEEDED instead of using 0xFFFF. The name was found in checked build assertion strings.
[NTOS]: Add MM_VIEW (used for System-mapped Section Views) and MM_SESSSION (used to define the system/session view mappings) structure definitions.
svn path=/trunk/; revision=48977
- Fixed ValidateTimerCallback, always returning true and just spinning in the loop.
- Add one more process information flag with a point type and capturing the hit test in desktop structure.
svn path=/trunk/; revision=48970
[KERNEL32]: NtCreateSection should not be called with merely SEC_FILE: this says nothing about what kind of operation should be done (a commit, a reserve, etc?). Use SEC_COMMIT instead to specify correct operation. This works in ReactOS as of now, but would've failed after the NtSection* API rewrite.
[KERNEL32]: CreateFileMappingW should also accept/allow SEC_LARGE_PAGES, even if we don't suppport it yet.
svn path=/trunk/; revision=48958
Enable ARM3 Paged Pool and remove all related deprecated code. Install tested on several VMs, it might cause new regressions. Let's fix them before 0.3.13 instead of reverting.
svn path=/trunk/; revision=48940
[NTOS]: Remove some magic numbers in the pool code, using PTE_COUNT, MiAddressToPde, when needed. Also, the expansion code uses PDEs, not PTEs, so differentiate this, because on some systems (ARM), there are different structures for both.
[NTOS]: Use MI_WRITE_INVALID_PTE.
ARM3 paged pool now works, the expansion bug has been fixed (and the code is more portable). Expect to see it gradually enabled soon.
svn path=/trunk/; revision=48939
- Katayama Hirofumi: Don't leak open handles to keys.
- Katayama Hirofumi: Misc code changes/ cleanup.
See issue #5547 for more details.
svn path=/trunk/; revision=48934
Added a small testcase for FsRtlIsNameInExpression(). It's quite relevant for daily and simple use of the function. It shouldn't fail on ReactOS given our current implementation.
svn path=/trunk/; revision=48932
[NTOS]: Add concept of process color and system color. Compute correct color to use whenever requesting a page.
[NTOS]: Uncondtionally enable the color code when inserting/removing pages.
For now, when requesting a page, colors are still ignored, and the global PFN lists are scanned instead. If there are no regressions, we are one patch away from that.
svn path=/trunk/; revision=48927
[NTOS]: Enable color tables! Right now pages are merely entering and exiting the tables, the tables themselves are never used for allocations. This will change with further commits.
svn path=/trunk/; revision=48926
[NTOS]: Redocument which MMPFN fields are violated by ReactOS-internal values. This has gotten much better than before.
svn path=/trunk/; revision=48925
- Update RedHat Liberation Fonts to 1.06
- Update Tahoma Fonts To Wine HEAD
- Update DejaVu Fonts Documentation To 2.31
See issue #5632,5633,5634 for more details.
svn path=/trunk/; revision=48924
[NTOS]: Use a synchronization (auto-reset) instead of notification event for the zero page thread, this way we don't have to reset it manually and query its state. Instead, a boolean MmZeroingPageThreadActive is checked instead.
[NTOS]: Once we switch to colored lists, major improvements can be done for speed.
svn path=/trunk/; revision=48922
[NTOS]: Fix MiInsertZeroAtBack to increment the MmAvailablePage count, since MiRemoveAnyPage decrements it (MiRemoveHeadList did not).
svn path=/trunk/; revision=48918
- Igor Paliychuk: Fix properly showing genitive names from NLS data by applying a missed Wine sync.
See issue #5556 for more details.
svn path=/trunk/; revision=48917
- Get rid of the messed up MiMapPageToZeroInHyperSpace which was hacking into MiMapPagesToZeroInHyperSpace. Now MiMapPagesToZeroInHyperSpace is properly implemented to use chained PFNs, and the MmZeroPageThread code has been modified to correctly use the new mechanism.
- Zero page mapping now happens at PASSIVE trough MiMapPAgesToZeroInHyperSpace, not DISPATCH anymore.
- More fixes are coming to remove the remaining MiRemoveHeadList and rewrite the zero page loop. Should fix more possible corruptions.
svn path=/trunk/; revision=48912
[NTOS]: Don't repurpose pages from the zero/free page list without actually unlinking the page first! This should fix even more corruptions.
svn path=/trunk/; revision=48909
- Remove the last reactos-only export from user32 (PrivateCsrssManualGuiCheck)
[win32csr]
- Move PrivateCsrssManualGuiCheck from user32 to win32csr
svn path=/trunk/; revision=48907
- Acquire rundown protection on process to make sure it is not being terminated and before attempting to do anything with the process. Fixed a rare case of PspDeleteProcess being called twice for a process, resulting in bugcheck.
svn path=/trunk/; revision=48905
- Implement win32k support functions for Get and Set process default layout.
- Due to changes with wine it will be difficult to sync when RTL support is being added to ComCtl32.
svn path=/trunk/; revision=48904
IoRegisterPlugPlayNotification: Do not fail if no Interface can be found for the given GUID. Just do not call the Callback-Routine in this case. The Interface could be created later.
svn path=/trunk/; revision=48896
Fixed a really stupid (and old) bug in RtlComputeCrc32():
First parameter is initial CRC32 checksum. And it's complete and not partial, thus it needs to be an ULONG and not an USHORT.
This fixes CRC32 checksum computation with initial checksum (tested again Windows 2003 & Seven).
svn path=/trunk/; revision=48895
- Cleanup UserSetCursorPos
- UserSetCursorPos: set the new position after sending WM_MOUSEMOVE message
now we pass all tests for SetCursorPos
svn path=/trunk/; revision=48879
[NTDLL]: Apply the special begin/fault/resume lablels to the user-mode SList functions. Access faults can happen there due to a bug in the Windows algorithm, and Mm will need to handle that.
[NTOS]: Lookup the special labels from above when initializing the System DLL. Only lookup INT2E vs SYSENTER on x86, other architectures don't need a stub.
[NTOS]: Bitmap resources start at index 1, not 0. Also make sure we don't go past the maximum IDB_ resource index for no reason, and check the size of the resource instead of assuming it's going to be one page.
[NMIDEBUG]: Fix and cleanup some code, and enable NMI support on the boot/install CD as well.
svn path=/trunk/; revision=48860
- PspCreateThread: If thread creation fails, dereference the Process object also to account for the reference taken at the beginning of the function.
svn path=/trunk/; revision=48857
- Fix PciGetHackFlags for setup found by sir_richard "Setup currently doesn't have a correct registry"
- Fix DriverEntry for setup like PciGetHackFlags
- Fix DriverEntry PciOpenKey check found by sir_richard "PciOpenKey returns a BOOLEAN, not an NTSTATUS"
- Stop call PciGetAcpiTable found by sir_richard "PciGetAcpiTable is really broken, can lead to infinite loops, and also corrupts memory. We need to fix stefan's bugs"
- Implement not root FDO code in PciScanBus and support PCI_HACK_ONE_CHILD
- Implement multiple FDO exist code in PciAddDevice so PCI Bridge support now
- Implement PciAreBusNumbersConfigured for PCI Bridge support
- Hack FDO Start Device by sir_richard "The root FDO does send boot resources if PCIX is installed properly, this code will be needed"
- Do PCI_BUS_DRIVER_INTERNAL bugcheck by sir_richard "I have hacked KeBugCheckEx to ignore this for now, until PnP is fixed"
- Implement not root FDO code in PciInitializeArbiters
- Implement PciCacheLegacyDeviceRouting, PciFindPdoByLocation used by PciAssignSlotResources
- Make PciTranslateBusAddress do the stub work
- PciAssignSlotResources disabled because ReactOS not support IoAssignResources
- Implement PPBridge_ChangeResourceSettings
PCIX driver nearly working now.
svn path=/trunk/; revision=48851
- Simplify KsTopologyPropertyHandler by using KspReadMediaCategory helper
- Return correct status code in case of an overflow
svn path=/trunk/; revision=48850
[HAL]: Implement most of HalpGetISAFixedPCIIrq, other than the legacy PCI IRQ Routing Miniport callbacks, which aren't yet implemented by ReactOS.
The Windows PCI Bus Driver seems to work now.
svn path=/trunk/; revision=48844
[BOOTDATA]: Windows Bus Drivers/HAL/Kernel require Arbiter data in the registry placed by the installer, otherwise they will not load. Add this Arbiter data.
[NTOS]: Add support for KeyValueFullInformationAlign64, used by some Windows drivers (as a bonus, support Win64). PartialInformationAlign64 is a different beast -- warn when a driver attempts to use it, instead of silent failure.
[NTOS]: Export VfFailSystemBIOS and stub it.
[NTOS]: Warn when a driver fails to load due to a missing dependency and print the name and/or missing module, instead of silently failing.
[NTOS]: Due to a bug in the ReactOS PnP manager, Windows PCI Driver hits an internal pseudo-assert. Hack KeBugCheckEx to ignore this pseudo-assert and continue executing normally.
svn path=/trunk/; revision=48839
- Process the timer event directly from the DPC instead of queuing a work item then raising to DISPATCH_LEVEL later when acquiring a spin lock
- Optimize the spin lock operations in NBTimeout and IPDatagramReassemblyTimeout for being called at DISPATCH_LEVEL
svn path=/trunk/; revision=48833
- WaitForUsbDeviceArrivalNotification: Dont use IoBuildDeviceIoControlRequest to create the IRP as we dont wait for the IRP to complete in the current thread. It must be built using IoAllocateIrp.
- DeviceArrivalCompletion: Allocate the WorkItem from NonPagedPool vice using one in the DeviceExtension. Free the Irp and return STATUS_MORE_PROCESSING_REQUIRED so the IO Manager doesnt try to do anything more with the now freed Irp.
- When selecting the Interface use the routines in USBD library now that they are implemented correctly.
- More fixes for passing the correct DeviceObject when calling QueryRootHub.
svn path=/trunk/; revision=48826
[SETUPLDR]: Unify the old setupldr settings with more recent freeldr ones. Also fixes missing _udiv/mod functions on my build.
svn path=/trunk/; revision=48825
Katayama Hirofumi <katayama.hirofumi.mz@gmail.com>
- Renamed GLOBAL_DATA structures to DATA.
- Added real GLOBAL_DATA in background.c, that manages the background color.
- Resolved conflict of background colors in background.c and appearance.c.
- Fixed drawing the menu in draw.c.
See issue #5620 for more details.
svn path=/trunk/; revision=48812
- Fix calculation bug in USBD_ParseDescriptors which caused descriptors to be skipped and all Parse functions to return bad information.
- USBD_CreateConfigurationRequestEx: Fix calculation for the size of the URB.
Dont copy the InterfaceList to the Urbs Interface member as they are not the same structures. Instead loop through each interface and endpoint to get the data needed for the Interface member of URB.
- USBD_GetInterfaceLength: Add missing brackets for the FOR LOOP. The first descriptors length is part of the Length regardless of what it is.
If bDescriptorType of USB_INTERFACE_DESCRIPTOR_TYPE is reached a second time then break from the loop, as the length calculation is done.
svn path=/trunk/; revision=48810
- Add support for Cyrix CPUs by checking and applying a workaround for the Cyrix 6x COMA bug (description here: http://gwyn.tux.org/~balsa/linux/cyrix/p11.html).
See issue #5610 for more details.
svn path=/trunk/; revision=48801
- Roel Messiant: Fix a crash when running some operations in sc without providing arguments. Also, provide usage information for the control and unknown commands.
- Aleksey Bragin: Take Ged Murphy's comments into account and change pointer arithmetic to a convenient style.
See issue #5611 for more details.
svn path=/trunk/; revision=48800
Johannes Anderwald:
- Partly revert 48786
- Use existing sLinkPath instead of own grown sCurFile
- Fixes 6 more winetest failures, 4 to go for shellink test
svn path=/trunk/; revision=48792
Fix a bug, where a failure to allocate the kernel mode WINDOW_OBJECT would cause a page fault, because the WND was still allocated, but never initialized, and Wnd->rpdesktop was then dereferenced to free the WND again.
svn path=/trunk/; revision=48785
- More fixes to VDM PUSH/POPF code:
- When doing a 32bit push, don't store the flags 2 bytes off
- Recalculate HardwareEsp, by substracting the segment part, instead of truncating the flat pointer to 16 bit.
svn path=/trunk/; revision=48781
[NTOSKRNL]: Implement CmdPutString command, and add log message types. Kernel version/build, processor, and RAM, now appear on EMS screen (due to InbvDisplayString), as well as loaded drivers. Next steps are to support log entries and a flag to route debug output (a ReactOS-specific feature request).
svn path=/trunk/; revision=48778
[NTOSKRNL]: Implement basic Headless support in the kernel. Implement missing InbvPort routines based on WinLdrPort (using cportlib). Add header for Hdl. Terminal initializes now on COM2. Added misisng code to InbvDisplayString to also display on Headless Terminal (requires unimplemented HeadlessDispatch). Next steps are to implement the kernel log buffer, and HeadlessCmdPutString to see boot strings.
svn path=/trunk/; revision=48773
- On completion of SCE request, create and queue a workitem to handle:
Clearing the connection flag and reset the port.
Create and initialize the USB device by calling the appropriate roothubs Direct Call Interface.
Create the device object, get the device descriptors and the serial and product strings of the USB device to be used for creating the deviceid and instanceid.
- Format code and misc changes.
- Together with the usbehci driver, ReactOS at least runs the device installation wizard with the correct device description.
svn path=/trunk/; revision=48771
- Dont reset the port in the DPC after device is connected, the usbhub driver will do that later.
- Implement ResetPort and create a timer to call a DPC to coplete the SCE request.
- Dont queue all URBs and have seperate thread complete them as other URBs may still need to be completed.
Instead only queue the SCE request and complete it when a usb device is connected or reset.
- Implement RemoveURBRequest and fix bugs in URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE.
- For IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO dont return the FDO in Argument2 as no upper level driver should be communicating with the FDO of the roothub.
- Dont assign the usb device an address when initialized as the hub driver will do it later.
svn path=/trunk/; revision=48770
[FREELDR]: Implement support for /redirect=comX (usebiossettings not yet supported) and /redirectbaudrate. Uses cportlib. Tested, serial output works and kernel reports "Headless support is not yet implemented". Future revisions should support ACPI SRT for PCI-based serial ports on server systems.
svn path=/trunk/; revision=48768
[NTOS]: Using IsBadRead/CodePtr, it's possible for user-mode code to generate cases where we *think* this is an ARM3-managed piece of VA, which will always have a VAD (Since we only manage the PEB/TEB), but actually it's a bogus VA-looking address that is actually invalid. We didn't consider this case. We now implement the same code Windows normally would also handle, when the VA is bogus, and accept that no VAD might be found, so MM_NOACCESS is returned and thus an access violation sent to the caller. In the case of the IsBad...Ptr, this function would then return TRUE, as the caller expects.
svn path=/trunk/; revision=48759
- Part support for resource change with PciComputeNewCurrentSettings... full support for PciSetResources, PciUpdateHardware, PcipUpdateHardare
- IRP_MN_START_DEVICE for PDO (PciPdoIrpStartDevice) implement
- PciNextPartialDescriptor, PciDebugPrintCmResList, PciDebugPrintPartialResource helpers implement
- Now full PDO support almost done, PCIX driver ready for test
- Thanks to cgoodman assert fix
- PnP forever recursion in enumerate, must fix to finish
- Goodbye sir_richard, nice to have you
svn path=/trunk/; revision=48748
- Daniel Zimmermann: Fix POPF bugs in VDM mode, namely truncation of the stackpointer to 16 bit and setting proper flags in the trapframe eflags register. This fixes problems with videocards calling int 0x10 VESA BIOS extension.
See issue #5608 for more details.
svn path=/trunk/; revision=48745
- Add missing call to HalInitPnpDriver during I/O manager initialization. The HAL PnP driver was never getting initialized.
- Add HAL callback for HalInitPnpDriver. It's going to be needed in future for eVb's PCI driver to fully work (interrupt translation, among other things).
svn path=/trunk/; revision=48740
- Modify IopCreateDriver to accept the PLDR_DATA_TABLE_ENTRY instead of the DllBase and SizeOfImage from this structure.
- Set the DriverObject->DriverSection before calling the DriverEntry routine.
- If the DriverEntry routine fails then set the DriverObject->DriverSection back to NULL so that IopDeleteDriver doesnt attempt to unload the ModuleObject, after it was already unloaded by the caller.
svn path=/trunk/; revision=48738
- Fix a code typo which led to a security issue when the XOR algorithm for the system cookie might actually yield zero. Now it's going to loop as long as the cookie is 0, attempting to generate a non-zero one.
svn path=/trunk/; revision=48737
- Fix a strange bug where we were only setting SharedUserData->TestRetInstruction conditionally only if lookup failed - it should be set on success. Also, bail out if the lookups failed.
svn path=/trunk/; revision=48735
- Fix incorrect POOL_TYPE allocation in IoInvalidateDeviceRelations. This function can be called at DISPATCH_LEVEL, which requires NonPagedPool POOL_TYPE.
svn path=/trunk/; revision=48734
- Giannis Adamopoulos: Only dereference a class if it's valid, should fix Heroes 3 crash.
See issue #5606 for more details.
svn path=/trunk/; revision=48732
- Rename KINTERRUPT_DISPATCH_CODES to DISPATCH_LENGTH, as it is in PSDK.
- Enhance NMI debug support.
- Change some comments to standard ReactOS commenting style.
svn path=/trunk/; revision=48730
- Fix release build, part 2. Further improvement to gDebugChannels would be to convert them to a DECLARE_DEBUG_CHANNEL-alike macro.
svn path=/trunk/; revision=48729
[CPORTLIB]: Implement Windows' Cp (ComPort) library. See Notes in C file. Not yet used. Based on MS Whitepaper: Building Hardware and Firmware to Complement Microsoft Windows Headless Operation.
svn path=/trunk/; revision=48727
- When an IRP is freed in a Completion routine the return Status is STATUS_MORE_PROCESSING_REQUIRED to let IoCompleteRequest know not to do anything further with the IRP.
svn path=/trunk/; revision=48724
Allocate a drive layout buffer that is large enough to keep a primary partition table (4 partition entries) plus 26 logical drives (2 partition entries each). Total 56 partition entries. This should be enough for everybody until we support GPT partition tables. ;-)
See issue #5270 for more details.
svn path=/trunk/; revision=48722
- SEH-protect all code that writes to PreviousState as it cannot be captured.
- Add a missing ObDereferenceObject and SeReleaseLuidAndAttributesArray.
svn path=/trunk/; revision=48721
- Add function for dumping the Device and Configuration Descriptors.
- Implement WaitForUsbDeviceArrivalNotification, used to send a URB transaction to the Status Change Endpoint of the RootHubs pdo. The RootHubs pdo will queue this request until a new usb device connects.
- Call above function at the end of UsbhubFdoQueryBusRelations, which will be called by the pnp manager after the hub driver creates a new child device.
- Change the URB to be allocated from the pool at IRP_MN_START_DEVICE.
- Call QueryRootHub with the RootHub Pdo and not the hub drivers DeviceObject.
- Implement selecting a configuration for the RootHub.
svn path=/trunk/; revision=48719
[GDI32]: Reformat GetSystemPaletteEntries away from grotesque 5-space identation (who does that?).
[GDI32]: Optimize GetSystemPaletteEntries by not zeroing over fields that get overwritten anyway.
[GDI32]: Simplify loop control, remove not-needed local variable in GetSystemPaletteEntries.
svn path=/trunk/; revision=48716
- Check for invalid parameter combinations.
- Count privileges that will be changed before changing them.
- Return required buffer size.
- Fail if the provided buffer is too small.
See issue #5497 for more details.
svn path=/trunk/; revision=48710
The VBR (volume boot sector) contains a structure called BPB (bios parameter block) that describes the disk and the partition. The HiddenSectors member contains the number of the first sector of the partition. This is used by the VBR code to load the secondary sector containing additional boot code that is located at secor 14 relative to the partition start. Previously we were copying the BPB (plus additionally the OemName, which makes no sense) from the old VBR. Now Linux is a bit lame and doesn't put the correct value into the HiddenSectors field. Instead it sets it to the number of sectors per track which seems to be the default value. When now the linux partition manager decides to do a non standard partitioning, aligning the partition to 0x800, then the VBR fails to load it's 2nd sector. Fix this by correcting the value in the BPB with the value from the partition info.
See issue #2733 for more details.
svn path=/trunk/; revision=48706
- Start rewrite of usbhub driver using the old and dead usbhub driver in trunk.
- Implement QueryRootHub for sending USB request to miniport driver.
- Implement new IRP_MN_START_DEVICE.
Get the roothubs PDO and FDO and forward the start device down to start the PDO.
Get USBDI and HUB interfaces. Set all ports as returned by DCI GetExtendedHubInformation to powered and reset.
- Temporary add some usb specific defines until header is fixed.
- Fix Formatting.
svn path=/trunk/; revision=48705
- Fix flags settings for PortStatus and PortChange so that the correct flags are set when hub driver sets/requests them.
- Use FastMutex to protect access to async queue and frame list.
- For USB CONFIG DESC, Check the output buffer size before attempting to write all configuration descriptors.
- Fix a bug that caused bmRequestType to be incorret value when requesting configuration and string descriptors.
- Modify some debugging to make it easier to see debug messages from usbhub driver.
svn path=/trunk/; revision=48704
- Add the option to write only the VBR so FreeLoader can easily be chain loaded by GRUB or another boot loader
- Dedicated to James Tabor :)
svn path=/trunk/; revision=48703
- Remove code that was corrupting disk data and causing setup to fail in rare cases
- Write the MBR in all cases (Windows setup behavior too)
- We can overwrite GRUB and LILO now but we still can't boot because we have trouble reading the partition table if it was made in Linux
svn path=/trunk/; revision=48700
[NTOS]: In the process, fix bugs in the Event dispatcher code that used Win32 EVENT_TYPE instead of NT KOBJECTS enumeration.
[NTOS]: Fix a bug in ObpInsertHandleCount, where the object access check was being done with the previous mode, instead of honoring the probe mode, which is defined by OBJ_FORCE_ACCESS_CHECK.
[NTOS]: Fix a bug in a section function which was always returning STATUS_SUCCESS, now it returns the result of the previous Status = function assignment. If this isn't desired, then don't check for the Status anymore.
[NTOS]: Note that MDL code does not support SkipBytes argument. If it is used, MDL could be invalid.
[NTOS]: Add checks for VerifierAllocation and set it when needed (WIP).
[NTOS]: Clarify what _WORKING_LINKER_ is, and the legal risks in continuing to use a linker that builds non-Microsoft drivers when used with headers whose EULA specify that they can only be used for Microsoft drivers.
svn path=/trunk/; revision=48692
- Check for a shutdown connection that we missed a few times
- Remove some junk and stop playing with flags behind oskit's back
- Fix an invalid parameter check
- Enable a check to ensure that accept doesn't get called for a socket that isn't listening
- Use the queue manipulation function instead of manually changing the queue
- Signal that we accepted/connected a socket
[IP]
- Set the network mask and destination address in TCPGetInterfaceData
svn path=/trunk/; revision=48686
- Use newly introduced macros and get rid of related functions
- Ignore alpha channels of solid brush color
svn path=/branches/reactos-yarotows/; revision=48680
- Create the visible region upon DC initilization propely.
This is a leftover from 48579 and 48660.
svn path=/branches/reactos-yarotows/; revision=48665
[CDFS]
- Several fixes for directory information query.
- Fixed a null access memory under certain circumstances.
- Added support for media ejection.
[FASTFAT]
- Fixed calls to CcMapData(), CcPinRead().
- Fixed an endless loop in FCB management under certain circumstances.
[NTOSKRNL]
- Fixed wrong prototype for IopParseDevice().
svn path=/trunk/; revision=48654
[NTOS]: Add support for protected freed nonpaged pool. This is controlled through MmProtectFreedNonPagedPool, which is initialized based on a registry value (see cmdata.c). This is not "Special Pool", but a useful debugging feature Windows implements that we now have too, since I noticed a lot of mj's work was with freed pool access.
NB. It's 3AM and I have not tested this, it should be off in trunk by default, you'll need to try turning it on and testing it. Hope it helps.
--This line, and those low, will be ignored--
M ntoskrnl/mm/ARM3/pagfault.c
M ntoskrnl/mm/ARM3/pool.c
M include/reactos/mc/bugcodes.mc
svn path=/trunk/; revision=48649
- Working with Pierre Schweitzer for yet another NonPaged Pool corruption fix. When copying VolumeLabel the VolumeLabelLength is in Unicode, so theres no need to mulitply it by size of WCHAR.
svn path=/trunk/; revision=48646
Modified version of r48640:
- update the NodeHint to the root node when deleting a node
- remove this code from MmCleanProcessAddressSpace
svn path=/trunk/; revision=48642
- When a node is removed, check the NodeHint of the table to see if it matches the one being removed. If so update the NodeHint to the PreviousNode. FIxes VAD corruption messages.
svn path=/trunk/; revision=48640
- Mouse messages can be sent before the desktop is initialized. Check for this and return false if its not. FIxes assert when moving mouse before desktop is up.
svn path=/trunk/; revision=48636
- Fix a check when queuing the mouse packet. Check that the buffer size (MouseInBuffer) is not greater or equal to MouseDataQueueSize. Fixes a NonPagedPool corruption that occurs when the mouse is moved before the desktop window is up and running.
svn path=/trunk/; revision=48635
- When deleting a Process remove the Process from the MmProcessList. Fixes random NonPaged Pool corruptions. Thanks aicom for assistance.
svn path=/trunk/; revision=48632
- Acquire and Release RundownProtection on the Parent Pocess not the newly created Pcess when setting the SectionObject.
svn path=/trunk/; revision=48631
- Rework EngSetPointerShape, to first allocate the neccessary surfaces, before deleting the old ones. Also check in IntShowMousePointer if a saving surface is present. This way a failure to allocate a surface will not result in a crash, but keep the old mouse pointer.
See issue #5402 for more details.
svn path=/trunk/; revision=48630
- Only tell the caller how much we sent/received if it completed successfully
- Set SO_DONTROUTE on accepted sockets too
- Disable the core routing code
- Make our MSS calculation much better by sharing the existing code
svn path=/trunk/; revision=48628
- Fix to PpSetCustomTargetEvent(), not to make caller wait forever in case it provided an event it waits for
- Patch by Pierre Schweitzer
svn path=/trunk/; revision=48626
- Prevent multiple wakeups for the same event which caused nasty problems for the SEL_FIN event because we dereferenced our connection context 3 times which not only caused the connection endpoint to be freed while holding its spin lock but made the reference count negative
[TCPIP]
- Disassociate the address file from the connection endpoint before dereferencing/closing it to avoid a double dereference of the address file (not as harmful in this case as in the connection endpoint case)
[IP]
- Dereference the connection endpoint again if it was associated with an address file as the connection endpoint to fix a reference leak
svn path=/trunk/; revision=48624
Add bugs_regtest. This can be used to create testcases / regression tests for already fixed bugs. I added a first test for bug 3481
svn path=/trunk/; revision=48615
- Rewrite MiFindEmptyAddressRangeDownTree. The old implementation's "most awesome loop" duplicated both the initialization and the interation steps. It was also overcomplicated. The new implementation additionally returns the parent for the following table insertion, so this doesnt need to be done in an extra search. The return value is changed from NTSTATUS to TABLE_SEARCH_RESULT
- Modify MiInsertNode to accept a parent and TABLE_SEARCH_RESULT instead of searching for a free location.
- Modify MiCreatePebOrTeb to make use of the new features
- Handle failed allocation of the PEB/TEB
- Fixes a failed assertion that Olaf got
- I tested this code quite some time and no problems were found
svn path=/trunk/; revision=48606
Move the allocation of the vis region of the DC to a later position, so that all mandatory fields are initialized before we try to delete the DC in failure case. Fixes yet another possible crash.
svn path=/trunk/; revision=48604
- Read the IP information from the interface key inside the Tcpip service key (confirmed on XP)
- Fix a logic error in my code (no idea how I missed it)
- Restores static IP functionality (still waiting on janderwald to fix netcfgx's DNS value writing)
svn path=/trunk/; revision=48602
- GetTextExtentExPointI and GetTextExtentPointI take an array of glyph indices, not characters. Pass a flag GTEF_INDICES (This is a reactos specific definition and not exactly like on Windows XP, but the real names/values are undocumented and this is the easiest way.) to NtGdiGetTextExtent/NtGdiGetTextExtentExW and handle this flag in TextIntGetTextExtentPoint to account for this.
Fixes bug 3481
svn path=/trunk/; revision=48597
- When doing a cleanup for a DC, check, if the default brushes are set, before dereferencing them. Fixes a possible kernel mode crash.
- Remove some obsolete casts
svn path=/trunk/; revision=48595
- Write the DNS servers in a REG_MULTI_SZ value
[IPHLPAPI]
- Rewrite the registry reading code
- Use HeapFree to free memory from the allocated from heap
svn path=/trunk/; revision=48593
Use the object type index, not the shifted full object type to decide what to do with an object in NtGdiDeleteObjectApp. Fixes leaking derived types such as pens.
svn path=/trunk/; revision=48582
- Allocate the DCs prgnVis in DC_AllocDC, instead of "on demand" in GdiSelectVisRgn and properly handle failure case. This fixes a possible crash, when running out of gdi handles.
svn path=/trunk/; revision=48579
- co_IntTranslateMouseMessage: properly initialize *HitTest and only send WM_NCHITTEST when the message is going to be removed
- co_IntPeekMessage: Prevent possible use of uninitialized HitTest by ProcessMouseMessage()
- Patch by Jan Roeloffzen [jroeloffzen at hotmail dot com]
- Fixes bug 2139
svn path=/trunk/; revision=48576
- The trailing NULL is NOT included in the string length
- IopNotifyPlugPlayNotification needs a pointer to an actual GUID not a UNICODE_STRING
- The Power Manager can now see ACPI power devices again
- ROS will now do a graceful shutdown and power off if the power button is pressed and ACPI is enabled
svn path=/trunk/; revision=48574
- Do all of the work inside the DPC so we don't have IRQL issues when entering the memory manager
- This is a slight hack but we can be assured that data won't be over 24 bits unless somebody wants to push the power/sleep button over 16 million times
svn path=/trunk/; revision=48573
- Shutdown the system if we receive a SYS_BUTTON_POWER event
- Register for GUID_DEVICE_LID arrival events so we can receive lid events
svn path=/trunk/; revision=48572
- Add a special case to IopInitializeDevice for raw devices
- Call IopInitializeDevice to set up our device node and ready it to start
- Fixes assertions hit by ACPI and PCIX
svn path=/trunk/; revision=48570
- Disable routing because oskit needs to let our code do that
- Comment out the ACK hack and restore the default BSD behavior
svn path=/trunk/; revision=48569
- For SetTimer nIDEvent can be 0 in which case return 1. Zero still needs to be used for nIDEvent when killing the timer. Fixes bug 5553.
- Modify windowless timers to use IDEvent values decrementing from the max number of windowless timers vice incrementing from 1. Done to match windows behavior.
svn path=/trunk/; revision=48568
Fix handling of next instruction in kdbg.
Patch by Daniel Zimmermann, modified by Aleksey Bragin
See issue #4457 for more details.
svn path=/trunk/; revision=48566
- Implement support for /BURNMEMORY option.
- Don't stop boot on bad memory type
Patch by Jay Smith, modified by Aleksey, even more modified by me.
See issue #4957 for more details.
svn path=/trunk/; revision=48565
- Allocate memory for the TCP table properly
- Only netstat -a should show UDP connections
- Patch by Jan Roeloffzen [jroeloffzen at hotmail dot com]
svn path=/trunk/; revision=48564
- Copy our TCP table into the caller's buffer if we actually get one (not yet!)
- Return ERROR_NO_DATA if we fail to get anything from TCP/IP
- Fixes bug #4185
svn path=/trunk/; revision=48563
- Initialize the Parent member of the new Vad to NULL. This also initializes the Balance to 0 aka RtlBalancedAvlTree
Should fix the failed assertion that randomly occurs.
svn path=/trunk/; revision=48562
- Fix a major bug in socket closure. Prior to this, a socket with pending IRPs that could not be satisfied when the socket was closed would be destroyed without completing the pending requests. Now, we check all of our IRP queues if we get a SEL_FIN signal and kill all the requests that cannot be satisfied immediately.
- Maybe it's just me but Firefox 2 seems much more responsive after this fix (like actually usable!)
svn path=/trunk/; revision=48561
Make our FAT driver PNP aware.
On PNP requests it should handle, it will return STATUS_NOT_IMPLEMENTED.
On the others, it will pass them to lower driver.
This is the first step outside the kernel into getting IoGetRelatedTargetDevice (and so notifications) working.
It doesn't work at the moment, as class2 doesn't handle PNP.
[NTOSKRNL]
Some fixes to IRP cancelation process:
- Renamed IopRemoveThreadIrp() to IopDisassociateThreadIrp() to match Windows 2k3
- Made dead IRP global, to make its debug easier.
- IopDisassociateThreadIrp(), Handle dead IRP at dispatch level, using IoCompletionLock.
- IopDisassociateThreadIrp(), Use the proper error code to write the entry to logs.
- IoCancelIrp(), removed non needed ASSERT, which is even not present on Windows, removed corresponding var as well.
- IoCancelIrp(), fixed parameters to KeBugCheckEx() call.
- IoCancelThreadIo() is pageable.
- IoCancelThreadIo() under Windows isn't using given thread, but using current. Do the same here.
All that stuff doesn't fix bug #5550, it comes from outside.
Patch by Pierre Schweitzer, modified by me to make it compile. If it breaks anything, don't blame me!
svn path=/trunk/; revision=48560
- Simplified IopGetRelatedTargetDevice implementation
- Added notification in case of success in NtSetVolumeInformationFile()
Patch by Pierre Schweitzer
svn path=/trunk/; revision=48559
- Fixed IoGetRequestorProcess, IoGetRequestorProcessId, IoGetRequestorSessionId
- Pass user buffer in NtNotifyChangeDirectoryFile
- Fixed magic value in IoGetPagingIoPriority
Patch by Pierre Schweitzer
svn path=/trunk/; revision=48557
- Remove IntEngExtEscape stub. This function is completely useless. If the driver doesn't provide a DrvEscape, the function should simply fail and must return 0, not -1.
- If a NULL surface is passed, pass on NULL pso to the driver function
See issue #4563 for more details.
svn path=/trunk/; revision=48555
- Revert 48546. The code was correct, and there is more of same code in other places which firstly cancels the IRP and then moves to the next entry. The actual bug is somewhere else.
See issue #5550 for more details.
svn path=/trunk/; revision=48551
- Debug helpers: PciDebugPrintIoResReqList, PciDebugPrintIoResource, PciDebugCmResourceTypeToText
Now hit assert Assertion '(DeviceNode->Flags & DNF_ADDED)' failed at ntoskrnl/io/pnpmgr/pnpmgr.c line 201, too night to debug, maybe tomorow
svn path=/trunk/; revision=48550
- Stub support for PnP IRP to PDO: IRP_MN_QUERY_RESOURCE_REQUIREMENTS (PciQueryRequirements), IRP_MN_QUERY_RESOURCES(PciQueryResources)
- Add support for PnP IRP to FDO: IRP_MN_QUERY_CAPABILITIES (handle in PciFdoIrpQueryDeviceCapabilities)
- Build device capability UI number (PciDetermineSlotNumber), use PIR$ (seem support broken, need to check loader) or device property for bus not root
- Use parent attachee device and this PDO for build device/system wake states, latency, device/system power mappings
- PCI-ID manage support: PciInitIdBuffer, PciIdPrintf, PciIdPrintfAppend
- Debug helper: PciDebugDumpQueryCapabilities
- Thanks richard for advise + beer
PCI-X driver now pass 10000 codes lines!
svn path=/trunk/; revision=48548
- Move to the next entry in the thread IRP list before calling IoCancelIrp because if everything works as expected and IoCompleteRequest is called, we could end up with the IRP ripped out from under us before can move to the next element
- See issue #5550 for details.
svn path=/trunk/; revision=48546
- Create a temporary variable and pass that to WSAIoctl for the bytes returned value instead of passing argp and corrupting the value we just retrieved
svn path=/trunk/; revision=48545
- NtInitializeRegistry expects not just CM_BOOT_FLAG_ACCEPTED, but a number of the accepted control set to be added to it. After fixing this, NtInitializeRegistry won't fail with STATUS_INVALID_PARAMETER (someone should check return status for errors...) anymore. As a result lazy flushing is enabled.
svn path=/trunk/; revision=48536
- Implement asynchronous and delayed close operations.
- Fix a logical bug in FatiClose code, which led to always closing the file object (and freeing respective FCB/VCB/CCB), and then checking flags and queuing a delayed close. Instead, it should only try to close if it's not marked as a delayed close.
- Support stuff added (queues, mutex for closing lists, etc).
- Misc cleanup, debug silencing.
svn path=/trunk/; revision=48525
- Update lpcbBytesReturned when FIONREAD is called
- Fix the value inside lpErrno when XxxSocketInformation() fails
- Pass the unrecognized IOCTLs to the winsock helper (no behavior change for this yet because wshtcpip's WSHIoctl is unimplemented)
svn path=/trunk/; revision=48522
- Plug in a commented out notification call in case of cleanup.
- Implement a case of device info query.
- Implement lock control.
svn path=/trunk/; revision=48518
Stop using the new paged pool code, before ExpLoadInitialProcess is called. For so far unknown reasons, it causes evil things to happen. Fixes "Assertion NewSize < pool->UserSize failed"
See issue #5551 for more details.
svn path=/trunk/; revision=48517
Pierre Schweitzer
- Fix volume opening on FAT volume. Commented out a directory check as it doesn't match realized tests, in spite of what's in WDK.
svn path=/trunk/; revision=48513
- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[DDK]
- Update XDK generated headers to reflect the recent changes.
- Update some header guards.
- Add some missing new lines at the end of files.
- Fix PUSB_DEVICE_HANDLE guard.
- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[PSDK]
- Update some header guards.
- Add missing new line at the end of driverspecs.h
[NDIS]
- Update the ndis header guard.
svn path=/trunk/; revision=48511
- Implement opening an existing DCB.
- Add a bunch of useful macros and helper functions and use them throughout the code.
- Implement in-memory setendoffile set information class. On-disk to be done.
- Implement user fs ctrl wrapper with stubs.
- Fill up QueryVolumeInfo with classes it should handle. Silence up a warning about classes it should reject.
svn path=/trunk/; revision=48498
- Move several headers to PSDK where they belong.
- Add _ANONYMOUS_UNION.
- De-duplicate __GNU_EXTENSION definition from several headers.
- Remove semicolons after the closing bracket of extern "C"
- Add a missing one in ioaccess.h
- Apply a consistent formatting.
[PSDK]
- De-duplicate __GNU_EXTENSION definition from several headers.
- Add missing extern "C" opening bracket in ddkernel.h and remove the semicolon from the closing one.
- Add __GNU_EXTENSION definition to ddraw.h and remove the semicolon after the closing bracket of extern "C"
- Add missing extern "C" closing bracket in ddrawi.h
- Remove semicolons after the closing brackets of extern "C" in dinput.h, dmemmgr.h and sti.h
- Apply a consistent formatting.
[DXSDK]
- Move ddraw.h to PSDK.
svn path=/trunk/; revision=48497
- Set the SO_BROADCAST option to 1 before we send data to the broadcast address so we don't get stonewalled by mswsock
- DHCP is now compatible with mswsock_new
svn path=/trunk/; revision=48493
PciScanBus second pass enabled: PciProcessBus, most stubs now until VGA/ISA system tested
PciClassifyDeviceType implement as helper function
PCI Enumeration 100% complete!
svn path=/trunk/; revision=48492
- Check the return value of WSPSelect instead of the error number because the error number doesn't have to be initialized if the function doesn't return SOCKET_ERROR
svn path=/trunk/; revision=48491
- I watch and I learn : / has precedence over *=.
- Also make sure that we divide what we want to divide with the appropriate parentheses.
- Do not take care of alpha in other depths than 32 bpp.
svn path=/branches/reactos-yarotows/; revision=48488
- Implement close and cleanup infrastructure.
- Add necessary FCB and VCB counters.
- Add missing op and file locks initialization.
- A lot of small cleanups, improvements, and other things, bringing fastfat_new much closer to a minimally working state.
svn path=/trunk/; revision=48487
- Implemented CdfsIsNameLegalDOS8Dot3 and use it to check filenames. It avoids
calling Rtl* functions that need NLS. (Modified merge of 35501).
See issue #2404 for more details.
svn path=/trunk/; revision=48486
Fix a bug when premultiplying the color values: The / operator has a higher precedence than *=, so "x *= byte / 0xff", is always 0 unless byte == 0xff.
svn path=/branches/reactos-yarotows/; revision=48485
- Use messages instead of events to notify the update threads
- Fixes a handle leak
- Fix some typos
- Patch by Carlo Bramini (carlo.bramix at libero dot it)
See issue #3104 for more details.
svn path=/trunk/; revision=48484
- work directly with bitmap bits when alpha blending icons. This is permitted, those are API bitmaps.
- Do not create a stretched copy of source surface in EngAlphaBlend, handle stretching in DIB functions.
- Do so.
- Simplify DIB alpha blending for 24 and 32 bpp, implement generic alpha blend support for other depth.
svn path=/branches/reactos-yarotows/; revision=48483
[SHLWAPI] Fix some comments (As usual: "should be sent to wine")
Patch by Rafal Harabień, <rafalh1992 AT o2 DOT pl>
See issue #5557 for more details.
svn path=/trunk/; revision=48482
Make functions in ntstrsafe.h static, so they can be used in more than one file. Maybe that encourages people using it instead of unsafe and banned apis.
svn path=/trunk/; revision=48481
As an additional feature on top of the "allow non-existing functions to be exported" "feature", because rbuild generates and links STDCALL function names without the proper decoration (vs. enforcing decoration at linking, but only removing it at export-time), this allows the definition (as an export) of a STDCALL function that is completely different from the actual function itself.
For example, the 5-parameter Foo function is normally Foo@20, while the 3-parameter Foo function woudl be Foo@12. Linking one against the other would fail (say, 2 parameters were added to Foo in a newer version). However, under RBUILD, both of these would appear as "Foo", and the linker/compiler would happilly connect the caller of Foo@3 (that has pushed 3 parameters) to the receiving side of Foo@5 (that is about to pop 5 parameters).
Even -if- decorations WERE to be applied, Foo@12 would STILL succeed, because of the first feature, which would enable the export of Foo@12 even though no such function exist.
In a further, bizare, twist of fate, the behavior of this RBUILD "feature", when the target function is not found, is to link the exported DLL TO ITSELF.
Therefore, one can see how, previously to this patch, kernel32.dll would import a dozen functions from itself (all the non-existing functions).
To really seal the deal, the behavior of exported functions used by kernel32, but that are actually forwarded to another DLL deserves a special mention.
GetLastError, for example, merely forwards to RtlGetLastWin32Error, so it is normal behavior to use a #define in the C code so that all internal calls to the function are routed correctly.
This did not happen, so instead, kernel32 tried importing/linking/exporting GetLastError, but this symbol is not found in the binary, because it is only a forwarder.
This caused kernel32 to import from itself (the behavior when an exported symbol is not found). When importing from itself, the loader would now find the _forwarded_ for GetLastError, and correctly link with ntdll.
What should be a one-liner of assembly (inline TEB access) thus became a triple-call indirection (GetLastError@0->StubLastError@0->__impGetLastError@0->__impRtlGetLastWin32Error->RtlGetLastWin32Error.
While analyzing these issues, we also realized a strange macro SetLastErrorByStatus that manually tried to perform what there already exists a function for: RtlSetLastNtStatusFromWin32Error.
And, in an exciting coda, we also realized that our Server 2003 Kernel32 exports more than a dozen Windows 95 APIs, through an auto-stub generation mechanism within winebuild, that gets linked as an object behind the scenes.
[KERNEL32]: Removed all Win95 exports, cleaned up exports.
[KERNEL32]: Fixed up set/get error macros by making them inline and/or calling the correct ntdll function.
[KERNEL32]: Removed bizare calls to Wine-internal/specific APIs from our core Win32 DLL.
[KERNEL32]: Wrote stubs for all functions which should be exported, and set the correct number of parameters for them.
[KERNEL32]: Kernel32 is smaller, loads faster, does not export Windows 95 functions, does not export non-existing functions, and does not import from itself anymore.
Note: This is one of the many failings of RBUILD the CMAKE system has helped us discover. I believe these issues are serious enough to warrant an immediate sync with trunk, but rest assured, there are many more completely broken, infinitely-regressing things that we discovered while switching to CMAKE.
svn path=/trunk/; revision=48475
- Remove "implementations" of __lc_collate_cp, __lc_handle and __lc_codepage. These are not functions, but varuables, implemented as MSVCRT_*
- add ___lc_codepage_func and ___lc_handle_func taken from wine
- Fix msvcrt spec file
- Fixes compilation with gcc 4.5.1
svn path=/trunk/; revision=48473
- Did you know that we should ignore alpha channel of pattern in ROPs? You didn't, I didn't, now we do.
[WIN32K]
- Use BGR palette as default for 24 and 32 bpp bitmaps.
svn path=/branches/reactos-yarotows/; revision=48470
- MAXIMUM_VOLUME_LABEL_LENGTH is in bytes, not in characters. Fix struct definition and access beyond the buffer. Spotted by Carlo Bramini.
- Trim trailing spaces from the volume label name, instead of stopping at the first encountered space. Fix by Carlo Bramini.
See issue #5505 for more details.
svn path=/trunk/; revision=48468
When creating a shortcut icon and we have 32 bpp, use GdiAlphaBlend to create the final bitmap. This is neccessary, since we want to support alpha channels and those are destroyed when using SRCPAINT or any similar ROPs on the alpha bitmap (not a bug, Windows works like that, too). We could use MaskBlt, if it would work correctly, but on reactos it destroys the alpha channel as well (bug!), it's also most likely slower then the current solution.
Fixes broken overlay icons.
See issue #5455 for more details.
svn path=/trunk/; revision=48463
- Fixed FsRtlIsNameInExpression to make it properly handle * in expressions
- Fix formatting
- Patch by Pierre Schweitzer
- Fixes everything
See issue #5541 for more details.
svn path=/trunk/; revision=48461
- Sync lcformat.c to Wine-1.3. This fixes (a number of potential) problems introduced by new nls data files being synced recently and led to crashes on locales having different months genitives. Original issue confirmed by Sergey Gusev <evilslon@mail.ru> and Igor Paliychuk.
svn path=/trunk/; revision=48433
Implement a proper version of _assert. It nows shows a message box with the details and let's the user choose to either abort, debug or ignore the assertion.
See bug 5486, bug 5507, bug 5511
svn path=/trunk/; revision=48432
- Do not cast RGBQUAD to PALETTEENTRY or the other way around, you idiot.
- Report success even when we're asked fo 0 ScanLines in NtGdiGetDIBitsInternal.
svn path=/branches/reactos-yarotows/; revision=48417
- NtGdiGetBitmapBits : Bits we're given are 16 bits aligned.
- NtGdiGetDIBitsInternal : we must not stretch, for this there is NtGdiStretchDIBitsInternal. Use lower level functions to do the work, there is no need to create HDCs etc...
Now icons are back.
svn path=/branches/reactos-yarotows/; revision=48416
- Use correct offset in UserLoadImage, create the bitmap using display DC.
- BITMAP_GetObject : Report BI_BITFIELDS compression when we should.
- Use a 0 compatible DC when none is given in NtGdiCreateDIBitmapInternal.
This fixes some wine tests. Enjoy.
svn path=/branches/reactos-yarotows/; revision=48415
- Apply a better fix for correctly report 16 bits alignment for DDBs, and keep them 32 bits aligned as it should be.
- Reapply Pigglesworth patch, which was correct since mine was not.
Dedicated to tkreuzer, PigglesWorth and lassy, the three guys still on IRC to watch my commits at 3:30 AM.
svn path=/branches/reactos-yarotows/; revision=48408
- DDB are 16 bits aligned.
- Reset hdc field of the unselected bitmap.
- Lock it too, so it's not messed with when we unselect it.
- Move Pattern creation of IntGdiCreateDIBBrush to DIB_CreateDIBSection.
svn path=/branches/reactos-yarotows/; revision=48406
- define REGISTERCALL in order to replace __attribute__((regparm(3))) and fix compilation with msvc. It was used only as an optimization so it is safe to be defined as FASTCALL for msvc. For gcc it is still defined as __attribute__((regparm(3)))
svn path=/trunk/; revision=48397
- Revert unwanted change and get back to PAL_BGR for default DIB palette mode.
Now yarotows looks like an OS again.
svn path=/branches/reactos-yarotows/; revision=48390
- Finally get rid of ProbeAndConvertToBitmapV5Info
- Rewrite renderBITMAPfromDIB, and a good bunch of DIB related functions accordingly.
- Rewrite BITMAP_CopyBitmap into something simpler.
- Use already existing DIB functions in IntGdiCreateDIBBrush
- Use DIB sections in NtGdiStretchDIBitsInternal and NtGdiSetDIBits.
- Use Bitmap hdc for NtGdiGetDIBitsInternal if there is one.
svn path=/branches/reactos-yarotows/; revision=48389
- Update Wine-specific headers to Wine-1.3.
- Remove unneeded 16 bit header, and add a bit of stuff into another legacy header.
- Indicate in config.h that there is a freetype library present.
svn path=/trunk/; revision=48388
- Get back to old/compatible way of declaring dummy unions and structs for IMAGE_RESOURCE_DIRECTORY_ENTRY. Also, second nameless structure is called DUMMYSTRUCTNAME3 to be compatible with Wine's code which, for some reason, expects WORD Id wrapped into yet another struct, depending on endiannes.
svn path=/trunk/; revision=48384
- Patch by Carlo Bramini reviewed by lassy:
The CF must be tested when reading time because the legacy DS12x87
chip shows a condition where it's updating its time registers and if it's the
case then the call should be retried later. Now the time is valid when both CF flags for date and time are good at the same time.
It's better to send the correct value of CF with the proper field to the REGS structure instead of hoping that the flag won't be changed by compiled code.
In the Int386() function I did the fix for acquiring the status flags to send to the software interrupt.
I also think it is also a good idea to always clear the direction flag before
doing movsb/movsw/movsd in this function. Since we are working with DOS stuff,
the state of the direction register could be unknown, who knows what happens
after those INT opcodes. Afterall I don't think that adding these two "cld"
would be a big problem.
See issue #2786 for more details.
svn path=/trunk/; revision=48383
- Move all includes into a common header file.
- Create a (still incomplete) well-known-sid lookup table and use it in LsarLookupSids.
- Add missing file headers.
svn path=/trunk/; revision=48378
- keep the hacky declaration of SHANDLE_PTR and make it work with msvc as well
- Make BEGIN_MSG_MAP compatible with msvc
svn path=/trunk/; revision=48376
- Cast Colors to RGBQUAD in EngCreateBitmap, since that's what they are.
- Copy selected palette of the DC when creating a DIBSection with DIB_PAL_COLORS.
- Do not try to get Colors in NtGdiGetDIBitsInternal when bpp == 0, this doesn't make any sense.
- Get rid of SURFACE::dsBitfields and SURFACE::biClrUsed.
- Use RGB as default palette mod when creating the DIB Palette.
svn path=/branches/reactos-yarotows/; revision=48369
- Make the caption the same as the app title so that bring to focus can work as expected in Slovak and other languages as well. Add a note for translators.
See issue #5533 for more details.
svn path=/trunk/; revision=48367
- rewrite UserLoadImage so that it uses information from the BITMAPFILEHEADER and probes the right buffer.
svn path=/branches/reactos-yarotows/; revision=48364
- Rewrite NtGdiGetDIBitsInternal, with WINE as a reference.
- Get back DIB Section creation to classic BITMAPINFO.
This si the beginnig of the end for all this BITMAPV5INFO stuff.
It is horrible, BITMAPCOREINFO->BITMAPINFO is already made in user mode, and V4 and V5 features are not used so often.
svn path=/branches/reactos-yarotows/; revision=48359
-define SHANDLE_PTR
[browseui]
-do not define SHANDLE_PTR locally. Using ms psdk isn't the same with compiling with msvc
svn path=/trunk/; revision=48355
More support ICH0/1/2/3/4 hub
Add all PCI2PCI bridge limit/current resource codes (PPBridge_*), now is BAR setup okay, and Device_* must be implement
Support ISA+VGA legacy decode, 20+64-bit decode, ROM BAR, prefetch BAR
svn path=/trunk/; revision=48298
- Fix several issues with msvc in ntoskrnl
- Add ATTRIB_NORETURN definition which will be used by function pointers because msvc doesn't like DECLSPEC_NORETURN in function pointers
svn path=/trunk/; revision=48287
Merge r36443 from amd64 branch:
Remove references to Infp Functions that collide with inflib names, call the actual functions instead of making small functions that shared the same parameters and just called into inflib anyway, with no changes whatsoever.
Make InfpGetIntField's 3rd parameter an INT* (Samuel Serapion)
svn path=/trunk/; revision=48251
- Fix MiAddressToPti and implement MiAddressToPxi for amd64
- Replace #error with DPRINT and ASSERT(FALSE) in MiInitializeLargePageSupport
- Implement amd64 specific MmCreateProcessAddressSpace
- Add MmProtectToPteMask for amd64 (copied from x86)
- Remove amd64 version of MmInitializeHandBuiltProcess
svn path=/trunk/; revision=48249
- More BITMAPINFO->BITMAPV5INFO
- Do not use PAL_BITFIELDS when creating the DIB palette and we know that it's RGB
- PSEH-ize NtGdiCreateDIBSection
svn path=/branches/reactos-yarotows/; revision=48248
[NTOS]: Sometimes it seems we hit some bad VADs due to bugs? in the AVL tree implementation. I'm going on vacation for a month and can't look at this, so I've hacked the code to ignore such VADs for now, in the interest of fixing the winetest regression.
svn path=/trunk/; revision=48235
[NTOS]: Use ARM3 paged pool up until smss.exe starts. There's a last bug in the expansion code before we can get rid of the old paged pool.
svn path=/trunk/; revision=48234
- Move NDIS_HARDWARE_STATUS, GEN_GET_TIME_CAPS, GEN_GET_NETCARD_TIME, NDIS_MEDIA_STATE, NDIS_GUID, NDIS_PM_PACKET_PATTERN, NETWORK_ADDRESS, NETWORK_ADDRESS_LIST, TRANSPORT_HEADER_OFFSET and NDIS_CO_LINK_SPEED from ndis.h to ntddndis.h (where they should belong).
- typedef NDIS_STATUS for ntddndis.h
- Group some related definitions in ndis.h
- Some _ANONYMOUS_* -> __MINGW_EXTENSION conversions.
- Guard some definitions against NDIS_LEGACY_DRIVER.
- Add some missing definitions.
- NDIS_MINIPORT_BLOCK : PVOID Signature; -> NDIS_OBJECT_HEADER Header;
- Add missing xfilter.h inclusion.
- Add some missing function declarations.
- Convert some function declarations into macros.
- Guard some definitions against NDIS_LEGACY_MINIPORT.
svn path=/trunk/; revision=48229
- Add KiGetLinkedTrapFrame for amd64
- Add MiAddressToPti
- Fix MmCreateProcessAddressSpace, MmInitializeHandBuiltProcess prototype (ULONG -> ULONG_PTR)
- #if out some C_ASSERTs for other architectures than x86
- #define InitializeSListHead to RtlInitializeSListHead on amd64
- Don't implement MiSyncARM3WithROS on amd64
- Implement RtlPcToFileHeader, RtlpGetStackLimits
svn path=/trunk/; revision=48219
- Create the DhcpEnabled value in the registry
[TCPIP]
- Apply the static IP address configuration data
[DHCPCSVC]
- Remove the static IP address code
svn path=/trunk/; revision=48215
- Verify that each adapter has been initialized before passing it to the protocol's BindAdapter function
- Also verify that each adapter has not already been bound to the protocol
- Miniport drivers can now function without a reboot (needed to use 3rd-party NIC drivers on the live CD)
svn path=/trunk/; revision=48212
- Guard several definitions against NDIS_SUPPORT_60_COMPATIBLE_API.
- __GNU_EXTENSION -> __MINGW_EXTENSION conversions.
- Group some related definitions.
- Update NDIS_RW_LOCK.
- Improve NDIS_TIMER_FUNCTION.
- Add several missing Ndis* function declarations.
- Guard several definitions against NDIS_LEGACY_DRIVER and NDIS_LEGACY_MINIPORT.
- Convert some function declarations into macros.
svn path=/trunk/; revision=48211
- Convert NDIS_ERROR_CODE from a typedef to a define.
- Add some missing NDIS_STATUS_* definitions.
- Some _ANONYMOUS_UNION/_ANONYMOUS_STRUCT/__GNU_EXTENSION -> __MINGW_EXTENSION conversions.
- Update NDIS_REQUEST_TYPE and NDIS_PER_PACKET_INFO.
- Guard several definitions against NDIS_LEGACY_DRIVER.
- Improve NDIS_REQUEST.
- Add missing CO_ADDRESS_FAMILY_INFINIBAND, Ndis{Set,Get}PacketCancelId, NDIS_PACKET_{FIRST,LAST}_NDIS_BUFFER and NDIS_PACKET_VALID_COUNTS.
- Group related definitions.
- Update several Ndis* function declarations.
- Add missing NdisInterlocked{Push,Pop}EntryList and NdisGetCurrentSystemTime macros.
svn path=/trunk/; revision=48205
[NTOS]: Also stop creating a memory area for the illegal user-mode parts of address space.
[NTOS]: Instead, mark the area between MM_HIGHEST_VAD_ADDRESS and MM_HIGHEST_USER_ADDRESS as being ARM3 as well: this way, ARM3 will get the illegal access (and fault), and it will also get the shared user data page access.
[NTOS]: With the previous commit, ARM3 knows how to handle the shared user data page access, and does so succesfully. End result: two more MAREA types have been removed, and the address space setup code is now much simpler.
svn path=/trunk/; revision=48202
[NTOS]: Implement handling a very special case of "prototype PTE", the one used to map the shared user data for user-mode applications.
[NTOS]: MiCheckVirtualAddress detects this (Windows behavior) and returns a prototype PTE that's marked MM_READONLY. This is our MmSharedUserDataPte from before. This gets sent to MiDispatchFault which calls MiResolveProtoPteFault to handle it. In turn, this calls MiCompleteProtoPteFault. All these code paths have heavy ASSERTions to only allow them to be hit for the shared user data page, however, in the far distant future when prototype PTEs are used for section objects, we'll at least have the right checks and code flow (many of these ASSERTions will then have to be removed).
[NTOS]: The end result is that we also now have STATUS_PAGE_FAULT_TRANSITION, not just STATUS_PAGE_FAULT_DEMAND_ZERO, and that prototype PTEs are somewhat understood and some assumptions have been removed.
svn path=/trunk/; revision=48201
- Add a hack so we wait for TCP/IP to get ready and bind to adapters instead of failing immediately after the first probe
- Live CD and 2nd stage setup now have fully functional networking :)
svn path=/trunk/; revision=48195
[NTOS]: Allocate PEB and TEB using VADs! The user-mode fault handler seems to work fine, and I could find no regressions. This is the beginning of the end for MAREAs for VM allocations (they will remain for sections).
svn path=/trunk/; revision=48194
- Refresh the protocol bindings after a new miniport is added
- Adapters added after boot work now
- One step closer to Live CD networking
svn path=/trunk/; revision=48193
- Start the TCP/IP driver after we install a network adapter
- This fixes the major bug that blocks Live CD networking but we still have some DHCP issues (DHCP starts and fails before the NIC and TCP/IP has been installed) and some other adapter detection issues that I need to look into but this is a good first step
svn path=/trunk/; revision=48188
[NTOS]: Initialize MmTotalCommitLimit, MmTotalCommitLimitMaximum for consistency.
[NTOS]: Initialize and honor MmAllocationFragment value from registry, or from defaults.
[NTOS]: Initialize the system cache working set pushlock.
[NTOS]: Implement Mi(Un)Lock(Process)WorkingSet inlines to handle the various scenarios. Replace broken/hacky code that was in the system loader, fault handler, and VM deletion paths with the correct macros. No locking is done yet as ReactOS' MAREA implementation overloads the Vm field in EPROCESS, but the correct APC blockings and state transitions are done.
[NTOS]: Add another helper from symbols, MI_IS_PAGE_TABLE_OR_HYPER_ADDRESS, and use it instead of the math-by-hand.
[NTOS]: Add MM_IS_ANY_LOCK_HELD and MI_WS_OWNER to help out the new working let locking inlines (names taken from symbols).
[NTOS]: Add _1GB helper for large-memory checks. Also define _1KB as "1024u". The "u" makes GCC not complain when sizes reach >= 2GB, because GCC will interpret the integer literals as "signed", even if the final calculated value is in an unsigned variable.
svn path=/trunk/; revision=48187
- Remove getopt from mingw lib and put it into it's own static library
- change crt="dll" to crt="static" for the mingw startup libs, to avoid things like importing from itself.
svn path=/trunk/; revision=48181
- In the fat bootsector, don't clobber ax, it contains the number of first cluster of freeldr.sys and is used by the fathelper code.
- Fix jump code in the fathelper code, like in the other bootsectors.
- Now booting from fat partitions (looks like that's what sysreg does) works again. It's safe under the condition that the cluster size is at least 4352 bytes, which is true for harddisks of sizes bigger than 272MB. Booting from smaller fat disks, like floppy breaks when freeldr.sys gets fragmented, which should rarely happen.
svn path=/trunk/; revision=48177
[NTOS]: Knowing if this change causes issues will help later in determining regressions due to TEB/PEBs mapped as VADs by ARM3, and regressions simply due to the change in VA layout.
[NTOS]: When implemented, the VAD mapping for PEB/TEB will only use that ~1MB, which yes, will limit ReactOS processes to each have only 256 threads. That is obviously a temporary limitation, one I doubt we'll even hit, but I'm putting it out here so you know.
svn path=/trunk/; revision=48176
[NTOS]: MI_MAKE_HARDWARE_PTE becomes MI_MAKE_HARDWARE_PTE_KERNEL, since it assumed this. MI_MAKE_HARDWARE_PTE is now a "generic" you can use when you don't know what the PTE should be. It uses MiDetermineUserGlobalMask to set the right bits.
[NTOS]: Add two more helpers: MI_IS_PAGE_TABLE_ADDRESS and MI_IS_SYSTEM_PAGE_TABLE_ADDDRESS. One is in the symbols, the other I made up to make things clearer.
[NTOS]: MiResolveDemandZeroFault now knnows how to resolve user-demand-zero-faults.
[NTOS]: Implement MiZeroPfn to do the actual zeroing during user-demand-zero-faults (also later for VAD faults).
svn path=/trunk/; revision=48175
[RTL]: Uncouple generic table from AVL table implementation into its own avltable.c
[RTL]: Get rid of "Austin" and fix prototypes of AVL table functions.
[RTL]: Re-implement AVL table functions, sharing as much code as possible with the SPLAY tree implementation which is pretty decent. Lookup, insert, enumeration are implemented, but not delete.
[RTL]: Make large part of the RTL AVL package into its own "support" file that can work both with MMADDRESS_NODE and RTL_BALANCED_LINKS structures. The former is used by ARM3 for VADs.
[NTOS]: Implement basic VAD AVL tree routines (Insert, LookupEmpty, GetPrevious, CheckForConflict, Locate). This is enough to insert VADs, find a free address range, and locate a VAD by address. No delete yet
Thanks to Timo Kreuzer for some clever definitions, Knuth for his genius, several online C implementations for ideas, the HPI kernel blog for insight on how Windows does it, and others.
svn path=/trunk/; revision=48173
- Add a number of amd64 specific math functions
- add generic c versions of cos and sin
- Remove leading underscores from amd64 symbols
svn path=/trunk/; revision=48161
WRC doesn't like (x+x+x+2+x+x+x+x+x+x), use (x+x+x+x+x+x+x+x+x+2) instead. To figure out the reason is left as an exercise for the reader.
svn path=/trunk/; revision=48140
- reactos.diff was pushed upstream, so it's not needed anymore.
- Add a missing section.
- Include sect_attribs.h into tlssup.c
svn path=/trunk/; revision=48130
For amd64 builds, invoke wrc directly, instead of using gcc to preprocess the files. The reason is that newer gcc versions (like 4.5.0) don't support multiline continuation (backslash-newline) except for preprocessor directives, but that breaks wine resource strings. This might have to be done for i386 builds too, sooner or later.
svn path=/trunk/; revision=48128
Add a tag to NDR_SCONTEXT struct. MS headers don't have it, but gcc 4.5.x requires it, because without the tag, the struct would be from an unnamed namespace and can't be shared by different compilation units in C++. Yeah whatever...
svn path=/trunk/; revision=48125
Convert freeldr and setupldr to PE format.
Previously freeldr was a raw binary file, which made handling by the bootsector very easy, but it disqualified it from proper debugging with gdb using symbols. This is possible with having unstripped PE files.
As we don't have any space to do proper PE loading from the bootsector (I already had to trim some strings to get enough space for the new jump code), we need to make sure, that the PE file doesn't contain a .bss section, which is achieved by a linker script. The next thing is to make sure, we don't have any symbols in the output file, because they would make freeldr too big to be loaded into memory and they are useless anyway. On the other hand we like to keep the symbols in the .nostrip.sys files if requested, as this is the primary purpose. This is in theory not a problem, as we could simply strip the file at the end, but binutils throw a monkey wrench in our plans: both strip and objcopy disrespect the file alignment and create unaligned sections, that don't naturally match their VAs. This is solved by hacking rbuild to do invoke ld 2 times, one time without and one time with the symbols (if requested).
Now the bootsectors also got some changes: instead of jumping to the loading address (0x8000) they get the address of the entry point from the image optional header. This is slightly simplified, by assuming the NtHeader begins at offset 0xE0. This finally allows source level debugging of freeldr with gdb.
svn path=/trunk/; revision=48124
- rewrite UserDrawIconEx, taken from yarotows, with same small modifications.
Fixes a whole bunch of user32:cursoricon tests
svn path=/trunk/; revision=48123
LookupAccountSidA:
- Change variable prefixes according to the variable type.
- Initialize Unicode strings after the call to LookupAccountSidW because the string length is not set properly otherwise.
svn path=/trunk/; revision=48121
Merge r34770, r36475, r36990, r37019, r43852, r43952, r43954, r43979, r43981, r46868 from amd64 branch:
- Multiple ULONG / SIZE_T fixes
- Use UlongToHandle / HandleToUlong to convert between DWORD ProcessId and ClientId.UniqueProcess
- implement amd64 version of _dump_context
- Make IsConsoleHandle 64bit safe
- Update kernel32.pspec with a lot of Win7 (commented out) and some amd64 specific exports, add some more comments and fix sorting
- Implement amd64 version of BaseThreadStartupThunk and BaseProcessStartThunk
- Stub amd64 version of SwitchToFiber
- Implement amd64 version of BasepInitializeContext
svn path=/trunk/; revision=48119
PcipGetfunctionLimits support PCI_HACK_CRITICAL_DEVICE and PCI Debug Device by use IPI code (PciExecuteCriticalSystemRoutine implement)
PciConfigurators table define for Device, PCI-to-PCI (PP) Bridge plus CardBus Bridge but all configurator stub now
Configurator chain: Init (Massage) -> [WRITE INIT] (PciWriteLimitsAndRestoreCurrent) -> Restore -> SaveLimit -> SaveCurrent
Support ExpectedWritebackFailure
Fix bug in PciApplyHacks (found by me testing sir_richard code)
Now pass 7000 SLOC ^_^;~ Good night!
svn path=/trunk/; revision=48118
By sir_richard: [PCIX]: - Implement PciIsSlotPresentInParentMethod for ACPI query, and PcoDecodeEnable utility function.
- Implement PciConfigureIdeController based on WDHC Whitepaper "How Windows Switches a Controller to Native Mode". Check for PciEanbleNativeModeATA in registry, InitSafeBootMode, and call the ACPI driver to evaluate if NATA is present on the slot. Only configure the controller if both channels support native mode, as this is a Windows restriction.
- Implement PciApplyHacks for enumeration and resource update cases. In the first case, we handle legacy DEC Alpha Intel i82375 and i82378 PCI-to-(E)ISA bridges with invalid class codes. In the second, we configure IDE controllers for Native mode, except the OPTi Viper-M, which is known to cause issues. We also support cards with legacy VGA decodes by telling the arbiter to enable full access to the rangesm and finally we completely disable the decodes on Compaq PCI Hotplug Controllers (Revision 17) on PAE systems, as they have bugs handling 64-bit addresses. Finally, on resource updates, we apply a vendor-specific errata to the IBM 20H2999 PCI Docking Bridge (Hotplug) used on Thinkpad 600 Series laptops, and we attempt to avoid issues that can happen on certain devices that are plugged into an ICH1/2/3/4 Intel Hub when it has been configured to do subtractive decode. Full information on these workarounds can be seen in the comments. Finally, we also enable CardBUS devices for ACPI-compliant mode, by crossing out the LegacyBaseAddress in the CardBUS Type 2 PCI Configuration Header.
- Miscelleaneous code cleanups.
By eVb: More PciScanBus support, for debug PCI caps that driver use are dump, and detect nonBIOS configure device (spec is said that CacheLineSize != 0, LatencyTimer != 0 (on PCI-X, != 64)), if found NeedsHotPlugConfiguration to be set
By eVb: Support PCI_HACK_VIDEO_LEGACY_DECODE (call ario_ApplyBrokenVideoHack, but no arb support to do work)
svn path=/trunk/; revision=48116
Support PCI_HACK_NO_PM_CAPS, PCI_HACK_PRESERVE_COMMAND, PCI_HACK_DONT_DISABLE_DECOES
Add scan bus function to set power for PCI, for now to power up (PciSetPowerManagedDevicePowerState), with support for device that is critical/broken (PciCanDisableDecodes)
Check spec-correct with PciStallForPowerChange after define PciPowerDelayTable for D0<->D3 crossmatrix spec timings (add PciReadDeviceConfig for support)
If bad spec timing use PCI verifier support (PciVerifierRetrieveFailureData) + STATUS_DEVICE_PROTOCOL_ERROR
Add PciVerifierFailureTable with all failure type
Almost the time for resource discovery of BARs!
svn path=/trunk/; revision=48107
Also for interrupt line use HAL to get parent bus IRQ# if device connected (PciGetAdjustedInterruptLine)
For PCI debug HW PciIsDeviceOnDebugPath to detect, but have not real machine with this kind of device to test
Support PCI_HACK_NO_SUBSYSTEM and PCI_HACK_NO_SUBSYSTEM/REVISION_AFTER_D3 for when compareing
New config function required PciWriteDeviceConfig to update IRQ line from BIOS registry data
Save initial, current Command enables to PDO extension, interrupt data too
svn path=/trunk/; revision=48100
Fix bug in PciFindPdoByFunction should check device slot info too
Add more enumeration codes in PciScanBus to create PDO
PCI_HACK_FAKE_CLASS_CODE support
Build PDO extension, set ready for PnP manger, now 41 QDR returned
Add PCI/CardBus Bridge to list
Detect bridge/IDE controller with no power down support, hack for Intel 82375 PCI to EISA bridge for Alpha thanks to sir_richard
QUERY_ID is sent to PDOs now!
svn path=/trunk/; revision=48099
Do check for skipping some function (double decker ghost, Intel Alder SMP Pentium Pro machine, hacl flag, more), PciSkipThisfunction
Do check for PDO already exist for function (PciFindPdoByFunction)
Finish impement PciFindParentPciFdoExtension
svn path=/trunk/; revision=48098
Add PDO_EXTENSION structure and PCI_FUNCTION_RESOURCES, now delete #if0 in old code since PDO_EXTENSION is now exist defintion
Add ID Class/Subclass to description functions (PciGetDeviceDescriptionMessage, PciGetDescriptionMessage), use pciclass.mc from sir_richard
New debug: PciDebugDumpCommonConfig
Implement IRP_MN_QUERY_DEVICE_RELATIONS with PciFdoIrpQueryDeviceRelations and PciQueryDeviceRelations
Begin PciScanBus, now just dump all found device with no more work (0 QDR return)
svn path=/trunk/; revision=48091
Merge r40926 from amd64 branch:
return ERROR_INVALID_FUNCTION on amd64, not ERROR_INVALID_ACCESS from VideoPortEn/DisableInterrupt. Fixes compilation of videoprt for amd64.
svn path=/trunk/; revision=48088
Move #include <precomp.h> to the top, as precompiled headers must be the first thing that is included or it won't take advantage of being precompiled
svn path=/trunk/; revision=48082
Initialize MmDebugPte from MiDebugMapping variable instead of using MiAddressToPte for a constant initializer. This way the page can be set dynamically. Use MmDebugPte to determine if ready for mapping physical pages.
svn path=/trunk/; revision=48079
PciInitializeArbiterRanges implement to scan arbiter not yet construct since Arb library missing
Add PCI state machine (PciBeginStateTransition, PciCancelStateTransition, PciCommitStateTransition) andtransition array (PnpStateTransitionArray) to check if valid
Now IRP_MN_QUERY_DEVICE_RELATIONS sent to ROOT FDO means time to enumerate bus!
svn path=/trunk/; revision=48075
- Multiple ULONG/ULONG_PTR/SIZE_T issues
- Use SLIST_ENTRY instead of SINGLE_LIST_ENTRY with InterlockedPushEntrySList
- Use %p to print pointer sized values
svn path=/trunk/; revision=48073
- Properly initialize hVisRgn in CLIPPING_UpdateGCRegion
This fixes a whole bunch of "IntGdiCombineRgn requires hSrc2 != NULL for combine mode 1!", and probably some bugs.
Dedicated to encod3d.
svn path=/trunk/; revision=48042
- WINE creates an alpha bitmap on icon creation, we do it when drawing it, so we need to create a bitmap which holds alpha information.
- Add error handling to CreateIconIndirect.
svn path=/trunk/; revision=48041
- There is no exported "CopyCursor", it's a macro.
- There is no "NtUserCreateCursorIconHandle" function in win32k. Use correct functions to create a cursorIcon handle.
- Bring in WINE's CreateIconIndirect
[WIN32K]
- Dereference CursorIcon Object in NtUserCallOneParam
- Shared Icons need their bitmaps to be unowned
svn path=/trunk/; revision=48034
- exchange mask and color bitmaps if needed in CreateIconIndirect
[WIN32K]
- Simplify a bit UserDrawIconEx
svn path=/branches/reactos-yarotows/; revision=48026
- Update the catalog ID when we locate the matching provider
- mswsock from aicom-network-branch can successfully create sockets now
svn path=/trunk/; revision=48023
Add a new libpng 1.4.3 to main tree, linked dynamically, as libjpeg is, too.
Add libtiff 3.9.4, linked dynamically, too.
Enable both libs in wine/config.h which results in working png and tiff support in windowscodecs.dll
svn path=/trunk/; revision=48014
- Rewrite support of cursors, icons and bitmaps in user32.dll, based from WINE implementation.
One file to rule them all.
Now user32::cursoricon winetests don't crash anymore.
svn path=/trunk/; revision=48008
Merging some stuff from pierre-fsd/arty-newcc branches:
- Implemented FsRtlDissectDbcs(), FsRtlIsDbcsInExpression(), FsRtlIsFatDbcsLegal(), FsRtlIsHpfsDbcsLegal()
- Implemented FsRtlIsNameInExpressionPrivate()
- Rewritten FsRtlIsNameInExpression()
- Updated comments
About FsRtlIsNameInExpressionPrivate(), it comes with a fix there isn't in branch, which avoids reading string more than its own length, and this helps getting rid of a workaround later in code.
svn path=/trunk/; revision=48002
- Export LsaLookupPrivilegeName.
- Move mockup code from advapi32 to lsasrv (LsaLookupSids --> LsarLookupSids).
- Make LsaLookupSids call the server function LsarLookupSids.
svn path=/trunk/; revision=47996
Check PathName length before accessing it. This fixes ntdll_winetest file test BSOD. But the test crashes a bit farther.
svn path=/trunk/; revision=47981
http transport support commented out.
Remove unix functions that are no longer needed.
Comment out check in cpsf.c that caused 2nd stage dll registrations to fail.
All rpcrt4 tests no longer crash.
svn path=/trunk/; revision=47970
- Add call to DeviceHandleToUsbDevice for all Direct Call functions that pass DeviceHandle.
- Stop the processing of Asynchronous List after the Control Request has been processed by controller.
- Misc changes.
svn path=/trunk/; revision=47958
update kernel32 nls files to be able to build it with the new unicode tool.
convert the cmd rc files to utf-8 to fix building.
Apply Igor Paliychuk's Ukrainian translation Patch.
svn path=/trunk/; revision=47945
- Implement LookupPrivilegeNameW and LsaLookupPrivilegeName.
- Move lookup code from LookupPrivilegeNameW and LsarLookupPrivilegeValue into a separate file.
svn path=/trunk/; revision=47936
- Forgotten in r47924. Change name of BOOL parameter for UserSetCursorPos to better describe its purpose as done in c source.
svn path=/trunk/; revision=47927
- Implement FdoDispatchInternalDeviceControl and remove IrpStub as its no longer needed.
- Implement Direct Call RemoveUsbDevice.
- Implement URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE.
- Use the port parameter in ExecuteControlRequest.
- Windows now identifies my thumb drive as a mass storage device.
svn path=/trunk/; revision=47926
- Revert changes done in 47325 which partially broke mouse hooks.
- If the UserSetCursorPos is reached due to SetCursorPos, dont generate a mouse move message or call mouse hooks.
svn path=/trunk/; revision=47924
- Check if there is a silence buffer available when there is no audio mapping available
- ignore failure for allocation requirements
svn path=/trunk/; revision=47909
- Change percision of win32k timers to 0.5 miliseconds.
- Remove Destroy parameter from FindTimer as it is just odd and call RemoveTimer where needed.
- PostTimerMessages: No need to continue looping the remainder of the timers once the target timer has been found and message posted to message queue.
svn path=/trunk/; revision=47906
Fix a number of 64bit issues, add some comments where the code is not 64 bit safe. This module should be synced with wine, but this still causes a problem with Flash videos on FF2 (likely another timer problem)
svn path=/trunk/; revision=47900
- Discover adapters synchronously again until a bug (possibly a race condition) is fixed
- DHCP failure in certain situations is fixed now
svn path=/trunk/; revision=47899
PciGetHotPlugParameters work but no PCI HotPlug support on my machines, so cannot test ACPI data, that part stub now
Add PciFdoDispatchTable, PciFdoDispatchPnpTable, PciFdoDispatchPowerTable but all stub to PciIrpNotSupported however set correct IRP Dispatch Style for the IRPS
Arbiter support in PciInitializeARbiters done, but PciInterfaces array is NULL (stub) at moment
Add PCI_SIGNATURE, PCI_STATE, PCI_DISAPTCH_STYLE type, add PciInitializeState to begin the state support
Add structure for PCI_FDO_EXTENSION, PCI_SECONDARY_EXTENSION, PCI_INTERFACE, PCI_ARBITER_INSTANCE, PCI_DISPATCH_TABLE
PCI utility functions added: PciFindParentPciFdoExtension, PciInsertEntryAtTail, PciInsertEntryAtHead, PcipLinkSecondaryExtension, PciGetDeviceProperty, PciSendIoctl
Need sir_richard to add arbiter.h header to define ARBITER_INSTANCE for finish support
This 1000 more codes done now~
svn path=/trunk/; revision=47898
- Only the CompletionCallback member determines if a callback is needed. Checking the SenderReturn is unwanted and this variable was never initialized which could cause bogus callback attempts. Just remove the BOOL variable SenderReturned and directly check if Message->DispatchingListEntry.Flink is NULL before attempting to remove the message from senders queue. Noticed by Timo.
svn path=/trunk/; revision=47895
DriverEntry full 100% implemented, ACPI WatchDog detect, PCI IRQ Routing detect, PCI errata/hackflag detect (PciGetDebugPorts not support, need PCI Debug Device to test)
Native (S)ATA, PCI BIOS Resource Lock, System Errata/Hackflag also is detect
HAL Hoooking enabled, callbacks stub
Stub PnP Interfaces: PciAddDevice, PciDriverUnload, PciDispatchIrp
PCI utility routines: PciUnicodeStringStrStr, PciStringToUSHORT, PciIsSuiteVersion, PciIsDatacenter, PciOpenKey, PciGetRegistryValue, PciBuildDefaultExclusionList done
PCI Verifier Support for future: PciVerifierInit/PciVerifierProfileChangeCallback (stub)
Thank you for much patience~ This 1200 first codes, have 12000 codes more to come!~~
svn path=/trunk/; revision=47894
[PCI]: Remove HAL-internal PCI definitions from the existing "Shared/Internal" PCI Header which existed in NTOS's private include directory, and move them to HAL-internal headers.
[PCI]: Remove remaining shared PCI definitions from that same header, and put them in the new Shared/Internal PCI Header.
[PCI]: Remove duplicated PCI definitions from FreeLDR, and use thw new Shared/Internal PCI Header.
svn path=/trunk/; revision=47886
Merge from amd64 branch:
36987:
- Fix user32 compilation errors. (Samuel Serapion)
36988:
- Make user32 compile and link by defining Get/SetClass/WindowLongPtrA/W (Stefan Ginsberg)
41480:
- Fix 64bit issues, add a wine compatibility hack (Timo Kreuzer)
41540:
- Make parameters for NtUserCallOneParam and NtUserCallTwoParam DWORD_PTR instead of DWORD (Timo Kreuzer)
43965: (Samuel Serapion)
- Fix several user32 warnings.
- Sync GetWindow*A/W with wine and unify all versions, commenting out a wine hack.
- As a bonus implement GetWindowLongPtrA/W.
- Tested to work in trunk.
43992:
- Fix user32 build. (Samuel Serapion)
45124:
- Fix user32 build. (Samuel Serapion)
47472:
- Remove wine hack and allow user32 to compile again. (Samuel Serapion)
47878: (Timo Kreuzer)
- Use UlongToHandle instead of LongToHandle
- case to ULONG_PTR instead of using HandleToUlong
- SetSysColorsTemp: don't truncate the pointer sized n value, remove a comment
- IntGetClsWndProc: fix a bug
- IntGetWindowLong: pass !unicode to IntGetWndProc
47882:
- Make the uiLo and uiHi members of the KMDDELPARAM structure UINT_PTRs (Timo Kreuzer)
svn path=/trunk/; revision=47884
- Handle the case (again) where we get passed an invalid lpErrno pointer to a WSP function
- Fixes some crashes I encountered when running Opera 9
svn path=/trunk/; revision=47863
- co_IntSendMessageWithCallBack is called for two reasons; for messages that originate from win32k and from user mode when using Callbacks.
For both cases do not do anything with the sendqueue member of message struct and do not add the message to the senders dispatch message list.
- In msgqueue related functions, check if the message is a nowait messages before attempting to remove and entry from the dispatch message list as it doesnt exist.
- Fixes a NonPagedPool corruption that was occurring on regtest bootcd. Thanks Caemyr for testing.
svn path=/trunk/; revision=47849
Merge from amd64 branch:
44634: Make x86 specific optimizations x86 specific, use macros otherwise. (Samuel Serapion)
44639: Try to fix numerous pointer to ULONG casts. (Samuel Serapion)
47846/47847: Remove all the byteswap "optimisations" and use portable RTL byteswap functions (Timo Kreuzer)
svn path=/trunk/; revision=47848
- Use the correct offset of ROOTHUB2_CONFIGURATION_DESCRIPTOR and ROOTHUB2_INTERFACE_DESCRIPTOR to calculate needed buffer sizes. Fixes a buffer overflow crash.
svn path=/trunk/; revision=47845
- undefine macros that are defined by DDK headers, before implementing the functions
- add missing definitions for amd64
svn path=/trunk/; revision=47838
Added a library containing GUIDs for PnP notifications
[BUGCODES]
Added missing bugcheck code for PnP manager
[NTOSKRNL]
- Implemented FsRtlNotifyVolumeEvent()
- Implemented IoReportTargetDeviceChange(), IoReportTargetDeviceChangeAsynchronous()
- Craplemented PpSetCustomTargetEvent() to match our actual PnP manager notifications system. This is to be rewritten
- Added support for custom notifications in IopNotifyPlugPlayNotification()
- Added use of FsRtlNotifyVolumeEvent() in RawUserFsCtrl() to notify volume state changes
- Added use of IoEvent library to ntoskrnl
[FASTFAT]
- Added use of FsRtlNotifyVolumeEvent() when successfully mounting a volume
Finally, purpose of that patch is to implement volumes events notifications. Behaviour and implementation is correct till PpSetCustomTargetEvent(). The PnP notifications manager should be rewritten to match Microsoft's one. Furthermore, it appears that in Windows, those notifications are asynchronous.
svn path=/trunk/; revision=47837
- Dequeue the timer earlier so the timer queue will be in a valid state if any timers are modified during the miniport's timer callback
svn path=/trunk/; revision=47825
- Resource translation isn't very effective when we don't store the translated value in the translated descriptor (Fix a typo)
svn path=/trunk/; revision=47815
Changelog should have been:
[GDI32]
- Use default LOGFONT in EnumFontFamilies if none is given.
+ ~3000 gdi32:font winetests
svn path=/trunk/; revision=47802
- Use the current partition descriptor to check for container partitions. Logical units in extended partitions become visible again but you cannot access them yet.
This fixes the first half of bug #2564.
svn path=/trunk/; revision=47799
- Fix infinite loop
- Should fix gabriel_it and igorko1 problem with KsStudio
- Add more debugging code to DumpFilterDescriptor
svn path=/trunk/; revision=47786
Set registry values 'PathName' and 'SystemRoot' in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
This fixes bug #4414.
svn path=/trunk/; revision=47784
- Deduplicate FSRTL_COMMON_FCB_HEADER_LAYOUT in ntifs.h
- Move ECP_HEADER from the ntifs template to fsrtltypes.h
[DDK]
- Update ntifs.h to reflect XDK changes.
svn path=/trunk/; revision=47775
- Disable building of SWENUM, MPU401, CMIDriver, SPLITTER, STREAM to reduce build time
- Those modules are either unused or don't work yet due to missing functionality
svn path=/trunk/; revision=47772
- CRT update part 1/x
- sync C++ / exception related CRT code with wine
- add support for non-underscored symbols
- Patch by Samuel Serapion, slightly modified by me
svn path=/trunk/; revision=47770
- Get rid of the hard-coded sector size as large sector (4KB) harddisks are already available.
- When a partition is formatted, choose the FAT type according to the partition type. The size of the partition does not matter here as it is up to the caller to set the right partition type according to its size.
svn path=/trunk/; revision=47765
- Import the FreeBT USB generic bluetooth driver (abandoned)
- Some slight modifications to make it build
- WMI is currently commented out because our WMI headers are lacking (particularly wmistr.h)
- Not building by default for now
svn path=/trunk/; revision=47761
- Copy atsmedia.h from our dxsdk to our psdk (replacing the one that's already there)
- Add some missing file-headers.
svn path=/trunk/; revision=47753
Merge GDIOBJ related changes from yarotows
- GDIOBJ_(Share)LockObj : return NULL on NULL input, avoiding debug spew
- Set NULL process owner when setting READY_TO_DIE flag of a gdiobj
- So now GDIOBJ_ShareUnlockObj can claim ownership before trying to delete the object
svn path=/trunk/; revision=47748
Updated French translation
[PAINT]
Updated French translation
[SHELL32]
Updated French translation
[SPIDER]
Added French translation
[SYSSETUP]
Updated French translation
svn path=/trunk/; revision=47740
- DIB data is not mandatory in CreateDIBitmap
[WIN32K]
- Simplify GreCreateDIBitmap
- Surface data should be 16 bits aligned
svn path=/branches/reactos-yarotows/; revision=47735
- Split NtGdiCreateDIBitmapInternal with its Gre Counterpart
- Set bV5ImageSize if it was not already set
- Probe bits we're given in NtGdiSetDIBits
- SEHize clipboard image data access
svn path=/branches/reactos-yarotows/; revision=47733
- check for the type of the DC to restore to decide whether we should restore the surface
Fixes yarotows specific FF3 bug
svn path=/branches/reactos-yarotows/; revision=47731
- Create a resource list for the PCI root bus (even though it doesn't use any resources according to ACPI) and fill it with a bus number resource descriptor
- Fixes PCI device detection with ACPI enabled
svn path=/trunk/; revision=47729
- Set the resource list pointer to NULL after we free it
- Fixes a double-free issue in the resource conflict resolution code
svn path=/trunk/; revision=47725
- Improve readability in SetBMIColor
- Only when BitCount is <= 8, calculate the number of colors in the table
- Fixes a crash with VBox driver
svn path=/branches/reactos-yarotows/; revision=47724
If pbmiSrc->bmiHeader.bV5ClrUsed is 0, calculate the number of colors from the bit depth. Fixes black taskbar icons with vbox driver on 8 bpp
svn path=/branches/reactos-yarotows/; revision=47719
I don't see this bug on my (windows) build but others are reporting it still happens on the (linux) build machine iso.
Maybe it's because linux is akin to the devil? Yes, I like this, let's blame linux!
svn path=/trunk/; revision=47712
Small bug big effects: Use the correct offset when copying the BITMAPINFO, fixes taskbar icons regression.
svn path=/branches/reactos-yarotows/; revision=47709
All code currently omits the reactos specific patches. It's been a long time since we synched this lib so it's possible we no longer need them. Time will tell.
svn path=/trunk/; revision=47705
- Handle socket operations that can be completed immediately before terminating the socket to avoid losing data sitting in the receive buffer
svn path=/trunk/; revision=47704
- Initialize the palettes before creating any bitmaps.
- Replace SURFACE_vSetDefaultPalette with an array of default palettes.
- Check iFormat in SURFACE_AllocSurface
svn path=/branches/reactos-yarotows/; revision=47703
- Header describes the bitmap to be created, not the bits we are passed.
- Circumvent gcc weirdness (sigh...)
svn path=/branches/reactos-yarotows/; revision=47702
- More BITMAPV5INFO fun
- Probe max size we are asked for when converting to V5 Info
[USER32] [WIN32K]
- CreateDIBitmap : Move safety handling to win32k, where it belongs. More code cleanness!
svn path=/branches/reactos-yarotows/; revision=47701
This part includes alpha support for imagelists and tango icons for the common toolbars
I'll do the second part later today. It has a propsheet bug and I'm a bit busy at the mo.
svn path=/trunk/; revision=47695
NtGdiGetDIBitsInternal: don't use the unsafe usermode pointer after the BITMAPINFO has been converted and protect writing back the result with SEH.
svn path=/branches/reactos-yarotows/; revision=47692
- remove duplicate prototypes.
- Add missing trail to debug print
- replace some now superfluous checks on bitmap palette with sanity ASSERTS
- begin using BITMAPV5HEADER as a default bitmap format, and introduce conversion to and from everything prior that.
Congratulations to BITMAPCOREHEADER, for its backward compatibility personal failure.
svn path=/branches/reactos-yarotows/; revision=47690
All the HAL's bus functions now use Bus Handlers on Legacy systems. There are still big issues with PCI cards.
eVb: PCI-x should work now.
More PCI-related HAL patches may follow later.
svn path=/trunk/; revision=47684
This change also allows for the PCI driver to override the translation mechanism (which will piggy-back to the system bus translator) with its own. Please test.
svn path=/trunk/; revision=47679
[HAL]: Display all the warning DPRINTs in-line with the PCI enumeration code, resulting in a much easier to read and comprehensive review of the machine.
svn path=/trunk/; revision=47666
Introduce GreCreateBitmapEx, which has the extended functionality needed by some callers, GreCreateBitmap calls GreCreateBitmapEx to keep the simple syntax. Use it in DIB_CreateDIBSection to fix build. Also pass the size of the image (still ignored), which is needed for compressed bitmaps (we currently assume that RLEs take as much space as an uncompressed bitmap)
svn path=/branches/reactos-yarotows/; revision=47663
Rewrite the bitmap API. There were a lot of bugs. NtGdiCreateBitmap allowed a negative height, leading to either topdown or bottomup bitmaps, a behaviour that Windows doesn't have. The function copied the bitmap bits directly from the caller to the bitmap using RtlCopyMemory, ignoring different scanline length and direction (resulting in bitmaps being upside down), not SEH protected. This function (IntSetBitmapBits) is replaced by a better solution UnsafeSetBitmapBits, that takes these things into account. The name is chosen to give a hint that the function can/should be SEH protected. IntSetBitmapBits is still there, as its retarded behaviour is actually required in some places. There were also IntCreateBitmap and IntGdiCreateBitmap, now both being replaced by GreCreateBitmap. The code that set the palette is removed, as it's already done in SURFACE_AllocSurface, here gpalRGB is replaced with gpalBGR, fixing some inverted color issues. The alignment correction in SURFACE_bSetBitmapBits is reapplied, now that the callers are behaving as they are supposed to do.
svn path=/branches/reactos-yarotows/; revision=47641
Make the bitmap data for the extpens (making extpens bitmaps is a bad idea anyway) 4 bytes long instead of 3, to fulfill alignment requirements.
svn path=/branches/reactos-yarotows/; revision=47638
- Move RLE specific code to it's own file (rlecomp.c)
- Relace BitsPerFormat function with an array of UCHARs
- Rewrite surface creation. Surfaces are now allocated from one central function SURFACE_AllocSurface, which sets the size, iType, iUniq, the handle and the default palette.
- Implement SURFACE_vSetDefaultPalette, which sets the default RGB palette, based on bit depth.
- Implement SURFACE_bSetBitmapBits, wich sets cjBits, pvBits, pvScan0 and lDelta and allocates memory if neccessary.
- Use these functions for EngCreateBitmap, EngCreateDeviceBitmap, EngCreateDeviceSurface and IntCreateBitmap
svn path=/branches/reactos-yarotows/; revision=47612
Do not free the memory for the bitmap bits, when you have not allocated them. Fixes bugcheck with VBox driver.
svn path=/branches/reactos-yarotows/; revision=47609
- Allocate bitmaps as kernel sections, instead of from paged pool, like it's done in windows.
- Fix SURFACE_Cleanup. It was only freeing the memory for API_BITMAPs. If memory was allocated by a driver it never got freed.
- Add BMF_RLE_HACK flag to free decompressed RLE bits
- Support FL_ZERO_MEMORY in EngAllocSectionMem
- Set SURFOBJ::iType when creating a surface
svn path=/branches/reactos-yarotows/; revision=47606
- Simplify the logic of the mapping functions a bit, by using either FILEVIEW or ENGSECTION, not both.
- Set FILEVIEW::LastWriteTime
svn path=/branches/reactos-yarotows/; revision=47591
- There is no need to recalculate size of the Icon, we already have this piece of information
- Draw monochrome cursor/icons, not only their mask.
svn path=/branches/reactos-yarotows/; revision=47495
- Simplify UserDrawIconEx
- NtUserCreateCursorIconHandle : Get Information from bitmaps even on indirect creation and fix calculation of icon height in case of monochrome icons.
Fixes ~15 user32:cursoricon winetests.
svn path=/branches/reactos-yarotows/; revision=47451
- Change ChangeDisplaySettingsExA to look more like wine's one
[WIN32K]
- Return correct value if buffer is to small in UserChangeDisplaySettings (wine tests)
- Do not set an invalid size to the devmode we're passing ti UserChangeDisplaySettings, we might access garbage
Now all ChangeDisplaySettings related wine tests pass.
svn path=/branches/reactos-yarotows/; revision=47386
- Set right flags when reading display modes from registry
- Implement UserEnumRegistryDisplaySettings
svn path=/branches/reactos-yarotows/; revision=47356
- Check devmode size in NtUserChangeDisplaySettings
- Copy memory instead of setting fields in UserEnumDisplaySettings, so we don't lost anything.
svn path=/branches/reactos-yarotows/; revision=47355
- UserChangeDisplaySettings : add some checks and fixes to what was passed to us
More wine tests pass.
svn path=/branches/reactos-yarotows/; revision=47354
- Set DISPLAY_DEVICE_PRIMARY_DEVICE to Graphics device object when creating the primary device object
- switch state flags of the graphics device objects when switching mode
- Only compare valid fields when searching for a device mode in a device object
- implement CDS_TEST flag in NtUserSetDisplaySettings
svn path=/branches/reactos-yarotows/; revision=47353
- When initializing the EXLATEOBJ to translate the solid brush color in EBRUSHOBJ_vSetSolidBrushColor, also pass the EBRUSHOBJs back color. This fixes wrong colors when the destination surface is mono (e.g. disabled buttons)
svn path=/branches/reactos-yarotows/; revision=47269
- clean up some debugging code
- set NULL owner when setting BASEFLAG_READY_TO_DIE, so that the handle can be freed.
svn path=/branches/reactos-yarotows/; revision=47217
- clean up some unused code
- use GDIOBJ_IncrementShareCount on Timo suggestion
- use ppdev semaphore as sort criterion in DC_vPrepareDCsForBlit, spotted by Timo
- Get ownership before freeing the object in GDIOBJ_ShareUnlockObjByPtr, as whoever set it ready to die had the right to
svn path=/branches/reactos-yarotows/; revision=47205
- IntGdiCreateBitmap : assign a default palette to the bitmap created
- Use IntCreateBitmap where we already have a bitmap to assign
- delete all mono bitmaps related hacks in xlateobj implementation, as now all bitmaps should have a palette
Fixes last immediately visible glitches when switching modes
svn path=/branches/reactos-yarotows/; revision=47203
- remove a comment which is not true anymore
[USER32]
- Create a bitmap which is compatible with the bitmap'we are copying in CreateSmallIcon
Icons are back in taskbar
svn path=/branches/reactos-yarotows/; revision=47143
- Set NULL owner to copied bitmap when creating indirect icons
- Rewrite UserDrawIconEx, inspired from wine code
- fix palette creation for 16 bits DIB
- Always assign a palette to bitmap created with BITMAP_CopyBitmap and IntCreateCompatibeBitmap.
[USER32]
- Use DIB section when creating icons
- Use something called "header"
Now mode switching is almost glitchless.
svn path=/branches/reactos-yarotows/; revision=47140
- attach devinfo->hpalDefault to the pdevobj after enabling it
- attach this palette to surfaces attached to this pdevobj through EngModifySurface
- use this palette in several place
Partially fixes icon drawing after mode switch
svn path=/branches/reactos-yarotows/; revision=47137
- Allow NtGdiDeleteObjectApp to delete a permanent DC, as windows does it.
This is not exactly what windows does, but no one should use a DeletedDC'ed DC anyway.
Fixes "No! You Naughty Application" debug spam and some wine tests
svn path=/branches/reactos-yarotows/; revision=47131
- Use device string when given one in IntCreateDIC
[WIN32K]
- Exchange pdevmode when excahnging PDEVOBJ pointers
- Update Globals gdi devcaps when switching mode if ppdev is the primary surface
svn path=/branches/reactos-yarotows/; revision=47044
- Call DC_vPrepareDCsForBlit in IntRectangle with device coordinates instead of in NtGdiRectangle with logical coordinates. Fixes updating mouse pointer.
- Update TODO.txt
svn path=/branches/reactos-yarotows/; revision=46986
- Use the attached surface bits depth when creating a compatible DC
[USER32]
- use a display DC for loading images
svn path=/branches/reactos-yarotows/; revision=46981
- move IntEngMovePointer code into GreMovePointer
- Delete the mouse cursor before mode switch, to force setting a new one after a mode switch. Fixes cursor artifacts after mode change.
- Update TODO.txt
svn path=/branches/reactos-yarotows/; revision=46976
- Remove an ASSERT in DC_Cleanup
- Improve code in PDEVOBJ_vSwitchPdev (code shamelessly stolen from Jerome's earlier commit)
- Fix up GDIINFO in PDEVOBJ_bEnablePDEV instead of EngpCreatePDEV
- Update TODO.txt
svn path=/branches/reactos-yarotows/; revision=46975
- revert unwanted change from r46964
- Use MouseSafetyOnDrawStart/End in GreExtTextOutW when we already hold the blit lock
svn path=/branches/reactos-yarotows/; revision=46969
- Revert r46960 : the correct way to go is to mark brushes as dirty and update them where needed
- Do so in GreExtTextOutW, NtGdiBitBlt, NtGdiStrecthBltMask and IntPatBlt
- Add a small hack to GreEstTextOutW so we hold the Blit lock when needed without too much pain.
svn path=/branches/reactos-yarotows/; revision=46964
Don't call IntHideDesktop and co_IntShowDesktop for now. This doesn't seem to be neccessary and fixes a bunch of problems
svn path=/branches/reactos-yarotows/; revision=46953
- Update direct DCs surface before blit if needed
- call directly ppdev in MouseSafetyOnDraw{Start,End}
- use directly the PDEVOBJ surface in mouse operations
- Add some mouse-related sanity checks
svn path=/branches/reactos-yarotows/; revision=46937
- Do not draw mouse when it has intentionnally been put away.
Fixes some mouse-related graphical glitches
svn path=/branches/reactos-yarotows/; revision=46933
- Do not create a PDEVOBJ for nothing at startup
- Create the surface for real in IntCreatePrimarySurface
svn path=/branches/reactos-yarotows/; revision=46930
- Use DC_vPrepareForBlit, DC_vFinishBlit in GreTextOutputW
- So we can get rid of MouseSafetyOnDraw{Start,End} in IntEngMaskBlt
svn path=/branches/reactos-yarotows/; revision=46911
- apply policy into DC_vPrepareDCsForBlit as in GDIOBJ_LockMultipleObjects before Physicus sees this :-D
- GDIOBJ_LockObj : return NULL when handle is NULL : more speed, less debug output
svn path=/branches/reactos-yarotows/; revision=46909
- Now we welcome GreStretchBltMask into the fabulous world of GDIOBJ_LockMultipleObjects, DC_vPrepareDCsForBlit and DC_vFinishBlit
- With the assorted MouseSafetyOnDraw{Start,End} removal
svn path=/branches/reactos-yarotows/; revision=46908
- For now, limit DC_UnlockDc to a simple GDIOBJ_LockObj
- More GDIOBJ_LockMultipleObj, DC_vPrepareDCsForBlit and DC_vFinishBlit fun
svn path=/branches/reactos-yarotows/; revision=46906
-Use GDIOBJ_LockMultipleObjs, DC_vPrepareDCsForBlit and DC_vFinishBlit in NtGdiTransparentBlt
-Get rid of MouseSafetyOnDraw{End,Start} in IntEngTransparentBlt
svn path=/branches/reactos-yarotows/; revision=46905
- Introduce DC_vPrepareDCsForBlit and DC_vFinishBlit and use them in NtGdiAlphaBlend
- Get rid of now unnecessary call for MouseSafetyOnDraw{Start,End} in IntEngAlphaBlend
- Yet Another Rewrite of GDIOBJ_LockMultipleObjs :-/ and use it in NtGdiAlphaBlend
svn path=/branches/reactos-yarotows/; revision=46902
- There is currently no need to lock more than three objects at a time, this permits code simplification/speed
- Keep the handles order in GDIOBJ_LockMultipleObjs
Still unused...
svn path=/branches/reactos-yarotows/; revision=46899
- Introduce deadlocks killer GDIOBJ_LockMultipleObjs, unused for now
- Make the PDEVOBJ DCs list a sorted list
Didicated to Physicus
svn path=/branches/reactos-yarotows/; revision=46891
-Make direct DC release shared lock on surface each time they're unlocked.
-Now they don't hold it unless they're locked themselves.
-Do not create the device surface when switching modes, this is inconsistent with the PDEVOBJ creation, which does not.
*No more "you are freeing a surface which is still hold" debug message when switching modes*
svn path=/branches/reactos-yarotows/; revision=46733
- use a macro in RegReadDisplaySettings to make things smaller
- Send WM_DISPLAYCHANGE to all toplevel windows when changing mode
- leave UserChangeDisplaySettings when mode switching failed
svn path=/branches/reactos-yarotows/; revision=46701
- EngAcquireSemaphoreShared: update dwEngAcquireCount
- DC_LockDc/DC_UnlockDc: Acquire PDEV lock only for direct DCs, in that case also update the pSurface pointer
- When copying DC states, copy the surface only for memory dcs
- after switching the mode, update system metrics and redraw the desktop window.
- Remove testdraw code.
svn path=/branches/reactos-yarotows/; revision=46658
- We added one byte to each ext buffer as a ref count for oskit_buffer_* functions so we need to compensate for that by adding one byte to the LARGE_SIZE constant
- This should boost performance too because we allocate one ext buffer for each incoming and outgoing TCP packet
svn path=/branches/aicom-network-branch/; revision=45531
- For some reason when I applied the patch from my other WC to this one, I ended up with 2-3 copies of the same code in each file
svn path=/branches/aicom-network-branch/; revision=45460
- We were checking to see if there were valid NDIS 5.1-specific characteristics if 5.1 was specified as the version but we didn't actually copy them into our local buffer
- Now NdisCancelPackets will actually do something if the miniport implements a MiniportCancelSendPackets handler and PnP event notifications will get through to the miniport if it implements a MiniportPnPEventNotify handler
svn path=/branches/aicom-network-branch/; revision=45437
- Fix a typo
[NETSTAT]
- Uncomment and fix displaying successful fragmentation data
- Fix a typo
svn path=/branches/aicom-network-branch/; revision=45435
- Add more cases to TdiAddressSizeFromType
- Return STATUS_INVALID_PARAMETER instead of bugchecking if somebody gives us a bad address type
- Fixes Steam (confirmed by Geoz)
- Will also be merged to trunk soon
svn path=/branches/aicom-network-branch/; revision=45400
- Implement oskit buffer functions to track references and allocate buffers
- Remove unneeded mbuf freeing hacks now that we track references (fixes random crashes would occur when an mbuf was freed inside ip_output)
- Remove the "ACK hack" that we used to hack around our loopback implementation
- Remove unneeded mbuf pool initialization
- Remove unused code in sleep.c
svn path=/branches/aicom-network-branch/; revision=45257
<description>Abyss Web Server enables you to host your Web sites on your computer. It supports secure SSL/TLS connections (HTTPS) as well as a wide range of Web technologies. It can also run advanced PHP, Perl, Python, ASP, ASP.NET, and Ruby on Rails Web applications, which can be backed by databases such as MySQL, SQLite, MS SQL Server, MS Access, or Oracle</description>
<description>SoftMaker Office 2008 comes with the following applications: TextMaker 2008: Reads and writes all Microsoft Word files without a hitch. PlanMaker 2008, the fully Excel-compatible spreadsheet. SoftMaker Presentations 2008, fully compatible with Microsoft PowerPoint.</description>
<description>A light viewer which lets you open, view, and print documents created with Microsoft Word 6.0 to 2007, TextMaker as well as OpenDocument and other common office file formats.</description>
<description>VLC media player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols.</description>
<description>SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs.</description>
<description>Nice Clone of Chip's Challenge originally made for the Atari Lynx. Includes free CCLP2 Graphics Pack, so you dont need the copyrighted Original.</description>
<description>Open Source clone of the "Transport Tycoon Deluxe" game engine. You either need a copy of Transport Tycoon or have to manually download and set up the OpenGFX files.</description>
<description>WinBoard is a graphical chessboard for the Windows/ReactOS that can serve as a user interface for GNU Chess, Crafty, and other chess engines, for the Internet Chess Servers, and for electronic mail correspondence chess.</description>
IDS_XMLERROR_2 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> XML <20><><EFBFBD><EFBFBD><EFBFBD><20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
IDS_WELCOME_TITLE "Willkommen im ReactOS Downloader"
IDS_WELCOME "Bitte w<>hlen Sie links eine Kategorie. Dies ist Version 1.1."
IDS_NO_APP_TITLE "Keine Anwendung ausgew<65>hlt"
IDS_NO_APP "Bitte w<>hlen Sie eine Anwendung aus, bevor Sie die Download-Schaltfl<66>che bet<65>tigen. Wenn Sie Hilfe ben<65>tigen, dr<64>cken Sie die Hilfe-Schaltfl<66>che in der oberen rechten Ecke."
IDS_UPDATE_TITLE "Update"
IDS_UPDATE "Diese Funktion wurde noch nicht implementiert."
IDS_HELP_TITLE "Hilfe"
IDS_HELP "W<>hlen Sie links eine Kategorie, w<>hlen Sie eine Anwendung und dr<64>cken Sie die Download-Schaltfl<66>che. Um die Anwendungsinformationen zu aktualisieren, dr<64>cken Sie die Schaltfl<66>che neben der Hilfe-Schaltfl<66>che."
IDS_NO_APPS "In dieser Kategorie sind bisher noch keine Anwendungen. Sie k<>nnen helfen, indem Sie Anwendungen hinzuf<75>gen."
IDS_CHOOSE_APP "Bitte w<>hlen Sie eine Anwendung."
IDS_CHOOSE_SUB "Bitte w<>hlen Sie eine Unterkategorie."
IDS_CHOOSE_CATEGORY "Bitte w<>hlen Sie eine Kategorie."
IDS_CHOOSE_BOTH "Bitte w<>hlen Sie eine Unterkategorie oder eine Anwendung."
IDS_XMLERROR_1 "XML-Datei nicht gefunden!"
IDS_XMLERROR_2 "XML-Datei kann nicht verarbeitet werden!"
IDS_DOWNLOAD_ERROR "Die Datei konnte nicht heruntergeladen werden.\nBitte pr<70>fen sie, ob eine Verbindung zum Internet besteht."
IDS_VERSION "Version: "
IDS_LICENCE "Lizenz: "
IDS_MAINTAINER "Maintainer: "
IDS_APPS_TITLE "Anwendungen"
IDS_CATS_TITLE "Kategorien"
IDS_CHOOSE_FOLDER "Bitte w<>hlen Sie den Ordner aus..."
IDS_NOTCREATE_REGKEY "Registryschl<68>ssel k<>nnte nicht erstellt werden."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "Es konnte kein Ordner mit diesem Namen erstellt werden!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s wird ben<65>tigt, um %s ausf<73>hren zu k<>nnen. Soll %s jetzt installiert werden?"
IDS_NO_APP "Please select a Application before you click the download button, if you need assistance please click on the question mark button on the top right corner."
IDS_HELP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> download. To update the application information click the button next to the help button."
IDS_NO_APPS "Sorry, there no applications in this category yet. You can help and add more applications."
IDS_XMLERROR_1 "<22><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> xml !"
IDS_XMLERROR_2 "Could not parse the xml file !"
IDS_DOWNLOAD_ERROR "<22><><EFBFBD><20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> internet <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD>."
IDS_WELCOME_TITLE "Welcome to the ReactOS Downloader"
IDS_WELCOME "Please choose a category on the left. This is version 1.1."
IDS_NO_APP_TITLE "No application selected"
IDS_NO_APP "Please select a Application before you click the download button, if you need assistance please click on the question mark button on the top right corner."
IDS_UPDATE_TITLE "Update"
IDS_UPDATE "Sorry this feature is not implemented yet."
IDS_HELP_TITLE "Help"
IDS_HELP "Choose a category on the left, then choose a application and click the download button. To update the application information click the button next to the help button."
IDS_NO_APPS "Sorry, there no applications in this category yet. You can help and add more applications."
IDS_CHOOSE_APP "Please choose an application."
IDS_CHOOSE_SUB "Please choose a subcategory."
IDS_CHOOSE_CATEGORY "Please choose a category."
IDS_CHOOSE_BOTH "Please choose a subcategory or an application."
IDS_XMLERROR_1 "Could not find the xml file !"
IDS_XMLERROR_2 "Could not parse the xml file !"
IDS_DOWNLOAD_ERROR "Unable to download the file.\nPlease check your internet connection."
IDS_VERSION "Version: "
IDS_LICENCE "Licence: "
IDS_MAINTAINER "Maintainer: "
IDS_APPS_TITLE "Applications"
IDS_CATS_TITLE "Categories"
IDS_CHOOSE_FOLDER "Please, choose the folder..."
IDS_NOTCREATE_REGKEY "Could not create the registry key."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?"
IDS_NO_APP "Por favor seleccione una Aplicaci<63>n antes de pulsar el bot<6F>n de Descarga, si necesita asistencia por favor pulsa el bot<6F>n con la interrogaci<63>n en la esquina superior derecha."
IDS_UPDATE_TITLE "Actualizar"
IDS_UPDATE "Perd<72>n esta caracter<65>stica no a sido implementada todav<61>a."
IDS_HELP_TITLE "Ayuda"
IDS_HELP "Selecciona una categor<6F>a de la izquierda, entonces selecciona una aplicaci<63>n y pulsa el bot<6F>n de descargar. Para actualizar la informaci<63>n de la aplicaci<63>n pulsa el bot<6F>n junto al bot<6F>n de ayuda."
IDS_NO_APPS "Perd<72>n, aun no hay ninguna aplicaci<63>n en esta categor<6F>a. Puedes ayudar y a<>adir m<>s aplicaciones."
IDS_CHOOSE_APP "Por favor selecciona una aplicaci<63>n."
IDS_CHOOSE_SUB "Por favor selecciona una subcategor<6F>a."
IDS_CHOOSE_CATEGORY "Por favor selecciona una categor<6F>a."
IDS_CHOOSE_BOTH "Por favor selecciona una subcategoria o una aplicaci<63>n."
IDS_XMLERROR_1 "<22>No se a encontrado el archivo xml!"
IDS_XMLERROR_2 "<22>No se ha podido analizar el archivo xml!"
IDS_DOWNLOAD_ERROR "Imposible descargar el archivo.\nPor favor verifica tu conexi<78>n a internet."
IDS_VERSION "Versi<73>n: "
IDS_LICENCE "Licencia: "
IDS_MAINTAINER "Mantenido por: "
IDS_APPS_TITLE "Aplicaciones"
IDS_CATS_TITLE "Categorias"
IDS_CHOOSE_FOLDER "Por favor, seleccione la carpeta..."
IDS_NOTCREATE_REGKEY "No se puede crear la llave del registro."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "<22>Imposible crear una carpeta con este nombre!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s en necesario para ejecutar %s. <20>Desea instalar %s ahora?"
TTT_HELPBUTTON "Obtenga ayuda acerca de Downloader"
IDS_NO_APP "Veuillez s<>lectionner une application avant de cliquer sur le bouton T<>l<EFBFBD>charger, si vous avez besoin d'aide, veuillez cliquer sur le point d'interrogation dans le coin sup<75>rieur droit."
IDS_UPDATE_TITLE "Mise <20> jour"
IDS_UPDATE "D<>sol<6F>, cette fonctionnalit<69> n'est pas encore impl<70>ment<6E>e."
IDS_HELP_TITLE "Aide"
IDS_HELP "Choisissez une cat<61>gorie sur la gauche, puis choisissez une application et cliquez sur le bouton T<>l<EFBFBD>charger. Pour mettre <20> jour les informations sur l'application, cliquez sur le bouton <20> c<>t<EFBFBD> du bouton d'aide."
IDS_NO_APPS "D<>sol<6F>, il n'y a pas encore d'application dans cette cat<61>gorie. Vous pouvez contribuer et ajouter plus d'applications."
IDS_CHOOSE_APP "Veuillez choisir une application."
IDS_CHOOSE_SUB "Veuillez choisir une sous-cat<61>gorie."
IDS_CHOOSE_CATEGORY "Veuillez choisir une cat<61>gorie."
IDS_CHOOSE_BOTH "Veuillez choisir une sous-cat<61>gorie ou une application."
IDS_XMLERROR_1 "Impossible de trouver le fichier xml !"
IDS_XMLERROR_2 "Impossible d'analyser le fichier xml !"
IDS_DOWNLOAD_ERROR "Impossible de t<>l<EFBFBD>charger le fichier.\nVeuillez v<>rifier votre connexion Internet."
IDS_VERSION "Version: "
IDS_LICENCE "Licence: "
IDS_MAINTAINER "Maintainer: "
IDS_APPS_TITLE "Applications"
IDS_CATS_TITLE "Cat<61>gories"
IDS_CHOOSE_FOLDER "Veuillez choisir le r<>pertoire..."
IDS_NOTCREATE_REGKEY "<22>chec lors de la cr<63>ation de la cl<63> registre."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "<22>chec lors du r<>pertoire avec ce nom !"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s est n<>cessaire pour lancer %s. Voulez-vous installer %s maintenant ?"
TTT_HELPBUTTON "Obtenez de l'aide <20> propros du t<>l<EFBFBD>chargeur"
TTT_UPDATEBUTTON "Pas encore disponible"
TTT_PROFBUTTON "Vous permet de configurer le t<>l<EFBFBD>chargeur"
IDS_WELCOME_TITLE "Selamat datang di ReactOS Downloader"
IDS_WELCOME "Silahkan pilih kategori di sebelah kiri. Ini versi 1.1."
IDS_NO_APP_TITLE "Tidak ada aplikasi yang dipilih"
IDS_NO_APP "Silahkan pilih Aplikasi sebelum anda mengklik tombol download, jika anda membutuhkan asistensi silahkan klik pada tombol di sudut kanan atas."
IDS_UPDATE_TITLE "Mutakhirkan"
IDS_UPDATE "Maaf fitur ini belum diimplementasikan."
IDS_HELP_TITLE "Bantuan"
IDS_HELP "Pilih kategori di sisi kiri, lalu pilih aplikasi dan klik tombol download. Untuk memutakhirkan informasi aplikasi klik tombol disebelah tombol bantuan."
IDS_NO_APPS "Maaf, belum ada aplikasi dalam kategori ini. Anda dapat membantu dan menambahkan aplikasi lebih banyak."
IDS_CHOOSE_APP "Silahkan pilih aplikasi."
IDS_CHOOSE_SUB "Silahkan pilih subkategori."
IDS_CHOOSE_CATEGORY "Silahkan pilih kategori."
IDS_CHOOSE_BOTH "Silahkan pilih subkategori atau aplikasi."
IDS_XMLERROR_1 "Tidak dapat menemukan file xml !"
IDS_XMLERROR_2 "Tidak dapat mengurai file xml !"
IDS_DOWNLOAD_ERROR "Tidak bisa mendownload file.\nSilahkan periksa koneksi internet anda."
IDS_VERSION "Versi: "
IDS_LICENCE "Lisensi: "
IDS_MAINTAINER "Pemelihara: "
IDS_APPS_TITLE "Applications"
IDS_CATS_TITLE "Categories"
IDS_CHOOSE_FOLDER "Please, choose the folder..."
IDS_NOTCREATE_REGKEY "Could not create the registry key."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "Unable to create a folder with this name!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s is required to run %s. Should %s be installed now?"
IDS_NO_APP "Scegli una Applicazione prima di premere il bottone Scarica, se serve assistenza clicca sul punto di domanda nell'angolo in alto a destra."
IDS_UPDATE_TITLE "Aggiorna"
IDS_UPDATE "Funzione non ancora implementata."
IDS_HELP_TITLE "Aiuto"
IDS_HELP "Scegli una categoria a sinistra, poi scegli una applicazione e clicca il bottone download. Per aggiornare le informazioni sulla applicazione clicca il bottone accanto a quello di aiuto."
IDS_NO_APPS "Non ci sono ancora applicazioni in questa categoria. Puoi aiutare aggiungendone altre."
IDS_CHOOSE_APP "Scegli una applicazione."
IDS_CHOOSE_SUB "Scegli una sottocategoria."
IDS_CHOOSE_CATEGORY "Scegli una categoria."
IDS_CHOOSE_BOTH "Scegli una sottocategoria o una applicazione."
IDS_XMLERROR_1 "File xml non trovato !"
IDS_XMLERROR_2 "Impossibile trattare il contenuto del file xml !"
IDS_DOWNLOAD_ERROR "Scaricamento del file impossibile.\nVerificare la connessione a Internet."
IDS_VERSION "Versione: "
IDS_LICENCE "Licenza: "
IDS_MAINTAINER "Manutentore: "
IDS_APPS_TITLE "Applicazioni"
IDS_CATS_TITLE "Categorie"
IDS_CHOOSE_FOLDER "Scegliere una cartella..."
IDS_NOTCREATE_REGKEY "Impossibile creare la chiave del registry."
IDS_DOWNLOAD_FOLDER "Scarica"
IDS_UNABLECREATE_FOLDER "Impossibile creare una cartella con questo nome!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s <20> necessario per la esecuzione di %s. Si vuole procedere alla installazione di %s?"
TTT_HELPBUTTON "Informazioni su ReactOS Downloader"
TTT_UPDATEBUTTON "Non disponibile"
TTT_PROFBUTTON "Permette la configurazione del downloader"
IDS_WELCOME "Pra<72>ome pasirinkti kategorij<69> kair<69>je. \n<>ia yra versija 1.1."
IDS_NO_APP_TITLE "Nepasirinkta programa"
IDS_NO_APP "Pra<72>ome pasirinkti program<61> prie<69> paspaud<75>iant siuntimo mygtuk<75>, jei jums reikalinga pagalba, pra<72>ome spausti ant klaustuko vir<69>utiniame de<64>iniajame kampe."
IDS_UPDATE_TITLE "Atnaujinti"
IDS_UPDATE "Atsipra<72>ome, bet <20>i funkcija dar nesukurta."
IDS_HELP_TITLE "Pagalba"
IDS_HELP "Pasirinkite kategorij<69> kair<69>je, tuomet pasirinkite program<61> ir spauskite siuntimo mygtuk<75>. Nor<6F>dami atnaujinti programos informacij<69>, spaukite mygtuk<75>, kuris yra <20>alia nuostat<61> mygtuko."
IDS_NO_APPS "Atsipra<72>ome, bet <20>ioje kategorijoje program<61> dar n<>ra. J<>s galite pad<61>ti prid<69>dami daugiau program<61>."
IDS_CHOOSE_APP "Pra<72>ome pasirinkti program<61>."
IDS_CHOOSE_SUB "Pra<72>ome pasirinkti pokategor<6F>."
IDS_CHOOSE_CATEGORY "Pra<72>ome pasirinkti kategorij<69>."
IDS_CHOOSE_BOTH "Pra<72>ome pasirinkti pokategor<6F> arba program<61>."
IDS_XMLERROR_1 "Nepavyko rasti xml bylos!"
IDS_XMLERROR_2 "Nepavyko nuskaityti xml bylos!"
IDS_DOWNLOAD_ERROR "Nepavyko parsi<73>sti bylos.\nPra<72>ome patikrinti interneto ry<72><79>."
IDS_VERSION "Versija: "
IDS_LICENCE "Licencija: "
IDS_MAINTAINER "Palaikymas: "
IDS_APPS_TITLE "Programos"
IDS_CATS_TITLE "Kategorijos"
IDS_CHOOSE_FOLDER "Pra<72>ome pasirinkti katalog<6F>..."
IDS_NOTCREATE_REGKEY "Nepavyko sukurti registro rakto."
IDS_DOWNLOAD_FOLDER "Downloader"
IDS_UNABLECREATE_FOLDER "Nepavyko sukurti katalogo su <20>iuo vardu!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s reikalingas paleisti %s. Diegti %s dabar?"
TTT_HELPBUTTON "Pateikia informacij<69> apie naudojim<69>si programa"
IDS_WELCOME_TITLE "Velkommen til ReactOS Nedlasting"
IDS_WELCOME "Vennligst velg en kategori til h<>yre. Dette er versjon 1.1."
IDS_NO_APP_TITLE "Ingen applikasjoner er valgt"
IDS_NO_APP "Vennligst velg en applikasjon f<>r du klikker p<> nedlasting knappen, hvis du trenger hjelp vennligst klikk p<> sp<73>rsm<73>lsmerke knappen p<> toppen i h<>yre hj<68>rne."
IDS_UPDATE_TITLE "Oppdater"
IDS_UPDATE "Beklager denne funksjonen er ikke implementert enn<6E>."
IDS_HELP_TITLE "Hjelp"
IDS_HELP "Velg en kategori til venstre, ogs<67> velg en applikasjon og klikk p<> nedlastings knappen. For <20> oppdatere applikasjon informasjonen klikk p<> knappen neste etter hjelp knappen."
IDS_NO_APPS "Beklager, det er ingen applikasjoner i denne kategorien enn<6E>. Du kan hjelpe og legge til flere applikasjoner."
IDS_CHOOSE_APP "Vennligst velg en applikasjon."
IDS_CHOOSE_SUB "Vennligst velg en underkategori."
IDS_CHOOSE_CATEGORY "Vennligst velg en kategori."
IDS_CHOOSE_BOTH "Vennligst velg en underkategori eller en applikasjon."
IDS_XMLERROR_1 "Kan ikke finne xml filen !"
IDS_XMLERROR_2 "Kan ikke analysere xml filen !"
IDS_DOWNLOAD_ERROR "Ikke mulig <20> laste ned filen.\nVennligst sjekk din internett forbindelse."
IDS_VERSION "Versjon: "
IDS_LICENCE "Lisens: "
IDS_MAINTAINER "Produsent: "
IDS_APPS_TITLE "Applikasjoner"
IDS_CATS_TITLE "Kategori"
IDS_CHOOSE_FOLDER "Vennligst, velg mappen..."
IDS_NOTCREATE_REGKEY "Kan ikke opprette registern<72>kkel."
IDS_DOWNLOAD_FOLDER "Nedlasting"
IDS_UNABLECREATE_FOLDER "Ikke mulig <20> opprette mappe med dette navnet!"
IDS_UPDATE_URL "http://svn.reactos.org"
IDS_INSTALL_DEP "%s trengs <20> bli kj<6B>rt %s. Skal %s bli innstallert n<>?"
IDS_WINDOW_TITLE "Download! - Mened<65>er pobierania dla ReactOS"
IDS_WELCOME_TITLE "Witamy w Download! dla ReactOS"
IDS_WELCOME "Prosz<73> wybra<72> kategori<72> po lewej. Wersja programu: 1.1."
IDS_NO_APP_TITLE "Nie wybrano programu"
IDS_NO_APP "Prosz<73> wybra<72> program, przed klikni<6E>ciem w przycisk <20>ci<63>gnij. W razie problem<65>w kliknij w znak zapytania, w prawym g<>rnym rogu okna."
IDS_UPDATE_TITLE "Uaktualnij"
IDS_UPDATE "Przepraszamy, ta opcja nie jest jeszcze dost<73>pna."
IDS_HELP_TITLE "Pomoc"
IDS_HELP "Wybierz kategori<72> po lewej, nast<73>pnie wybierz program i kliknij w przycisk <20>ci<63>gnij. Aby uaktualni<6E> list<73> program<61>w, naci<63>nij przycisk obok przycisku Pomocy."
IDS_NO_APPS "Przepraszamy, nie ma program<61>w w tej kategorii. Mo<4D>esz pom<6F>c nam w wyborze nowych program<61>w."
IDS_WELCOME_TITLE "Vitajte v programe Downloader syst<73>mu ReactOS"
IDS_WELCOME "Vyberte, pros<6F>m, kateg<65>riu na <20>avej strane. Toto je verzia 1.1."
IDS_NO_APP_TITLE "Nie je vybran<61><20>iadny program"
IDS_NO_APP "Vyberte, pros<6F>m, program predt<64>m ne<6E> kliknete na tla<6C>idlo stiahnu<6E>. Ak potrebujete pomoc, kliknite, pros<6F>m, na tla<6C>idlo ot<6F>znika v pravom hornom rohu."
IDS_UPDATE_TITLE "Aktualizova<76>"
IDS_UPDATE "Prep<65><70>te, ale t<>to funkcia zatia<69> nie je implementovan<61>."
IDS_HELP_TITLE "Pomocn<63>k"
IDS_HELP "Vyberte kateg<65>riu na <20>avej strane, potom vyberte program a kliknite na tla<6C>idlo stiahnu<6E>. Pre aktualiz<69>ciu inform<72>cii o programe kliknite na tla<6C>idlo ved<65>a tla<6C>idla pomoc."
IDS_NO_APPS "Prep<65><70>te, ale zatia<69> sa v tejto kateg<65>rii nenach<63>dzaj<61><20>iadne programy. M<><4D>ete pom<6F>c<EFBFBD> a prida<64> viac programov."
IDS_XMLERROR_1 "<22><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> XML !"
IDS_XMLERROR_2 "<22><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> XML !"
/C Oblicza w ilu liniach pojawi<77> si<73> szukany ci<63>g znak<61>w\n\
/I Ignoruje wielko<6B><6F> liter\n\
/N Numeruje wy<77>wietlane linie, zaczynaj<61>c od 1\n\
/V Wy<57>wietla te linie kt<6B>re nie zawieraj<61> szukanego ci<63>gu znak<61>w"
IDS_NO_SUCH_FILE, "FIND: %s: Plik nie zosta<74> znaleziony\n"
IDS_CANNOT_OPEN, "FIND: %s: Nie mo<6D>na otworzy<7A> pliku\n"
END
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.