[ros-diffs] [cgutman] 37348: - Fix protocol binding
cgutman at svn.reactos.org
cgutman at svn.reactos.org
Fri Nov 14 01:54:27 CET 2008
Author: cgutman
Date: Thu Nov 13 18:54:26 2008
New Revision: 37348
URL: http://svn.reactos.org/svn/reactos?rev=37348&view=rev
Log:
- Fix protocol binding
Modified:
branches/aicom-network-fixes/drivers/network/ndis/ndis/protocol.c
Modified: branches/aicom-network-fixes/drivers/network/ndis/ndis/protocol.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/network/ndis/ndis/protocol.c?rev=37348&r1=37347&r2=37348&view=diff
==============================================================================
--- branches/aicom-network-fixes/drivers/network/ndis/ndis/protocol.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/ndis/ndis/protocol.c [iso-8859-1] Thu Nov 13 18:54:26 2008
@@ -610,7 +610,8 @@
}
VOID
-ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protocol, IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics)
+NTAPI
+ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics)
{
/*
* bind the protocol to all of its miniports
@@ -845,13 +846,19 @@
InitializeListHead(&Protocol->AdapterListHead);
- ndisBindMiniportsToProtocol(Status, Protocol, ProtocolCharacteristics);
+ /* We must set this before the call to ndisBindMiniportsToProtocol because the protocol's
+ * BindAdapter handler might need it */
+
+ *NdisProtocolHandle = Protocol;
+
+ ndisBindMiniportsToProtocol(Status, &Protocol->Chars);
if (*Status == NDIS_STATUS_SUCCESS) {
ExInterlockedInsertTailList(&ProtocolListHead, &Protocol->ListEntry, &ProtocolListLock);
- *NdisProtocolHandle = Protocol;
- } else
+ } else {
ExFreePool(Protocol);
+ *NdisProtocolHandle = NULL;
+ }
}
@@ -970,7 +977,7 @@
PPROTOCOL_BINDING Protocol = NdisProtocolHandle;
NDIS_STATUS NdisStatus;
- ndisBindMiniportsToProtocol(&NdisStatus, Protocol, &Protocol->Chars);
+ ndisBindMiniportsToProtocol(&NdisStatus, &Protocol->Chars);
}
/* EOF */
More information about the Ros-diffs
mailing list