mirror of
https://github.com/reactos/reactos.git
synced 2024-06-30 09:50:07 +00:00
[AFD]
- Debugging overhaul svn path=/trunk/; revision=52697
This commit is contained in:
parent
bcb29cc08e
commit
0ef6eb1c56
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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) ) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
|
|
Loading…
Reference in a new issue