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
Check if the whole pipe name fits into the return buffer. Return STATUS_BUFFER_OVERFLOW if it does not fit and copy only a part of the file name in this case.
svn path=/trunk/; revision=50474
- Implement CMP_WaitServicesAvailable().
- CM_Get_First_Log_Conf_Ex(): Create a LOG_CONF_INFO struct only if plcLogConf is not NULL.
svn path=/trunk/; revision=50461
MiAddressToPte translates a virtual address to the corresponding PTE, MiAddressToPde to the corresponding PDE. MiPteToAddress is the inverse of MiAddressToPte and translates from a PTE to the virtual address. MiPdeToAddress broke this scheme and didn't calculate the corresponding virtual adress, but the adress of the page table. Fix this inconsistency by renaming the macro to MiPdeToPte and adding a fixed MiPdeToAddress. All references fixed accordingly.
svn path=/trunk/; revision=50458