Fixed wrong STATUS_BUFFER_TOO_SMALL return to documented success return in the buffer too small case. Modified: trunk/reactos/drivers/net/tcpip/tcpip/info.c Modified: trunk/reactos/drivers/net/tcpip/tcpip/main.c _____
Modified: trunk/reactos/drivers/net/tcpip/tcpip/info.c --- trunk/reactos/drivers/net/tcpip/tcpip/info.c 2005-05-12 21:46:50 UTC (rev 15252) +++ trunk/reactos/drivers/net/tcpip/tcpip/info.c 2005-05-13 02:05:15 UTC (rev 15253) @@ -16,8 +16,11 @@
PNDIS_BUFFER ClientBuf, PUINT ClientBufSize ) { UINT RememberedCBSize = *ClientBufSize; *ClientBufSize = SizeOut; + + /* The driver returns success even when it couldn't fit every available + * byte. */ if( RememberedCBSize < SizeOut ) - return TDI_BUFFER_TOO_SMALL; + return TDI_SUCCESS; else { CopyBufferToBufferChain( ClientBuf, 0, (PCHAR)DataOut, SizeOut ); return TDI_SUCCESS; @@ -88,11 +91,14 @@ Size = EntityCount * sizeof(TDIEntityID); *BufferSize = Size;
+ TI_DbgPrint(DEBUG_INFO,("BufSize: %d, NeededSize: %d\n", BufSize, Size)); + if (BufSize < Size) { TcpipReleaseSpinLock( &EntityListLock, OldIrql ); - /* The buffer is too small to contain requested data */ - return TDI_BUFFER_TOO_SMALL; + /* The buffer is too small to contain requested data, but we return + * success anyway, as we did everything we wanted. */ + return TDI_SUCCESS; }
/* Return entity list -- Copy only the TDIEntityID parts. */ _____
Modified: trunk/reactos/drivers/net/tcpip/tcpip/main.c --- trunk/reactos/drivers/net/tcpip/tcpip/main.c 2005-05-12 21:46:50 UTC (rev 15252) +++ trunk/reactos/drivers/net/tcpip/tcpip/main.c 2005-05-13 02:05:15 UTC (rev 15253) @@ -9,7 +9,7 @@
*/ #include "precomp.h"
-#define NDEBUG +//#define NDEBUG
#ifndef NDEBUG DWORD DebugTraceLevel = DEBUG_ULTRA & ~(DEBUG_LOCK | DEBUG_PBUFFER);