[ros-diffs] [cgutman] 48193: [NDIS] - Refresh the protocol bindings after a new miniport is added - Adapters added after boot work now - One step closer to Live CD networking

cgutman at svn.reactos.org cgutman at svn.reactos.org
Thu Jul 22 19:01:49 UTC 2010


Author: cgutman
Date: Thu Jul 22 19:01:49 2010
New Revision: 48193

URL: http://svn.reactos.org/svn/reactos?rev=48193&view=rev
Log:
[NDIS]
- Refresh the protocol bindings after a new miniport is added
- Adapters added after boot work now
- One step closer to Live CD networking

Modified:
    trunk/reactos/drivers/network/ndis/include/protocol.h
    trunk/reactos/drivers/network/ndis/ndis/miniport.c
    trunk/reactos/drivers/network/ndis/ndis/protocol.c

Modified: trunk/reactos/drivers/network/ndis/include/protocol.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/include/protocol.h?rev=48193&r1=48192&r2=48193&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/include/protocol.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/include/protocol.h [iso-8859-1] Thu Jul 22 19:01:49 2010
@@ -69,4 +69,8 @@
 NDIS_STATUS
 proSendPacketToMiniport(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet);
 
+VOID
+NTAPI
+ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics);
+
 /* EOF */

Modified: trunk/reactos/drivers/network/ndis/ndis/miniport.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/miniport.c?rev=48193&r1=48192&r2=48193&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/miniport.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/miniport.c [iso-8859-1] Thu Jul 22 19:01:49 2010
@@ -1778,6 +1778,8 @@
   LARGE_INTEGER Timeout;
   UINT MaxMulticastAddresses;
   ULONG BytesWritten;
+  PLIST_ENTRY CurrentEntry;
+  PPROTOCOL_BINDING ProtocolBinding;
 
   /*
    * Prepare wrapper context used by HW and configuration routines.
@@ -2055,6 +2057,17 @@
 
   /* Put adapter in adapter list for this miniport */
   ExInterlockedInsertTailList(&Adapter->NdisMiniportBlock.DriverHandle->DeviceList, &Adapter->MiniportListEntry, &Adapter->NdisMiniportBlock.DriverHandle->Lock);
+
+  /* Refresh bindings for all protocols */
+  CurrentEntry = ProtocolListHead.Flink;
+  while (CurrentEntry != &ProtocolListHead)
+  {
+      ProtocolBinding = CONTAINING_RECORD(CurrentEntry, PROTOCOL_BINDING, ListEntry);
+
+      ndisBindMiniportsToProtocol(&NdisStatus, &ProtocolBinding->Chars);
+
+      CurrentEntry = CurrentEntry->Flink;
+  }
 
   return STATUS_SUCCESS;
 }

Modified: trunk/reactos/drivers/network/ndis/ndis/protocol.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/protocol.c?rev=48193&r1=48192&r2=48193&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/protocol.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/protocol.c [iso-8859-1] Thu Jul 22 19:01:49 2010
@@ -1002,7 +1002,10 @@
         {
           BIND_HANDLER BindHandler = ProtocolCharacteristics->BindAdapterHandler;
           if(BindHandler)
+          {
             BindHandler(Status, BindContext, &DeviceName, &RegistryPath, 0);
+            NDIS_DbgPrint(MIN_TRACE, ("%wZ's BindAdapter handler returned 0x%x for %wZ\n", &ProtocolCharacteristics->Name, *Status, &DeviceName));
+          }
           else
             NDIS_DbgPrint(MIN_TRACE, ("No protocol bind handler specified\n"));
         }




More information about the Ros-diffs mailing list