- Fixed RtlMultiByteToUnicodeN & RtlAnsiCharToUnicodeChar prototype
- Added missing paged code marker to RtlAnsiCharToUnicodeChar
- Added a small hack to RtlAnsiCharToUnicodeChar. Indeed, when it's called during second stage, it's failing due to missing NLS table.
Probably usetup that doesn't define a registry entry. And then, FreeLdr just passes null pointer.
svn path=/trunk/; revision=50836
Add a new API GetTempFile() that returns an identifier to be used for creating temporary files.
This API should be in basesrv.dll
svn path=/trunk/; revision=50835
- Add svn:eol-style native property
- Fix language id (SUBLANG_DEFAULT -> SUBLANG_NEUTRAL)
See issue #5918 for more details.
svn path=/trunk/; revision=50833
Halfplement (win32 only) ProcessWow64Information case in NtQueryInformationProcess. Patch by Samuel Serapion.
See issue #5916 for more details.
svn path=/trunk/; revision=50831
Patch by Carlo Bramini (carlo bramix at libero dot it)
- Make the text copy field a richedit control.
- Use WM_CHAR to copy the characters
- Fix definition of MSFTEDIT_CLASS for the resource compiler
See issue #5275 for more details.
svn path=/trunk/; revision=50830
- Fix a bug with node count in RtlpDphAddNewPool().
- Unprotect needed amount of memory in RtlpDphSetProtectionBeforeUse() instead of always assuming PAGE_SIZE.
- Fix an incorrect virtual block pointer calculation in RtlpPageHeapAllocate().
- Silence RtlpDphShouldAllocateInPageHeap() debug print.
- Add helpful debug prints (disabled by default).
- Some code cleanup for better readibility.
- Heap create, destroy and allocating a block from the heap work now.
svn path=/trunk/; revision=50828
NtGdiSelectBitmap. Don't exclusively lock the old bitmap. This could cause pool corruptions, when the share count reachted 0, the object was deleted and unlocked after that. Use InterlockedCompareExchange to check and exchange the new bitmaps dc. This is commented out, because it causes a lot of drawing problems. Do the referencing manually instead of calling DC_vSelectSurface. Use a shared reference instead of an exclusive lock for the new bitmap. add code for proper handling of DEFAULT_BITMAP, currently hacked due to restrictions in other parts of win32k. Fixes bug 5498 and probably a lot of other problems.
svn path=/trunk/; revision=50827
NtGdiStretchDIBitsInternal: don't call NtGdiGetDCObject and NtGdiCreateCompatibleDC with a dc locked. These cases are not harmful, but generally Nt* and Gre* should never be called with an exclusive gdi lock held. Also don't return in failure case with the dc still locked.
svn path=/trunk/; revision=50826
- Add ros specific member cExclusiveLocks to THREADINFO to track number of acquired locks
- Add functions/macros to check lock count
- Move some definitions into gdidebug.h for global use
- Fix broken GdiDbgHTIntegrityCheck
- Add pre and post syscall hook functions (unused yet)
svn path=/trunk/; revision=50824
- Fix handling of NULL lpComputerName.
- Handle lpData conversion to a wide string and make sure it's NULL terminated.
- Patch by Rafal Harabien, <rafalh1992 AT o2 DOT pl>
See issue #5926 for more details.
svn path=/trunk/; revision=50822
- Implement CM_Get_Device_Interface_AliasA, CM_Get_Device_Interface_AliasW and
CM_Get_Device_Interface_Alias_ExW.
- Add a stub for CM_Get_Device_Interface_Alias_ExA.
- Implement the obsolete functions CM_Query_Remove_SubTree[_Ex] and CM_Remove_SubTree[_Ex].
svn path=/trunk/; revision=50820
- 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=50819
- Fix combobox to show the drop down window correctly when the parent window is topmost
See issue #5705 for more details.
svn path=/trunk/; revision=50818
- No need to use ULONG when dealing with strings, USHORT is enough. This makes MSVC warnings silent.
- Fix a really nasty bug in FsRtlIsHpfsDbcsLegal()
svn path=/trunk/; revision=50817
- Implement MessageBeep and SetLogonNotifyWindow
[winlogon]
- Implement receiving notifications from win32k to play sounds of MessageBeep
svn path=/trunk/; revision=50813
Fix a bug in GDIOBJ_LockObj, that would cause a deadlock, when an object was deleted while another thread was waiting to acquire the handle lock.
svn path=/trunk/; revision=50804
Dereference all threads, when a process is terminated. Fixes ghost processes in taskmgr! Patch by Rafal Harabien, <rafalh1992 AT o2 DOT pl>
See issue #1567 for more details.
svn path=/trunk/; revision=50803
- Zero-initialize VM allocation base.
- Don't reserve VM, just commit it right away. This was a premature optimisation. Instead, retry committing a smaller amount of memory if committing all memory fails.
svn path=/trunk/; revision=50800
- Fix an inverted condition which resulted in incorrect assignment of NewElement var in RtlInsertElementGenericTableAvl().
svn path=/trunk/; revision=50784
- Various fixes: set NodeToAllocate member of the heap root so it could be used lated in AVL allocation routine, initialize the AvailableAllocation list.
- Comment out biased pointer checks for now, and fix biasing the AdjacencyEntry pointer (spotted by rafalh).
svn path=/trunk/; revision=50773
- Remove unnecessary field from TABLE_ENTRY_HEADER. Spotted by (the only in ReactOS?) user of RTL AVL tables - page heap.
svn path=/trunk/; revision=50768
- Implement allocating from the page heap along with all necessary helper routines. Some minor things are left though, so it doesn't work yet.
- Change some defines names to more meaningful/readable.
svn path=/trunk/; revision=50766
In IntEngGradientFillRect, take the translate value into account, that we need when drawing happens on an intermediate surface. Patch by Thomas Faber (ThFabba at gmx dot de)
See issue #5805 for more details.
svn path=/trunk/; revision=50764
- Connect debug page heap routines in the debug heap implementation, so they are going to be actually called now.
- Implement delayed free queue initialization and freeing.
svn path=/trunk/; revision=50734
- Use better names for validation information flags based on application verifier messages.
- Implement a simple RtlpDphReportCorruptedBlock routine which just prints the problem description for now, without any additional info.
svn path=/trunk/; revision=50730
- Implement other support locking/unlocking, handle-related routines.
- Fix RtlpDphFreeVm definition.
- Node lists related improvements: Add a function for removing a node from a free list, implement coalescing free nodes into an available list.
- Implement a non-implemented case in RtlpDphAllocateNode when there is a need to allocate more virtual memory, and fix incorrect size calculation too.
- Implement a function for validating the page heap block.
- Implement RtlpPageHeapDestroy. Now we have two exported APIs ready: heap create and heap destroy.
svn path=/trunk/; revision=50721
- Implement more support functions: coalescing a node into the list of available nodes, finding a best fitting node for a given size, growing available virtual memory amount.
svn path=/trunk/; revision=50698
- Remove gexloTrivial, it was never used
- Remove EXLATEOBJ_vInitTrivial and move the code into EXLATEOBJ_vInitialize
- Properly set XO_TABLE
- Set ppalDstDc in EXLATEOBJ_vInitXlateFromDCs
svn path=/trunk/; revision=50695
Fix initialization of XLATEOBJ, when source and dest format are equal. Patch by Thomas Faber (thfabba at gmx de)
See issue #5828 for more details.
svn path=/trunk/; revision=50694
- Implement list manipulation routines: pool list, virtual list, unused list.
- Implement node removal from an available list.
svn path=/trunk/; revision=50686
Improved * WC handling for both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression
This fixes all failing tests in kmtest
svn path=/trunk/; revision=50685
- Add missing functions.
- Add forwarders to functions that are exported by setupapi.dll.
- Mark deprecated functions.
svn path=/trunk/; revision=50682