diff --git a/reactos/drivers/network/ndis/include/efilter.h b/reactos/drivers/network/ndis/include/efilter.h index 375180a990b..96d095dc562 100644 --- a/reactos/drivers/network/ndis/include/efilter.h +++ b/reactos/drivers/network/ndis/include/efilter.h @@ -54,6 +54,11 @@ EthCreateFilter( IN PUCHAR AdapterAddress, OUT PETH_FILTER * Filter); +VOID +NTAPI +EthDeleteFilter( + IN PETH_FILTER Filter); + VOID NTAPI EthFilterDprIndicateReceive( diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index e1c6da80c1e..d762ef29966 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -1898,6 +1898,12 @@ NdisIPnPStopDevice( Adapter->NdisMiniportBlock.AllocatedResourcesTranslated = NULL; } + if (Adapter->NdisMiniportBlock.EthDB) + { + EthDeleteFilter(Adapter->NdisMiniportBlock.EthDB); + Adapter->NdisMiniportBlock.EthDB = NULL; + } + Adapter->NdisMiniportBlock.OldPnPDeviceState = Adapter->NdisMiniportBlock.PnPDeviceState; Adapter->NdisMiniportBlock.PnPDeviceState = NdisPnPDeviceStopped;