diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index bfe41237f4d..8b551db8a13 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -316,6 +316,7 @@ MiniIndicateReceivePacket( if (!LookAheadBuffer) { NDIS_DbgPrint(MIN_TRACE, ("Failed to allocate lookahead buffer!\n")); + KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); return; } @@ -2454,7 +2455,20 @@ NdisMRegisterMiniport( break; case 0x05: - MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS); + switch (MiniportCharacteristics->MinorNdisVersion) + { + case 0x00: + MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS); + break; + + case 0x01: + MinSize = sizeof(NDIS51_MINIPORT_CHARACTERISTICS); + break; + + default: + NDIS_DbgPrint(MIN_TRACE, ("Bad 5.x minor characteristics version.\n")); + return NDIS_STATUS_BAD_VERSION; + } break; default: @@ -2532,8 +2546,6 @@ NdisMRegisterMiniport( } } - /* TODO: verify NDIS5 and NDIS5.1 */ - RtlCopyMemory(&Miniport->MiniportCharacteristics, MiniportCharacteristics, MinSize); /*