[ros-diffs] [hpoussin] 34154: Set callbacks sooner, as they may be called during InitializeHandler Patch by Michael Martin, martinmnet at hotmail com See issue #3355 for more details.

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Sat Jun 28 15:36:48 CEST 2008


Author: hpoussin
Date: Sat Jun 28 08:36:48 2008
New Revision: 34154

URL: http://svn.reactos.org/svn/reactos?rev=34154&view=rev
Log:
Set callbacks sooner, as they may be called during InitializeHandler
Patch by Michael Martin, martinmnet at hotmail com
See issue #3355 for more details.

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/miniport.c?rev=34154&r1=34153&r2=34154&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] Sat Jun 28 08:36:48 2008
@@ -1418,27 +1418,7 @@
     }
   NdisCloseConfiguration(ConfigHandle);
 
-  /*
-   * Call MiniportInitialize.
-   */
-
-  NDIS_DbgPrint(MID_TRACE, ("calling MiniportInitialize\n"));
-  NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.InitializeHandler)(
-    &OpenErrorStatus, &SelectedMediumIndex, &MediaArray[0],
-    MEDIA_ARRAY_SIZE, Adapter, (NDIS_HANDLE)&WrapperContext);
-
-  ZwClose(WrapperContext.RegistryHandle);
-
-  if (NdisStatus != NDIS_STATUS_SUCCESS ||
-      SelectedMediumIndex >= MEDIA_ARRAY_SIZE)
-    {
-      NDIS_DbgPrint(MIN_TRACE, ("MiniportInitialize() failed for an adapter.\n"));
-      ExInterlockedRemoveEntryList( &Adapter->ListEntry, &AdapterListLock );
-      return (NTSTATUS)NdisStatus;
-    }
-
   /* Set handlers (some NDIS macros require these) */
-
   Adapter->NdisMiniportBlock.EthRxCompleteHandler = EthFilterDprIndicateReceiveComplete;
   Adapter->NdisMiniportBlock.EthRxIndicateHandler = EthFilterDprIndicateReceive;
   Adapter->NdisMiniportBlock.SendCompleteHandler  = MiniSendComplete;
@@ -1448,6 +1428,25 @@
   Adapter->NdisMiniportBlock.PacketIndicateHandler= MiniIndicateReceivePacket;
   Adapter->NdisMiniportBlock.StatusHandler        = MiniStatus;
   Adapter->NdisMiniportBlock.StatusCompleteHandler= MiniStatusComplete;
+
+  /*
+   * Call MiniportInitialize.
+   */
+
+  NDIS_DbgPrint(MID_TRACE, ("calling MiniportInitialize\n"));
+  NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.InitializeHandler)(
+    &OpenErrorStatus, &SelectedMediumIndex, &MediaArray[0],
+    MEDIA_ARRAY_SIZE, Adapter, (NDIS_HANDLE)&WrapperContext);
+
+  ZwClose(WrapperContext.RegistryHandle);
+
+  if (NdisStatus != NDIS_STATUS_SUCCESS ||
+      SelectedMediumIndex >= MEDIA_ARRAY_SIZE)
+    {
+      NDIS_DbgPrint(MIN_TRACE, ("MiniportInitialize() failed for an adapter.\n"));
+      ExInterlockedRemoveEntryList( &Adapter->ListEntry, &AdapterListLock );
+      return (NTSTATUS)NdisStatus;
+    }
 
   Adapter->NdisMiniportBlock.MediaType = MediaArray[SelectedMediumIndex];
 



More information about the Ros-diffs mailing list