- Raise IRQL to DISPATCH_LEVEL before using KeAcquireSpinLockAtDpcLevel/KeReleaseSpinLockFromDpcLevel

svn path=/branches/aicom-network-fixes/; revision=36580
This commit is contained in:
Cameron Gutman 2008-09-28 19:58:09 +00:00
parent 1d8b2f1556
commit 1a255263e6

View file

@ -67,6 +67,7 @@ ProIndicatePacket(
{ {
UINT BufferedLength; UINT BufferedLength;
UINT PacketLength; UINT PacketLength;
KIRQL OldIrql;
NDIS_DbgPrint(MAX_TRACE, ("Called.\n")); NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
@ -76,6 +77,8 @@ ProIndicatePacket(
NdisQueryPacket(Packet, NULL, NULL, NULL, &PacketLength); NdisQueryPacket(Packet, NULL, NULL, NULL, &PacketLength);
KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
NDIS_DbgPrint(MAX_TRACE, ("acquiring miniport block lock\n")); NDIS_DbgPrint(MAX_TRACE, ("acquiring miniport block lock\n"));
KeAcquireSpinLockAtDpcLevel(&Adapter->NdisMiniportBlock.Lock); KeAcquireSpinLockAtDpcLevel(&Adapter->NdisMiniportBlock.Lock);
{ {
@ -103,6 +106,8 @@ ProIndicatePacket(
} }
KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock); KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock);
KeLowerIrql(OldIrql);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }