Commit graph

66 commits

Author SHA1 Message Date
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Hermès Bélusca-Maïto 772d8095c2 The 'UNIMPLEMENTED' macro call should be followed explicitely by a semicolon.
svn path=/trunk/; revision=73724
2017-02-06 15:49:23 +00:00
Amine Khaldi 5c2f126896 [DRIVERS] Spelling fixes by Josh Soref. CORE-12286
svn path=/trunk/; revision=73226
2016-11-13 15:31:39 +00:00
Amine Khaldi 1f2d5bca91 [KS]
* Properly name the main header.
* Remove one time inclusions from the main header and put them back where they belong.
CORE-7716

svn path=/trunk/; revision=61881
2014-01-29 10:59:06 +00:00
Amine Khaldi f69493f8d8 [KS]
* Do not include debug.h into the main header.
* Remove one time inclusions from the main header and put them back where they belong.
* Move some inclusions to the main header.
* Remove inclusions and definitions that already exist in the main header.
CORE-7716

svn path=/trunk/; revision=61489
2014-01-02 11:34:12 +00:00
Pierre Schweitzer bf92cdd6d4 [KS]
Fix copy/paste error

svn path=/trunk/; revision=58712
2013-04-07 11:36:33 +00:00
Timo Kreuzer 803933e000 [KS]
Pass a PUNICODE_STRING instead of a LPWSTR (and unused BufferSize) to FindMatchingCreateItem(), make use of the Length parameter instead of trusting on NULL termination when searching for path separators.

svn path=/trunk/; revision=58065
2012-12-31 09:48:46 +00:00
Amine Khaldi ebcf61a63b [KS]
* Add a missing break. CID 13502.

svn path=/trunk/; revision=54490
2011-11-24 12:36:49 +00:00
Amine Khaldi 2817ba1e7e * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53693
2011-09-11 16:56:56 +00:00
Johannes Anderwald 2e9e41d857 [KS]
- Less spam, more information

svn path=/trunk/; revision=50542
2011-01-28 19:45:49 +00:00
Johannes Anderwald c6b26fa452 [KS]
- 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
2011-01-28 10:37:27 +00:00
Timo Kreuzer 5eb25b5c24 Create a branch for audio work
svn path=/branches/audio-bringup/; revision=49478
2010-11-05 11:04:48 +00:00
Johannes Anderwald 5876e615b5 [KS]
- 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
2010-11-03 11:16:33 +00:00
Johannes Anderwald c600a169fb [KSUSER, KS, SYSAUDIO]
- Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class
- Return correct error code in ksuser's KsCreatePin
- ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working
- All changes except ksuser change has been verified to work with VBox 3.2.10
- KS user changes not tested yet as KSStudio not working in trunk

svn path=/trunk/; revision=49428
2010-11-02 09:37:30 +00:00
Johannes Anderwald 26895c3eac [PORTCLS]
- Portcls does not need to set the size of the audio buffer for completed irps. This is done in a completion callback in wdmaud. Verified with WinXP portcls
[WDMAUD_KERNEL]
- Free allocated mdls in the io completion routine. Also free the associated stream header.
[KS]
- Replace all ms portcls hacks by one. 
- MS Portcls is now working in ReactOS (which is nice for testing audio related bugs) 

svn path=/trunk/; revision=49417
2010-11-01 22:21:24 +00:00
Johannes Anderwald 4995df02c5 - Fix mdl probe access rights
svn path=/trunk/; revision=49336
2010-10-29 00:41:06 +00:00
Johannes Anderwald 1bb04a5142 [KS]
- Perform all allocations / frees in dedicated alloc / free function

svn path=/trunk/; revision=47714
2010-06-09 14:44:46 +00:00
Johannes Anderwald 99db21ebb0 [KS]
- Fix typo
- Store object interface functions in KSBASIC_HEADER OuterUnknown
- Implement KsDeviceRegisterAdapterObject, KsRegisterAggregatedClientUnknown, KsGetOuterUnknown
- Partly implement clock property functions
- Rewrite KsValidateConnectRequest, KsPinPropertyHandler to handle KSPIN_DESCRIPTOR_EX, which is used by IKsFilter implementation
- Dispatch unsupported interface requests to the clients registered inner aggregate (device / filter factory / filter / pin)
- Rewrite filter functions which deal with KSPIN_DESCRIPTO, as the client can dynamically modify the PinDescriptors array
- Handle matching create requests which differentiate in case
- Implement pin allocator framing property handler


svn path=/trunk/; revision=46878
2010-04-15 10:07:38 +00:00
Johannes Anderwald 1528c1220d [KS]
- Return status success from unimplemented IKsClock_DispatchClose
- Implement handling of KSPROPERTY_PIN_CONSTRAINEDDATARANGES property
- Forward unhandled irps to lower device object
- Fix asserts in KspHandleDataIntersection. The function is still a grotesk hack
- Simply handling of property requests by merging filter properties into filter descriptor
- Implement KsMethodHandler, KsMethodHandlerWithAllocator, KsFastMethodHandler
- Fix a bug in KsPinGetFirstCloneStreamPointer
- Implement handling of KSPROPSETID_Topology (KspTopologyHandler)

svn path=/trunk/; revision=46794
2010-04-09 18:31:53 +00:00
Johannes Anderwald 052e7f5106 [KS]
- Silent debug traces on request of Christoph
[CMIDRIVER]
- Remove link hacks
[WDMAUD_KERNEL]
- Silent debug traces on request of Christoph
- Reference notification event when the mixer is openend
- Fix a bug in the notification handler (double free due entry not removed from list)


svn path=/trunk/; revision=44132
2009-11-13 14:13:22 +00:00
Johannes Anderwald c5fab80345 [KS]
- Fix a bug in KsCancelIo which accessed already freed memory
[PORTCLS]
- Cancel all audio stream irps when the it is used in looped stream mode. Fixes re-opening of playback / capture devices in DSound.
- Remove dead code

svn path=/trunk/; revision=43945
2009-11-04 01:54:19 +00:00
Johannes Anderwald 514a0e7f08 [KS]
- Add comment for using ms portcls in ReactOS
[WDMAUD_KERNEL]
- Handle error
[SYSAUDIO]
- Fix several bugs in the mixer handling code
- Disable kmixer untill all issues are resolved

svn path=/trunk/; revision=43879
2009-10-31 18:00:05 +00:00
Johannes Anderwald 0a8a0cd78d [KS]
- Fix a bug when canceling irps

svn path=/trunk/; revision=43344
2009-10-09 16:48:41 +00:00
Stefan Ginsberg e7e6699ae1 - Use MAXUINT, MAXULONG, MAXDWORD, MAXULONGLONG and MAXULONGLONG instead of ~0 or casting -1 to unsigned.
- bintype.c: Use INVALID_SET_FILE_POINTER instead of (DWORD)-1.
- irp.c: KsGetNodeIdFromIrp returns KSFILTER_NODE (which is -1).
- basetsd.h: Add missing MAXUINT and MAXULONGLONG.
- typedefs.h: Add MAXULONG for mkhive.
- elf.inc.h and pe.c: Remove incorrect and unneeded MAXULONG define.

svn path=/trunk/; revision=43192
2009-09-27 20:07:43 +00:00
Johannes Anderwald 502edb2c1e [KS]
- Silent debug traces
- Try fix 'Assertion 'WorkItem->List.Flink == NULL' failed at ntoskrnl\ex\work.c'

svn path=/trunk/; revision=43146
2009-09-25 17:26:33 +00:00
Johannes Anderwald c0a4a591d8 - Fix playing global thermo nuclear war in ReactOS
- Found by encoded

