--- trunk/reactos/drivers/net/afd/afd/lock.c 2005-04-10 21:01:13 UTC (rev 14583)
+++ trunk/reactos/drivers/net/afd/afd/lock.c 2005-04-11 06:03:20 UTC (rev 14584)
@@ -59,7 +59,14 @@
_SEH_TRY {
RtlCopyMemory( NewBuf, Buf, sizeof(AFD_WSABUF) * Count );
- NewBufferLen = *AddressLen;
+ if( LockAddress ) {
+ NewBuf[Count].buf = AddressBuf;
+ NewBuf[Count].len = NewBufferLen;
+ Count++;
+ NewBuf[Count].buf = (PVOID)AddressLen;
+ NewBuf[Count].len = sizeof(*AddressLen);
+ Count++;
+ }
} _SEH_HANDLE {
AFD_DbgPrint(MIN_TRACE,("Access violation copying buffer info "
"from userland (%x %x)\n",
@@ -68,15 +75,6 @@
return NULL;
} _SEH_END;
- if( LockAddress ) {
- NewBuf[Count].buf = AddressBuf;
- NewBuf[Count].len = NewBufferLen;
- Count++;
- NewBuf[Count].buf = (PVOID)AddressLen;
- NewBuf[Count].len = sizeof(*AddressLen);
- Count++;
- }
-
for( i = 0; i < Count; i++ ) {
AFD_DbgPrint(MID_TRACE,("Locking buffer %d (%x:%d)\n",
i, NewBuf[i].buf, NewBuf[i].len));
--- trunk/reactos/drivers/net/afd/afd/read.c 2005-04-10 21:01:13 UTC (rev 14583)
+++ trunk/reactos/drivers/net/afd/afd/read.c 2005-04-11 06:03:20 UTC (rev 14584)
@@ -36,7 +36,7 @@
VOID HandleEOFOnIrp( PAFD_FCB FCB, NTSTATUS Status, UINT Information ) {
if( Status == STATUS_SUCCESS && Information == 0 ) {
AFD_DbgPrint(MID_TRACE,("Looks like an EOF\n"));
- FCB->PollState |= AFD_EVENT_CLOSE /*| AFD_EVENT_DISCONNECT */;
+ FCB->PollState |= AFD_EVENT_DISCONNECT;
PollReeval( FCB->DeviceExt, FCB->FileObject );
}
}
@@ -109,10 +109,11 @@
ReceiveComplete,
FCB );
- if( Status == STATUS_SUCCESS )
+ SocketCalloutLeave( FCB );
+
+ if( Status == STATUS_SUCCESS )
FCB->Recv.Content = FCB->ReceiveIrp.Iosb.Information;
- HandleEOFOnIrp( FCB, Status, FCB->Recv.Content );
- SocketCalloutLeave( FCB );
+ HandleEOFOnIrp( FCB, Status, FCB->ReceiveIrp.Iosb.Information );
}
}