[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