svn path=/trunk/; revision=43105
2009-09-21 18:11:52 +00:00
Johannes Anderwald 6fd2ea71d2 [KS]
- Store Object Header in FsContext2
- Fix allocation of create item entry in KsAllocateObjectCreateItem
- Fix de-referencing in Ks[De]ReferenceSoftwareBusObject & Ks[De]ReferenceBusObject
- Fake success in KsEnableEvent
- Check if the list empty in KspFreeEventList
- Handle GUID_NULL in KspPropertyHandler
- Return STATUS_MORE_ENTRIES if outputbuffer is too small
- Zero struct in KsRegisterWorker
[PORTCLS]
- Store dispatch context in FsContext
- Ignore return value in interrupt sync routine [[Amine Khaldi]]
- Disable assert for frame size check for now
- Free buffer only if the irp was from kernel mode(hack 2 be removed)
- remove unused includes [[Amine Khaldi]]
- Don't attempt copying an empty resource list [[Amine Khaldi]]
[WDMAUD_KERNEL]
- Check if allocation succeeded [[Amine Khaldi]]
[SYSAUDIO]
- Store dispatch context in FsContext2


svn path=/trunk/; revision=43035
2009-09-12 14:35:27 +00:00
Johannes Anderwald 0248a689e4 [KS]
- Store input buffer in Irp->AssociatedIrp.SystemBuffer
- Add check
[PORTCLS]
- Add support for DirectKs

svn path=/trunk/; revision=42837
2009-08-21 22:46:18 +00:00
Johannes Anderwald 5ad980f439 - IOCTL_KS_WRITE_STREAM passes the data in the OutputBuffer, not InputBuffer
svn path=/trunk/; revision=42834
2009-08-21 19:38:45 +00:00
Johannes Anderwald 67d71e67d5 - Remove hacks for bug 4566
svn path=/trunk/; revision=42820
2009-08-21 10:06:29 +00:00
Johannes Anderwald 35ab9f725a - Arch should learn english first before bashing gcc
svn path=/trunk/; revision=42785
2009-08-19 12:32:56 +00:00
Johannes Anderwald 9d6768ef65 - Implement KsProbeStreamIrp
- Currently commented out as gcc finds it hard to find a member in a struct

svn path=/trunk/; revision=42784
2009-08-19 12:24:28 +00:00
Johannes Anderwald d1ff4911cb - Implement KsGetFirstChild, KsGetNextSibling
- Implement IKsFilter_fnAddProcessPin, IKsFilter_fnRemoveProcessPin
- Remove old code for attaching so that it works with KsGetFirstChild
- Implement attach of filter factories to the device header
- Unimplement a few functions which were wrong
- Implement KsDispatchSpecificProperty

svn path=/trunk/; revision=42699
2009-08-15 13:45:06 +00:00
Johannes Anderwald fad9ff3860 [KS]
- Fix uninitialized return value when the list is empty
- Fix a horrible bug where the end of the list wasnt checked by the source list but the destination list 
- Found by Amine Khaldi

svn path=/trunk/; revision=42607
2009-08-11 09:20:15 +00:00
Johannes Anderwald 2abccb66e9 [KS]
- Remove a hack for sysaudio + kmixer
[PORTCLS]
- Disable assert untill stream allocator is in place
- Remove dead code
- Implement IPortPinWaveCyclic_HandleKsStream
[KMIXER]
- Remove unused code
- Implement creating the allocator
- Properly implement openening the device
[STREAM]
- Use GLOBAL as the reference string
- Setup a pin create item
[SYSAUDIO]
- Use reference string GLOBAL to open kmixer
- Use reference string GLOBAL for opening sysaudio. Will be removed once bug 4566 is resolved

svn path=/trunk/; revision=42457
2009-08-07 09:34:52 +00:00
Johannes Anderwald aae0987d13 [KS]
- Acquire Spinlock at dpc level
- Release cancel spinlock at correct level
[PORTCLS]
- Check if current partially processed irp has been cancelled and complete it in that case
- Silence debug flood

