diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index d05f7cb332f..42e79713007 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -182,8 +182,6 @@ MiniIndicateData( AdapterBinding = CONTAINING_RECORD(CurrentEntry, ADAPTER_BINDING, AdapterListEntry); NDIS_DbgPrint(DEBUG_MINIPORT, ("AdapterBinding = %x\n", AdapterBinding)); - KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); - #ifdef DBG if(!AdapterBinding) { @@ -226,8 +224,6 @@ MiniIndicateData( LookaheadBufferSize, PacketSize); - KeAcquireSpinLock(&Adapter->NdisMiniportBlock.Lock, &OldIrql); - CurrentEntry = CurrentEntry->Flink; } } diff --git a/reactos/drivers/network/ndis/ndis/protocol.c b/reactos/drivers/network/ndis/ndis/protocol.c index 7ea8dc46b33..ef344131f33 100644 --- a/reactos/drivers/network/ndis/ndis/protocol.c +++ b/reactos/drivers/network/ndis/ndis/protocol.c @@ -67,6 +67,7 @@ ProIndicatePacket( { UINT BufferedLength; UINT PacketLength; + KIRQL OldIrql; NDIS_DbgPrint(MAX_TRACE, ("Called.\n")); @@ -76,6 +77,8 @@ ProIndicatePacket( NdisQueryPacket(Packet, NULL, NULL, NULL, &PacketLength); + KeRaiseIrql(DISPATCH_LEVEL, &OldIrql); + NDIS_DbgPrint(MAX_TRACE, ("acquiring miniport block lock\n")); KeAcquireSpinLockAtDpcLevel(&Adapter->NdisMiniportBlock.Lock); { @@ -103,6 +106,8 @@ ProIndicatePacket( } KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock); + KeLowerIrql(OldIrql); + return STATUS_SUCCESS; }