Starting a NetDMA Provider

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

A NetDMA provider driver initializes a dynamic memory access (DMA) engine and starts the NetDMA provider while handling the IRP_MN_START_DEVICE IRP. After the driver successfully initializes all of the DMA channels, the NetDMA provider driver calls the NetDmaProviderStart function to notify the NetDMA interface that the NetDMA provider is started and ready for use.

The NetDMA provider driver supplies a NET_DMA_PROVIDER_ATTRIBUTES structure in the ProviderAttributes parameter of NetDmaProviderStart. This attributes structure contains:

  • The major and minor hardware version numbers.

  • A vendor identifier (ID) that uniquely identifies the vendor that created the DMA engine. This ID is the vendor ID that is specified in the device's PCI configuration space. For more information about the ID, see Identifiers for PCI Devices.

  • The actual number of DMA channels that the DMA engine supports.

  • The maximum transfer size that the DMA engine supports.

  • The maximum address space that the DMA engine supports.

Before a NetDMA provider driver calls NetDmaProviderStart, it must be ready to handle all NetDMA interface requests, such as allocating DMA channels and performing DMA transfers.

DMA provider drivers call the NetDmaProviderStop function to notify the NetDMA interface that a previously started NetDMA provider is no longer available. For more information about stopping a NetDMA provider, see Stopping a NetDMA Provider.