svn path=/trunk/; revision=42335
2009-08-02 12:38:08 +00:00
Johannes Anderwald 9061b8ee40 [KS]
- Implement KsQueryInformationFile
- Properly implement KsStreamIo
- Fix a desastreous bug in KsRemoveIrpFromCancelableQueue
- Implement KsMoveIrpsOnCancelableQueue
[PORTCLS]
- Switch portcls to use the provided ks irp queue function instead of the homegrown IRP_MAPPING routines. Irp queueing is now faster and consumes less memory
- Return an allocated silence buffer when there are no mappings available
- HACK-Remove: Don't pre-complete any audio buffers now anymore. If you experience audio stuttering, let me know
[SYSAUDIO, PORTCLS, KMIXER]
- FastRead / FastWrite routines must store their return values in the status block as KsStreamIo now checks these

svn path=/trunk/; revision=42334
2009-08-02 11:40:38 +00:00
Johannes Anderwald cd03260db2 - Partly Implement KsCacheMedium
- Implement KsHandleSizedListQuery
- Remove KsGetChildCreateParameter, it is not exported in NT 5.1 KS

svn path=/trunk/; revision=42303
2009-07-30 16:51:03 +00:00
Johannes Anderwald 974e0eca7e - Implement KsAcquireResetValue, KsCompletePendingRequest, KsAllocateExtraData
svn path=/trunk/; revision=42302
2009-07-30 14:20:13 +00:00
Johannes Anderwald 3aba36805e - Implement KsDeviceSetBusData, KsDeviceGetBusData, KsGetPinFromIrp
svn path=/trunk/; revision=42295
2009-07-30 06:29:24 +00:00
Johannes Anderwald dd0ab576f9 - Implement KsReferenceBusObject, KsReferenceSoftwareBusObject, KsDereferenceSoftwareBusObject, KsDereferenceBusObject
svn path=/trunk/; revision=42256
2009-07-27 18:40:50 +00:00
Stefan Ginsberg d8d66829d7 - Make ks and portcls compile under msvc
svn path=/trunk/; revision=42208
2009-07-25 14:06:06 +00:00
Johannes Anderwald 2227681545 - Add tons of stubs
- Add (existing) exported functions
- Ks mostly has now WinXP' ks exported functions

svn path=/trunk/; revision=42153
2009-07-23 13:13:45 +00:00
Johannes Anderwald 1ad4db139c - Implement KsQueryObjectAccessMask, KsQueryObjectCreateItem
- Use KSQUEUE_SPINLOCK_IRP_STORAGE macro for access the stored spin lock

svn path=/trunk/; revision=42150
2009-07-23 00:47:21 +00:00
Johannes Anderwald db1215455b - Remove old irp queue implementation
- Implement KsCancelIo, KsReleaseIrpOnCancelableQueue, KsRemoveIrpFromCancelableQueue, KsRemoveSpecificIrpFromCancelableQueue, KsAddIrpToCancelableQueue, KsCancelRoutine

svn path=/trunk/; revision=42149
2009-07-23 00:13:04 +00:00
Johannes Anderwald 3e489bf3af [KS]
- Rewrite KSCREATE_ITEM handling to support clocks, nodes, allocators. 
- Store create items in list instead of an array. Consequently, the code can be re-used for KSDEVICE_HEADER / KSOBJECT_HEADER functions. 
- Implement KsAddObjectCreateItemToObjectHeader
- Implement now KspCreate and IKsDevice_Create properly
- Implement KsGetDevice by using KSBASIC_HEADER struct which must be positioned before its object specific (PKSFILTER, PKSFILTERFACTOR, PKSPIN)
- Remove a hack from KspCreateObjectType
[PORTCLS]
- Store real dispatched object in FsContext2
- Implement a fast device i/o handler
- Increase minimum data threshold when a stream stops prematurely by 10 audio frames (port driver WaveCyclic)
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[KMIXER]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[SYSAUDIO]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.



