Author: janderwald Date: Tue Apr 21 14:02:57 2009 New Revision: 40633
URL: http://svn.reactos.org/svn/reactos?rev=40633&view=rev Log: - Implement handling a FastDeviceIoControl path (not yet used in portcls)
Modified: trunk/reactos/drivers/ksfilter/ks/misc.c
Modified: trunk/reactos/drivers/ksfilter/ks/misc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/misc.c?... ============================================================================== --- trunk/reactos/drivers/ksfilter/ks/misc.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/misc.c [iso-8859-1] Tue Apr 21 14:02:57 2009 @@ -265,6 +265,7 @@ IN ULONG OutSize, OUT PULONG BytesReturned) { + PKSIOBJECT_HEADER ObjectHeader; PDEVICE_OBJECT DeviceObject; KEVENT Event; PIRP Irp; @@ -281,6 +282,23 @@ if (!DeviceObject) return STATUS_UNSUCCESSFUL;
+ /* get object header */ + ObjectHeader = (PKSIOBJECT_HEADER)FileObject->FsContext; + /* check if there is fast device io function */ + if (ObjectHeader->DispatchTable.FastDeviceIoControl) + { + /* it is send the request */ + Status = ObjectHeader->DispatchTable.FastDeviceIoControl(FileObject, TRUE, InBuffer, InSize, OutBuffer, OutSize, IoControl, &IoStatusBlock, DeviceObject); + /* check if the request was handled */ + if (Status) + { + /* store bytes returned */ + *BytesReturned = IoStatusBlock.Information; + /* return status */ + return IoStatusBlock.Status; + } + } + /* initialize the event */ KeInitializeEvent(&Event, NotificationEvent, FALSE);