From 0ef6eb1c56c53e32c95957ce11ea1941074e6195 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 16 Jul 2011 16:57:07 +0000 Subject: [PATCH] [AFD] - Debugging overhaul svn path=/trunk/; revision=52697 --- reactos/drivers/network/afd/afd/bind.c | 4 ++-- reactos/drivers/network/afd/afd/connect.c | 19 ++++++++++++++++--- reactos/drivers/network/afd/afd/context.c | 3 +++ reactos/drivers/network/afd/afd/info.c | 9 +++++++-- reactos/drivers/network/afd/afd/listen.c | 15 ++++----------- reactos/drivers/network/afd/afd/lock.c | 6 ++++++ reactos/drivers/network/afd/afd/main.c | 23 ++++++++++++++++++++++- reactos/drivers/network/afd/afd/read.c | 18 +++++++++++++----- reactos/drivers/network/afd/afd/select.c | 3 +++ reactos/drivers/network/afd/afd/tdi.c | 7 ++++--- reactos/drivers/network/afd/afd/tdiconn.c | 4 ++++ reactos/drivers/network/afd/afd/write.c | 12 ++++++++++-- 12 files changed, 94 insertions(+), 29 deletions(-) diff --git a/reactos/drivers/network/afd/afd/bind.c b/reactos/drivers/network/afd/afd/bind.c index 91ee6e7cc04..288a4219d72 100644 --- a/reactos/drivers/network/afd/afd/bind.c +++ b/reactos/drivers/network/afd/afd/bind.c @@ -20,11 +20,11 @@ NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) { FCB->LocalAddress->Address[0].AddressType)); if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) { - AFD_DbgPrint(MID_TRACE,("Null Device\n")); + AFD_DbgPrint(MIN_TRACE,("Null Device\n")); return STATUS_NO_SUCH_DEVICE; } if( !FCB->LocalAddress ) { - AFD_DbgPrint(MID_TRACE,("No local address\n")); + AFD_DbgPrint(MIN_TRACE,("No local address\n")); return STATUS_INVALID_PARAMETER; } diff --git a/reactos/drivers/network/afd/afd/connect.c b/reactos/drivers/network/afd/afd/connect.c index 38150d066e9..af7e92e2230 100644 --- a/reactos/drivers/network/afd/afd/connect.c +++ b/reactos/drivers/network/afd/afd/connect.c @@ -23,7 +23,10 @@ AfdGetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!SocketAcquireStateLock(FCB)) return LostSocket(Irp); if (FCB->ConnectOptionsSize == 0) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0); + } ASSERT(FCB->ConnectOptions); @@ -60,7 +63,8 @@ AfdSetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, } FCB->ConnectOptions = ExAllocatePool(PagedPool, ConnectOptionsSize); - if (!FCB->ConnectOptions) return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); + if (!FCB->ConnectOptions) + return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); RtlCopyMemory(FCB->ConnectOptions, ConnectOptions, @@ -87,7 +91,10 @@ AfdSetConnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); if (BufferSize < sizeof(UINT)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0); + } if (FCB->ConnectOptions) { @@ -115,7 +122,10 @@ AfdGetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!SocketAcquireStateLock(FCB)) return LostSocket(Irp); if (FCB->ConnectDataSize == 0) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0); + } ASSERT(FCB->ConnectData); @@ -179,7 +189,10 @@ AfdSetConnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); if (BufferSize < sizeof(UINT)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0); + } if (FCB->ConnectData) { @@ -201,7 +214,7 @@ NTSTATUS WarmSocketForConnection( PAFD_FCB FCB ) { NTSTATUS Status; if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) { - AFD_DbgPrint(MID_TRACE,("Null Device\n")); + AFD_DbgPrint(MIN_TRACE,("Null Device\n")); return STATUS_NO_SUCH_DEVICE; } @@ -501,7 +514,7 @@ AfdStreamSocketConnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, break; default: - AFD_DbgPrint(MID_TRACE,("Inappropriate socket state %d for connect\n", + AFD_DbgPrint(MIN_TRACE,("Inappropriate socket state %d for connect\n", FCB->State)); break; } diff --git a/reactos/drivers/network/afd/afd/context.c b/reactos/drivers/network/afd/afd/context.c index e58398d1727..916323697cd 100644 --- a/reactos/drivers/network/afd/afd/context.c +++ b/reactos/drivers/network/afd/afd/context.c @@ -46,7 +46,10 @@ AfdGetContextSize( PDEVICE_OBJECT DeviceObject, PIRP Irp, if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp ); if (IrpSp->Parameters.DeviceIoControl.OutputBufferLength < sizeof(ULONG)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, sizeof(ULONG)); + } RtlCopyMemory(Irp->UserBuffer, &FCB->ContextSize, diff --git a/reactos/drivers/network/afd/afd/info.c b/reactos/drivers/network/afd/afd/info.c index 5b3a16e8009..4cfb89fee08 100644 --- a/reactos/drivers/network/afd/afd/info.c +++ b/reactos/drivers/network/afd/afd/info.c @@ -88,13 +88,13 @@ AfdGetInfo( PDEVICE_OBJECT DeviceObject, PIRP Irp, break; default: - AFD_DbgPrint(MID_TRACE,("Unknown info id %x\n", + AFD_DbgPrint(MIN_TRACE,("Unknown info id %x\n", InfoReq->InformationClass)); Status = STATUS_INVALID_PARAMETER; break; } } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - AFD_DbgPrint(MID_TRACE,("Exception executing GetInfo\n")); + AFD_DbgPrint(MIN_TRACE,("Exception executing GetInfo\n")); Status = STATUS_INVALID_PARAMETER; } _SEH2_END; @@ -183,6 +183,7 @@ AfdSetInfo( PDEVICE_OBJECT DeviceObject, PIRP Irp, break; } } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { + AFD_DbgPrint(MIN_TRACE,("Exception executing SetInfo\n")); Status = STATUS_INVALID_PARAMETER; } _SEH2_END; @@ -245,6 +246,7 @@ AfdGetPeerName( PDEVICE_OBJECT DeviceObject, PIRP Irp, if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp ); if (FCB->RemoteAddress == NULL || FCB->Connection.Object == NULL) { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); } @@ -279,7 +281,10 @@ AfdGetPeerName( PDEVICE_OBJECT DeviceObject, PIRP Irp, if (IrpSp->Parameters.DeviceIoControl.OutputBufferLength >= TaLengthOfTransportAddress(ConnInfo->RemoteAddress)) RtlCopyMemory(Irp->UserBuffer, ConnInfo->RemoteAddress, TaLengthOfTransportAddress(ConnInfo->RemoteAddress)); else + { Status = STATUS_BUFFER_TOO_SMALL; + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); + } } } } diff --git a/reactos/drivers/network/afd/afd/listen.c b/reactos/drivers/network/afd/afd/listen.c index 27dd572f641..ce1ceaf7b8d 100644 --- a/reactos/drivers/network/afd/afd/listen.c +++ b/reactos/drivers/network/afd/afd/listen.c @@ -62,15 +62,6 @@ static NTSTATUS SatisfyPreAccept( PIRP Irp, PAFD_TDI_OBJECT_QELT Qelt ) { IPAddr = (PTA_IP_ADDRESS)&ListenReceive->Address; - if( !IPAddr ) { - if( Irp->MdlAddress ) UnlockRequest( Irp, IoGetCurrentIrpStackLocation( Irp ) ); - Irp->IoStatus.Status = STATUS_NO_MEMORY; - Irp->IoStatus.Information = 0; - (void)IoSetCancelRoutine(Irp, NULL); - IoCompleteRequest( Irp, IO_NETWORK_INCREMENT ); - return STATUS_NO_MEMORY; - } - AFD_DbgPrint(MID_TRACE,("IPAddr->TAAddressCount %d\n", IPAddr->TAAddressCount)); AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].AddressType %d\n", @@ -236,7 +227,7 @@ NTSTATUS AfdListenSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, if( FCB->State != SOCKET_STATE_BOUND ) { Status = STATUS_INVALID_PARAMETER; - AFD_DbgPrint(MID_TRACE,("Could not listen an unbound socket\n")); + AFD_DbgPrint(MIN_TRACE,("Could not listen an unbound socket\n")); return UnlockAndMaybeComplete( FCB, Status, Irp, 0 ); } @@ -316,7 +307,7 @@ NTSTATUS AfdWaitForListen( PDEVICE_OBJECT DeviceObject, PIRP Irp, SocketStateUnlock( FCB ); return Status; } else if (FCB->NonBlocking) { - AFD_DbgPrint(MID_TRACE,("No connection ready on a non-blocking socket\n")); + AFD_DbgPrint(MIN_TRACE,("No connection ready on a non-blocking socket\n")); return UnlockAndMaybeComplete(FCB, STATUS_CANT_WAIT, Irp, 0); } else { @@ -388,6 +379,8 @@ NTSTATUS AfdAccept( PDEVICE_OBJECT DeviceObject, PIRP Irp, return Status; } } + + AFD_DbgPrint(MIN_TRACE,("No connection waiting\n")); return UnlockAndMaybeComplete( FCB, STATUS_UNSUCCESSFUL, Irp, 0 ); } diff --git a/reactos/drivers/network/afd/afd/lock.c b/reactos/drivers/network/afd/afd/lock.c index 93b41e07ab2..85441ba6cb4 100644 --- a/reactos/drivers/network/afd/afd/lock.c +++ b/reactos/drivers/network/afd/afd/lock.c @@ -48,6 +48,7 @@ PVOID LockRequest( PIRP Irp, PIO_STACK_LOCATION IrpSp ) { } _SEH2_END; if( LockFailed ) { + AFD_DbgPrint(MIN_TRACE,("Failed to lock pages\n")); IoFreeMdl( Irp->MdlAddress ); Irp->MdlAddress = NULL; return NULL; @@ -74,6 +75,7 @@ PVOID LockRequest( PIRP Irp, PIO_STACK_LOCATION IrpSp ) { } _SEH2_END; if( LockFailed ) { + AFD_DbgPrint(MIN_TRACE,("Failed to lock pages\n")); IoFreeMdl( Irp->MdlAddress ); Irp->MdlAddress = NULL; return NULL; @@ -166,6 +168,7 @@ PAFD_WSABUF LockBuffers( PAFD_WSABUF Buf, UINT Count, AFD_DbgPrint(MID_TRACE,("MmProbeAndLock finished\n")); if( LockFailed ) { + AFD_DbgPrint(MIN_TRACE,("Failed to lock pages\n")); IoFreeMdl( MapBuf[i].Mdl ); MapBuf[i].Mdl = NULL; ExFreePool( NewBuf ); @@ -227,7 +230,10 @@ PAFD_HANDLE LockHandles( PAFD_HANDLE HandleArray, UINT HandleCount ) { } if( !NT_SUCCESS(Status) ) + { + AFD_DbgPrint(MIN_TRACE,("Failed to reference handles (0x%x)\n", Status)); FileObjects[i].Handle = 0; + } } if( !NT_SUCCESS(Status) ) { diff --git a/reactos/drivers/network/afd/afd/main.c b/reactos/drivers/network/afd/afd/main.c index ab1bae17f99..bf13b79f896 100644 --- a/reactos/drivers/network/afd/afd/main.c +++ b/reactos/drivers/network/afd/afd/main.c @@ -21,7 +21,7 @@ /* See debug.h for debug/trace constants */ //DWORD DebugTraceLevel = DEBUG_ULTRA; -DWORD DebugTraceLevel = 0; +DWORD DebugTraceLevel = MIN_TRACE; #endif /* DBG */ @@ -52,7 +52,10 @@ AfdGetDisconnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!SocketAcquireStateLock(FCB)) return LostSocket(Irp); if (FCB->DisconnectOptionsSize == 0) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0); + } ASSERT(FCB->DisconnectOptions); @@ -116,7 +119,10 @@ AfdSetDisconnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); if (BufferSize < sizeof(UINT)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0); + } if (FCB->DisconnectOptions) { @@ -144,7 +150,10 @@ AfdGetDisconnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!SocketAcquireStateLock(FCB)) return LostSocket(Irp); if (FCB->DisconnectDataSize == 0) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0); + } ASSERT(FCB->DisconnectData); @@ -208,7 +217,10 @@ AfdSetDisconnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0); if (BufferSize < sizeof(UINT)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0); + } if (FCB->DisconnectData) { @@ -241,7 +253,10 @@ AfdGetTdiHandles(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (IrpSp->Parameters.DeviceIoControl.InputBufferLength < sizeof(ULONG) || IrpSp->Parameters.DeviceIoControl.OutputBufferLength < sizeof(*HandleData)) + { + AFD_DbgPrint(MIN_TRACE,("Buffer too small\n")); return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0); + } if ((*HandleFlags) & AFD_ADDRESS_HANDLE) HandleData->TdiAddressHandle = FCB->AddressFile.Handle; @@ -675,8 +690,11 @@ AfdDisconnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!(FCB->Flags & AFD_ENDPOINT_CONNECTIONLESS)) { if( !FCB->ConnectCallInfo ) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); + } if (FCB->DisconnectPending) { @@ -730,7 +748,10 @@ AfdDisconnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (!(Flags & TDI_DISCONNECT_RELEASE)) { if (!FCB->RemoteAddress) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0); + } ExFreePool(FCB->RemoteAddress); diff --git a/reactos/drivers/network/afd/afd/read.c b/reactos/drivers/network/afd/afd/read.c index cd4c6dae80f..809fd670e13 100644 --- a/reactos/drivers/network/afd/afd/read.c +++ b/reactos/drivers/network/afd/afd/read.c @@ -362,7 +362,7 @@ SatisfyPacketRecvRequest( PAFD_FCB FCB, PIRP Irp, if( DatagramRecv->Address->TAAddressCount != 1 ) { AFD_DbgPrint - (MID_TRACE, + (MIN_TRACE, ("Wierd address count %d\n", DatagramRecv->Address->TAAddressCount)); } @@ -443,7 +443,7 @@ AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if( !(FCB->Flags & AFD_ENDPOINT_CONNECTIONLESS) && FCB->State != SOCKET_STATE_CONNECTED && FCB->State != SOCKET_STATE_CONNECTING ) { - AFD_DbgPrint(MID_TRACE,("Called recv on wrong kind of socket (s%x)\n", + AFD_DbgPrint(MIN_TRACE,("Called recv on wrong kind of socket (s%x)\n", FCB->State)); return UnlockAndMaybeComplete( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); @@ -487,6 +487,8 @@ AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, FALSE ); + AFD_DbgPrint(MIN_TRACE,("Partial datagram not read\n")); + return UnlockAndMaybeComplete ( FCB, Status, Irp, Irp->IoStatus.Information ); } else { @@ -513,7 +515,7 @@ AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, ( FCB, Status, Irp, Irp->IoStatus.Information ); } } else if( (RecvReq->AfdFlags & AFD_IMMEDIATE) || (FCB->NonBlocking) ) { - AFD_DbgPrint(MID_TRACE,("Nonblocking\n")); + AFD_DbgPrint(MIN_TRACE,("Nonblocking\n")); Status = STATUS_CANT_WAIT; FCB->PollState &= ~AFD_EVENT_RECEIVE; UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, FALSE ); @@ -536,7 +538,7 @@ AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if( Status == STATUS_PENDING && ((RecvReq->AfdFlags & AFD_IMMEDIATE) || (FCB->NonBlocking)) ) { - AFD_DbgPrint(MID_TRACE,("Nonblocking\n")); + AFD_DbgPrint(MIN_TRACE,("Nonblocking\n")); Status = STATUS_CANT_WAIT; TotalBytesCopied = 0; RemoveEntryList( &Irp->Tail.Overlay.ListEntry ); @@ -660,6 +662,7 @@ PacketSocketRecvComplete( UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, CheckUnlockExtraBuffers(FCB, NextIrpSp) ); if ( NextIrp->MdlAddress ) UnlockRequest( NextIrp, IoGetCurrentIrpStackLocation( NextIrp ) ); (void)IoSetCancelRoutine(NextIrp, NULL); + AFD_DbgPrint(MIN_TRACE,("Partial datagram failed\n")); IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT ); } else { AFD_DbgPrint(MID_TRACE,("Satisfying\n")); @@ -723,8 +726,11 @@ AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, /* Check that the socket is bound */ if( FCB->State != SOCKET_STATE_BOUND ) + { + AFD_DbgPrint(MIN_TRACE,("Invalid socket state\n")); return UnlockAndMaybeComplete ( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); + } if( !(RecvReq = LockRequest( Irp, IrpSp )) ) return UnlockAndMaybeComplete ( FCB, STATUS_NO_MEMORY, Irp, 0 ); @@ -761,6 +767,8 @@ AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, FCB->PollState &= ~AFD_EVENT_RECEIVE; UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, TRUE ); + + AFD_DbgPrint(MIN_TRACE,("Partial datagram failed\n")); return UnlockAndMaybeComplete ( FCB, Status, Irp, Irp->IoStatus.Information ); @@ -788,7 +796,7 @@ AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, ( FCB, Status, Irp, Irp->IoStatus.Information ); } } else if( (RecvReq->AfdFlags & AFD_IMMEDIATE) || (FCB->NonBlocking) ) { - AFD_DbgPrint(MID_TRACE,("Nonblocking\n")); + AFD_DbgPrint(MIN_TRACE,("Nonblocking\n")); Status = STATUS_CANT_WAIT; FCB->PollState &= ~AFD_EVENT_RECEIVE; UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, TRUE ); diff --git a/reactos/drivers/network/afd/afd/select.c b/reactos/drivers/network/afd/afd/select.c index 591d66ed975..7a0cc65ea1e 100644 --- a/reactos/drivers/network/afd/afd/select.c +++ b/reactos/drivers/network/afd/afd/select.c @@ -293,7 +293,10 @@ AfdEventSelect( PDEVICE_OBJECT DeviceObject, PIRP Irp, NULL ); if( !NT_SUCCESS(Status) ) + { + AFD_DbgPrint(MIN_TRACE,("Failed reference event (0x%x)\n", Status)); FCB->EventSelect = NULL; + } else FCB->EventSelectTriggers = EventSelectInfo->Events; } else { diff --git a/reactos/drivers/network/afd/afd/tdi.c b/reactos/drivers/network/afd/afd/tdi.c index 9a18dd21bdc..cfd187a6f87 100644 --- a/reactos/drivers/network/afd/afd/tdi.c +++ b/reactos/drivers/network/afd/afd/tdi.c @@ -30,7 +30,7 @@ static VOID DisplayBuffer( return; } - AFD_DbgPrint(MIN_TRACE, ("Displaying buffer at (0x%X) Size (%d).\n", Buffer, Size)); + AFD_DbgPrint(MID_TRACE, ("Displaying buffer at (0x%X) Size (%d).\n", Buffer, Size)); p = (PCHAR)Buffer; for (i = 0; i < Size; i++) { @@ -236,6 +236,7 @@ NTSTATUS TdiQueryMaxDatagramLength( if (!NT_SUCCESS(Status)) { + AFD_DbgPrint(MIN_TRACE,("Failed to lock pages\n")); IoFreeMdl(Mdl); ExFreePool(Buffer); return Status; @@ -1005,9 +1006,9 @@ NTSTATUS TdiReceive( } _SEH2_TRY { - AFD_DbgPrint(MIN_TRACE, ("probe and lock\n")); + AFD_DbgPrint(MID_TRACE, ("probe and lock\n")); MmProbeAndLockPages(Mdl, (*Irp)->RequestorMode, IoModifyAccess); - AFD_DbgPrint(MIN_TRACE, ("probe and lock done\n")); + AFD_DbgPrint(MID_TRACE, ("probe and lock done\n")); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n")); IoFreeMdl(Mdl); diff --git a/reactos/drivers/network/afd/afd/tdiconn.c b/reactos/drivers/network/afd/afd/tdiconn.c index f7ad44267ba..e7df459230b 100644 --- a/reactos/drivers/network/afd/afd/tdiconn.c +++ b/reactos/drivers/network/afd/afd/tdiconn.c @@ -170,7 +170,10 @@ NTSTATUS TdiBuildNullConnectionInfoInPlace TdiAddressSize = TaLengthOfTransportAddressByType(Type); if (!TdiAddressSize) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return STATUS_INVALID_PARAMETER; + } RtlZeroMemory(ConnInfo, sizeof(TDI_CONNECTION_INFORMATION) + @@ -203,6 +206,7 @@ NTSTATUS TdiBuildNullConnectionInfo TdiAddressSize = TaLengthOfTransportAddressByType(Type); if (!TdiAddressSize) { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); *ConnectionInfo = NULL; return STATUS_INVALID_PARAMETER; } diff --git a/reactos/drivers/network/afd/afd/write.c b/reactos/drivers/network/afd/afd/write.c index ef01dd0a8da..d8818d18db0 100644 --- a/reactos/drivers/network/afd/afd/write.c +++ b/reactos/drivers/network/afd/afd/write.c @@ -299,8 +299,11 @@ AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, /* Check that the socket is bound */ if( FCB->State != SOCKET_STATE_BOUND || !FCB->RemoteAddress ) + { + AFD_DbgPrint(MIN_TRACE,("Invalid parameter\n")); return UnlockAndMaybeComplete( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); + } if( !(SendReq = LockRequest( Irp, IrpSp )) ) return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, Irp, 0 ); @@ -349,12 +352,14 @@ AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if (FCB->DisconnectPending && (FCB->DisconnectFlags & TDI_DISCONNECT_RELEASE)) { + AFD_DbgPrint(MIN_TRACE,("No more sends\n")); /* We're pending a send shutdown so don't accept anymore sends */ return UnlockAndMaybeComplete(FCB, STATUS_FILE_CLOSED, Irp, 0); } if (FCB->PollState & (AFD_EVENT_CLOSE | AFD_EVENT_DISCONNECT)) { + AFD_DbgPrint(MIN_TRACE,("No more sends\n")); if (FCB->PollStatus[FD_CLOSE_BIT] == STATUS_SUCCESS) { /* This is a local send shutdown or a graceful remote disconnect */ @@ -385,7 +390,7 @@ AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, if( FCB->State != SOCKET_STATE_CONNECTED ) { if( (SendReq->AfdFlags & AFD_IMMEDIATE) || (FCB->NonBlocking) ) { - AFD_DbgPrint(MID_TRACE,("Nonblocking\n")); + AFD_DbgPrint(MIN_TRACE,("Nonblocking\n")); UnlockBuffers( SendReq->BufferArray, SendReq->BufferCount, FALSE ); return UnlockAndMaybeComplete ( FCB, STATUS_CANT_WAIT, Irp, 0 ); @@ -476,7 +481,7 @@ AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, { FCB->PollState &= ~AFD_EVENT_SEND; if( (SendReq->AfdFlags & AFD_IMMEDIATE) || (FCB->NonBlocking) ) { - AFD_DbgPrint(MID_TRACE,("Nonblocking\n")); + AFD_DbgPrint(MIN_TRACE,("Nonblocking\n")); UnlockBuffers( SendReq->BufferArray, SendReq->BufferCount, FALSE ); return UnlockAndMaybeComplete ( FCB, STATUS_CANT_WAIT, Irp, 0 ); @@ -503,8 +508,11 @@ AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, /* Check that the socket is bound */ if( FCB->State != SOCKET_STATE_BOUND && FCB->State != SOCKET_STATE_CREATED) + { + AFD_DbgPrint(MIN_TRACE,("Invalid socket state\n")); return UnlockAndMaybeComplete ( FCB, STATUS_INVALID_PARAMETER, Irp, 0 ); + } if( !(SendReq = LockRequest( Irp, IrpSp )) ) return UnlockAndMaybeComplete ( FCB, STATUS_NO_MEMORY, Irp, 0 );