Author: janderwald Date: Thu Jul 23 17:19:46 2009 New Revision: 42156
URL: http://svn.reactos.org/svn/reactos?rev=42156&view=rev Log: [KS] - Implement KsAcquireDevice, KsReleaseDevice, KsTerminateDevice - Fix unimplemented tags - Use double in spec for functions taking longlong arguments [[Colin Finck]]
Modified: trunk/reactos/drivers/ksfilter/ks/api.c trunk/reactos/drivers/ksfilter/ks/device.c trunk/reactos/drivers/ksfilter/ks/filter.c trunk/reactos/drivers/ksfilter/ks/ks.spec
Modified: trunk/reactos/drivers/ksfilter/ks/api.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/api.c?r... ============================================================================== --- trunk/reactos/drivers/ksfilter/ks/api.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/api.c [iso-8859-1] Thu Jul 23 17:19:46 2009 @@ -1220,7 +1220,7 @@ }
/* - @unimplemented + @implemented */ KSDDKAPI VOID @@ -1228,8 +1228,64 @@ KsAcquireDevice( IN PKSDEVICE Device) { - UNIMPLEMENTED -} + IKsDevice *KsDevice; + PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)CONTAINING_RECORD(Device, KSIDEVICE_HEADER, KsDevice); + + /* get device interface*/ + KsDevice = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice; + + /* acquire device mutex */ + KsDevice->lpVtbl->AcquireDevice(KsDevice); +} + +/* + @implemented +*/ +VOID +NTAPI +KsReleaseDevice( + IN PKSDEVICE Device) +{ + IKsDevice *KsDevice; + PKSIDEVICE_HEADER DeviceHeader = (PKSIDEVICE_HEADER)CONTAINING_RECORD(Device, KSIDEVICE_HEADER, KsDevice); + + /* get device interface*/ + KsDevice = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice; + + /* release device mutex */ + KsDevice->lpVtbl->ReleaseDevice(KsDevice); +} + +/* + @implemented +*/ +KSDDKAPI +VOID +NTAPI +KsTerminateDevice( + IN PDEVICE_OBJECT DeviceObject) +{ + IKsDevice *KsDevice; + PKSIDEVICE_HEADER DeviceHeader; + PDEVICE_EXTENSION DeviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension; + + /* get device header */ + DeviceHeader = DeviceExtension->DeviceHeader; + + /* get device interface*/ + KsDevice = (IKsDevice*)&DeviceHeader->lpVtblIKsDevice; + + /* now free device header */ + KsFreeDeviceHeader((KSDEVICE_HEADER)DeviceHeader); + + /* release interface when available */ + if (KsDevice) + { + /* delete IKsDevice interface */ + KsDevice->lpVtbl->Release(KsDevice); + } +} +
/*
Modified: trunk/reactos/drivers/ksfilter/ks/device.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/device.... ============================================================================== --- trunk/reactos/drivers/ksfilter/ks/device.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/device.c [iso-8859-1] Thu Jul 23 17:19:46 2009 @@ -681,34 +681,9 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI -VOID -NTAPI -KsTerminateDevice( - IN PDEVICE_OBJECT DeviceObject) -{ - UNIMPLEMENTED -} - -/* - @implemented -*/ -VOID -NTAPI -KsReleaseDevice( - IN PKSDEVICE Device) -{ - UNIMPLEMENTED -} - - - -/* - @implemented -*/ -KSDDKAPI NTSTATUS NTAPI KsReferenceSoftwareBusObject(
Modified: trunk/reactos/drivers/ksfilter/ks/filter.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/filter.... ============================================================================== --- trunk/reactos/drivers/ksfilter/ks/filter.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/filter.c [iso-8859-1] Thu Jul 23 17:19:46 2009 @@ -926,7 +926,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI VOID @@ -938,7 +938,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI VOID @@ -950,7 +950,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI NTSTATUS @@ -965,7 +965,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI VOID @@ -978,7 +978,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI NTSTATUS @@ -993,7 +993,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI NTSTATUS @@ -1008,7 +1008,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI PKSGATE @@ -1021,7 +1021,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI ULONG @@ -1035,7 +1035,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI PKSPIN @@ -1049,7 +1049,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI VOID @@ -1063,7 +1063,7 @@ }
/* - @implemented + @unimplemented */ KSDDKAPI PKSFILTER
Modified: trunk/reactos/drivers/ksfilter/ks/ks.spec URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/ks.spec... ============================================================================== --- trunk/reactos/drivers/ksfilter/ks/ks.spec [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/ks.spec [iso-8859-1] Thu Jul 23 17:19:46 2009 @@ -153,7 +153,7 @@ @ stdcall KsPinRegisterIrpCompletionCallback(ptr ptr) @ stdcall KsPinRegisterPowerCallbacks(ptr ptr ptr) @ stdcall KsPinReleaseProcessingMutex(ptr) -;@ stdcall KsPinSetPinClockTime(ptr long) +@ stdcall KsPinSetPinClockTime(ptr double) @ stdcall KsPinSubmitFrame(ptr ptr long ptr ptr) @ stdcall KsPinSubmitFrameMdl(ptr ptr ptr ptr) @ stdcall KsProbeStreamIrp(ptr long long) @@ -184,7 +184,7 @@ @ stdcall KsServiceBusEnumCreateRequest(ptr ptr) @ stdcall KsServiceBusEnumPnpRequest(ptr ptr) @ stdcall KsSetDefaultClockState(ptr long) -;@ stdcall KsSetDefaultClockTime(ptr long) +@ stdcall KsSetDefaultClockTime(ptr double) @ stdcall KsSetDevicePnpAndBaseObject(ptr ptr ptr) @ stdcall KsSetInformationFile(ptr ptr long long) @ stdcall KsSetMajorFunctionHandler(ptr long) @@ -202,7 +202,7 @@ @ stdcall KsStreamPointerGetMdl(ptr) @ stdcall KsStreamPointerGetNextClone(ptr) @ stdcall KsStreamPointerLock(ptr) -;@ stdcall KsStreamPointerScheduleTimeout(ptr ptr longlong) +@ stdcall KsStreamPointerScheduleTimeout(ptr ptr double) @ stdcall KsStreamPointerSetStatusCode(ptr long) @ stdcall KsStreamPointerUnlock(ptr long) @ stdcall KsSynchronousIoControlDevice(ptr long long ptr long ptr long ptr)