Stopping a NetDMA Provider

Note  The NetDMA interface is not supported in Windows 8 and later.

A NetDMA provider driver calls the NetDmaProviderStop function to notify the NetDMA interface that a dynamic memory access (DMA)- engine, which was started by calling the NetDmaProviderStart function, is no longer available. For more information about starting a NetDMA provider, see Starting a NetDMA Provider.

DMA provider drivers typically call NetDmaProviderStop while handling the IRP_MN_REMOVE_DEVICE or IRP_MN_STOP_DEVICE IRP.

The NetDMA provider driver must call NetDmaProviderStop before it deregisters a NetDMA provider. For more information about deregistering a NetDMA provider, see Deregistering a NetDMA Provider.

A NetDMA provider driver can call NetDmaProviderStop and NetDmaProviderStart as many times as the application requires after the driver registers the NetDMA provider and before it deregisters the NetDMA provider. If the DMA engine is being restarted after it calls NetDmaProviderStop, the NetDMA provider driver can specify new attributes in the NET_DMA_PROVIDER_ATTRIBUTES structure in the ProviderAttributes parameter of NetDmaProviderStart.

The NetDMA interface waits for outstanding DMA operations to complete and frees all of the allocated DMA channels before it returns from the NetDmaProviderStop function. For more information about freeing DMA channels, see Freeing a NetDMA Channel.