svn path=/trunk/; revision=42143
2009-07-22 14:42:51 +00:00
Johannes Anderwald 4725a4fd9c - Rewrite KsDefaultDispatchPnp to make it actually work
- Implement KsDefaultDispatchPower, KsDefaultForwardIrp
- Return the correct device object in KsQueryDevicePnpObject
- Implement KsReadFile, KsSetInformationFile and partly KsQueryInformationFile
- Remove KspClose, KspRead, KspWrite, KspFlushBuffers, KspQuerySecurity, KspSetSecurity and all these IOCTL in KspDispatchIrp
- Rewrite KsDispatchIrp to handle IRP_MJ_CREATE & IRP_MJ_POWER, IRP_MJ_PNP for AV Stream minidrivers and forward IRP_MJ_SYSTEM_CONTROL requests to the registered pnp base object
- Unsupported IOCTLs are now completed with KsDispatchInvalidDeviceRequest (previously leaked)


svn path=/trunk/; revision=42117
2009-07-21 13:32:28 +00:00
Johannes Anderwald 764ee24fea allocators.c
- Implement IKsAllocator interface and use it in new implemented KsCreateAllocator, KsCreateDefaultAllocatorEx, KsValidateAllocatorFramingEx
api.c
- Implement KsSetDevicePnpAndBaseObject, KsQueryDevicePnpObject, KsSetTargetState, KsSetTargetDeviceObject, KsSetPowerDispatch, KsFreeDeviceHeader, KsFreeObjectHeader, KsAllocateObjectCreateItem, KsFreeObjectCreateItem, KsFreeObjectCreateItemsByContext, KsCreateDefaultSecurity
clocks.c
- Implement KsCreateClock, KsCreateDefaultClock,  partly implement KsAllocateDefaultClockEx, KsFreeDefaultClock, KsGetDefaultClockState, KsSetDefaultClockState, KsGetDefaultClockTime, KsSetDefaultClockTime
device.c
- Partly implement IKsDevice interface in order to let AVStream client devices initialize
- Implement KsInitializeDevice
- Implement registering of device interface for AVStream drivers
driver.c
- Implement KsGetDeviceForDeviceObject
- Set device flags for ks
- Store Address for client drivers device extension
filter.c
- Implement IKsFilter & IKsControl interface
- Handle KSPROPERTY requests
filterfactory.c
- Implement IKsFilterFactory interface
- Implement KsCreateFilterFactory, KsFilterFactorySetDeviceClassesState, KsFilterFactoryGetSymbolicLink, KsFilterFactoryAddCreateItem
- Add KsFilterFactoryUpdateCacheData
image.c
- Implement KsLoadResource
irp.c
- Implement KsDispatchQuerySecurity, KsDispatchSetSecurity, KsWriteFile, KsDefaultIoCompletion

svn path=/trunk/; revision=42109
2009-07-20 23:26:57 +00:00
Johannes Anderwald b046ce1926 [KS]
- The pin creation parameters are now placed right after the reference string. Handle this case in KsValidateConnectRequest
- Only store the passed create items, no need  to copy the passed create items. This is required for enabling dynamic audio devices
- Fix copying of the object class in KsAllocateObjectHeader
- Check for KSCREATE_ITEM_IRP_STORAGE flag in KsCreate
[PORTCLS]
- Reduce initial audio buffer to about 1/3 second which greatly improves performance
[SYSAUDIO]
- Remove concept of audio subdevices
- Remove imported KsCreatePin
- Replace OpenDevice loop hack

svn path=/trunk/; revision=41842
2009-07-10 15:14:56 +00:00
Johannes Anderwald 46ec0bb579 - Fix a buffer overrun
svn path=/trunk/; revision=41517
2009-06-21 21:35:40 +00:00