- 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
- include stlport directory in set_cpp macro
- move set_cpp macro where it belongs : it's generic enough to go to CMakeMacros.cmake
svn path=/branches/cmake-bringup/; revision=49148
- 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
- add kernelmodedriver module type
- add set_cpp macro, which takes care of all c++ stuff for you
- hackfix stlport headers for c++ kernel mode modules.
- complain about explorer
- solitaire, telnet and uniata now build happily against stlport
svn path=/branches/cmake-bringup/; revision=49141