Author: cgutman
Date: Tue Sep 9 21:52:22 2008
New Revision: 36100
URL:
http://svn.reactos.org/svn/reactos?rev=36100&view=rev
Log:
- Set ContextSize when we allocate it
- Remove the context size check so we always create a new one now
- Now we succeed regardless of the current context size
Modified:
branches/aicom-network-fixes/drivers/network/afd/afd/context.c
Modified: branches/aicom-network-fixes/drivers/network/afd/afd/context.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/net…
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/context.c [iso-8859-1]
(original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/context.c [iso-8859-1] Tue Sep 9
21:52:22 2008
@@ -39,7 +39,6 @@
NTSTATUS STDCALL
AfdSetContext( PDEVICE_OBJECT DeviceObject, PIRP Irp,
PIO_STACK_LOCATION IrpSp ) {
- NTSTATUS Status = STATUS_BUFFER_TOO_SMALL;
PFILE_OBJECT FileObject = IrpSp->FileObject;
PAFD_FCB FCB = FileObject->FsContext;
@@ -47,25 +46,19 @@
if( FCB->Context ) {
ExFreePool( FCB->Context );
- FCB->Context = NULL;
+ FCB->ContextSize = 0;
}
- if( FCB->ContextSize <
- IrpSp->Parameters.DeviceIoControl.InputBufferLength ) {
- FCB->Context =
- ExAllocatePool
- ( PagedPool,
- IrpSp->Parameters.DeviceIoControl.InputBufferLength );
+ FCB->Context = ExAllocatePool( PagedPool,
+ IrpSp->Parameters.DeviceIoControl.InputBufferLength );
- if( !FCB->Context ) return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, Irp, 0,
NULL );
+ if( !FCB->Context ) return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, Irp, 0,
NULL );
- RtlCopyMemory( FCB->Context,
- IrpSp->Parameters.DeviceIoControl.Type3InputBuffer,
- IrpSp->Parameters.DeviceIoControl.InputBufferLength );
- Status = STATUS_SUCCESS;
- }
+ FCB->ContextSize = IrpSp->Parameters.DeviceIoControl.InputBufferLength;
- AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
+ RtlCopyMemory( FCB->Context,
+ IrpSp->Parameters.DeviceIoControl.Type3InputBuffer,
+ FCB->ContextSize );
- return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL );
+ return UnlockAndMaybeComplete( FCB, STATUS_SUCCESS, Irp, 0, NULL );
}