- 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
- 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
- Implement a function to retrieve the current acquired mapping tag range of the miniport driver
- Call RevokeMappings when audio pin is stopped
svn path=/trunk/; revision=45862
- More cleanup
- Only copy audio bytes to common buffer when the audio pin is in the running state
- Only notify miniport when the audio pin is in the running state
svn path=/trunk/; revision=45860
- Remove dead code
- Disable last mapping failed status when a new mapping is inserted
- Notify IMiniportWavePciStream::MappingAvailable when a new mapping has arrived and the last one has failed
- Return STATUS_NOT_FOUND in IPortWavePciStream::GetMapping when no mapping is available
- Don't stop stream when no mapping is currently available
svn path=/trunk/; revision=45859
- Implement handling of enabling / disabling events
- Implement firing of events when certain position is reached
- Code not yet used as ks needs more work
svn path=/trunk/; revision=44074
- Add macros which are not present in the WDK
- Check return type of synchronized interrupt routine
- Use PcHandlePropertyWithTable IPortPinWavePci
- Remove IServiceSink implementation from IPortWaveRt as it is a hack
- Add a small hack to IResource list implementation as prefast doesnt find decl of NumberOfEntries
- Fix build
svn path=/trunk/; revision=43437
- Store MiniportStream & pin instance in subdevice descriptor
- Simplify irp handling code in class IIrpStream
- Rewrite CPortPinWaveCyclic code to handle property request. It now uses PcHandlePropertyWithTable, which calls the supported property request handlers via a callback. The code is now a lot cleaner as KsPropertyHandler peforms input & output length checks and also handles basic support requests
- Implement a Audio position handler for CPortPinWaveCyclic
- Use the IDmaChannel::CopyFrom when copying sound bytes from an dma buffer. Fixes recording of sound with KsStudio
- Make sure that the GUID_NULL handler only adds guid which are not already present in the guid array. Fixes duplicate entries of properties of Nodes in KsStudio
- Handle Basic Support requests in a default way when the driver doesnt provide a BasicSupport handler
svn path=/trunk/; revision=43414
- Allocate data format after successful initialization of IPinWaveCyclic
- Store Miniport Adapter in subdevice descriptor
- Implement GUID_NULL handler for topology nodes
- Implement setting / retrieving properties for topology nodes
svn path=/trunk/; revision=43258
- Only define guids for gcc
- Add missing PURE interface function definitions
- Silence debug spam
- Initialize ResourceList members
- Fix calculation when allocating new resources entries
- Fix building of portcls with msvc
svn path=/trunk/; revision=43044