- RtlpInsertFreeBlockHelper: Don't validate the Previous Size of the next Heap Entry when inserting a free Heap Entry into a free list. Should solve bug #5843 and may affect bug #5857.
All callers of this function already perform this check, except for RtlpInsertFreeBlock, a function used during Heap Segment creation/expansion.
RtlpInsertFreeBlock creates multiple free Heap Entries (using the helper function) if the free space is too big to be contained in a single Heap Entry.
In such a case however, it creates a Heap Entry and calls the helper before creating the next Heap Entry, which triggers this assert.
svn path=/trunk/; revision=50617
Minor code changes to RTL (one would call them "optimisation"). Added some missing paged code.
Plus added useful asserts (used to catch r50615 bug!)
svn path=/trunk/; revision=50616
Fix a really mean bug: wcslen() returns the size in characters whereas MaximumLength has to be in bytes.
Now, this sets MaximumLength to its appropriate size and prevents some memory issues (and buffers having odd size, which is weird for an unicode string...).
svn path=/trunk/; revision=50615
SC Manager needs SC_MANAGER_ENUMERATE_SERVICE access right to be able to open a service
Add debug prints to help tracking down the "EnableUserModePnpManager()" issue
svn path=/trunk/; revision=50609
Fix buggy mechanism of pushing and popping free gdi handle slots. The old mechanism unneccessarily locked the entry and it was prone to the ABA problem as it didn't use a sequence number.
svn path=/trunk/; revision=50604
- Add i/o completion routine, which delivers the number of bytes written / read
- Close event handle, after the overlapped request has been handled.
- Audio stack no longer leaks ~ 50 event handles per second
svn path=/trunk/; revision=50600
- Oleg Baikalow: Implement basic event and delayed event support functions for CTE. Structure names are made up, but their contents should be compatible with what Windows 2003 tdi.sys uses. Formatting and coding style fixes by the committer.
svn path=/trunk/; revision=50550
- Oleg Baikalow: Don't use psdk's tdi.h but use a real tdikrnl.h (adding a _TDI_ global define so it's recognized as a tdi driver itself).
svn path=/trunk/; revision=50546
- Merge from audio branch
- Perform irp completion in dedicated function
- Move Software Bus function into own file
- Remove debugging code which caused crashes
- Partly implement IKsProcessingObject interface for filter
- Fix check in FindMatchingCreateItem function
- Implement software bus enumerator functions
[SWENUM]
- Implement SwDispatchPower, SwDispatchPower
svn path=/trunk/; revision=50531
- Merge from audio branch
- Handle mixers identified by id, not by handle
- Fix opening of mixer devices
- Waveformat struct is only provided when type is wave device
- Implement wave reset routine, fixes audio recording on ReactOS SndRec, AudaCity etc. Also fixes random hang in WinAmp when skipping audio bytes
- Implement wave pausing / restarting, should lead to smoother playback
[MMIXER]
- Merge from audio branch
- Tons of fixes to enumeration of mixerlines, controls / etc
- Fix mixer event notification callbacks
- For more info, read audio-bringup log
svn path=/trunk/; revision=50528
- Fix direct submission to Testman after the recent changes and finally change the location to "reactos.org" instead of "localhost".
Makes Rosautotest ready for running tests on our upcoming Windows Server instance.
svn path=/trunk/; revision=50502
- Only update the System Page Directory when expanding the paged pool. Fixes the PointerPde asserts.
On paged pool expansion, the system page directory and the process page directory of the calling process were updated.
When updating the process page directory, an assert made sure the PDE that got written was invalid.
In case of the System process, both page directories are located on the same physical page.
So when this process expanded the paged pool, the system page directory update automagically
updated the process page directory too. The assert therefore triggered.
Not explicitly updating the process page directory will result in a page fault later on, which is
handled by copying the required PDE from the system page directory to the process page directory.
Rumour has it this fix is incorrect because "something's wrong with the System PDE stuff". The lack
of any further info however leads to this change and explanation.
svn path=/trunk/; revision=50475