[ros-diffs] [janderwald] 42156: [KS] - Implement KsAcquireDevice, KsReleaseDevice, KsTerminateDevice - Fix unimplemented tags - Use double in spec for functions taking longlong arguments [[Colin Finck]]

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu Jul 23 17:19:47 CEST 2009


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?rev=42156&r1=42155&r2=42156&view=diff
==============================================================================
--- 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.c?rev=42156&r1=42155&r2=42156&view=diff
==============================================================================
--- 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.c?rev=42156&r1=42155&r2=42156&view=diff
==============================================================================
--- 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?rev=42156&r1=42155&r2=42156&view=diff
==============================================================================
--- 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)




More information about the Ros-diffs mailing list