Author: cgutman
Date: Mon Mar 23 02:28:06 2009
New Revision: 40175
URL:
http://svn.reactos.org/svn/reactos?rev=40175&view=rev
Log:
- Query MaxMulticastAddresses from the miniport
Modified:
trunk/reactos/drivers/network/ndis/ndis/miniport.c
Modified: trunk/reactos/drivers/network/ndis/ndis/miniport.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/…
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/miniport.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/miniport.c [iso-8859-1] Mon Mar 23 02:28:06
2009
@@ -1621,7 +1621,8 @@
NDIS_HANDLE ConfigHandle;
ULONG Size;
LARGE_INTEGER Timeout;
- /* FIXME - KIRQL OldIrql; */
+ UINT MaxMulticastAddresses;
+ ULONG BytesWritten;
/*
* Prepare wrapper context used by HW and configuration routines.
@@ -1806,7 +1807,17 @@
NdisStatus = DoQueries(Adapter, AddressOID);
if (NdisStatus == NDIS_STATUS_SUCCESS)
{
- Success = EthCreateFilter(32, /* FIXME: Query this from miniport. */
+ NdisStatus = MiniQueryInformation(Adapter, OID_802_3_MAXIMUM_LIST_SIZE,
sizeof(UINT),
+ &MaxMulticastAddresses, &BytesWritten);
+
+ if (NdisStatus != NDIS_STATUS_SUCCESS)
+ {
+ ExInterlockedRemoveEntryList( &Adapter->ListEntry,
&AdapterListLock );
+ NDIS_DbgPrint(MAX_TRACE, ("MiniQueryInformation failed (%x)\n",
NdisStatus));
+ return NdisStatus;
+ }
+
+ Success = EthCreateFilter(MaxMulticastAddresses,
Adapter->Address.Type.Medium802_3,
&Adapter->NdisMiniportBlock.EthDB);
if (Success)