NET_DMA_PROVIDER_CHARACTERISTICS structure (netdma.h)

Note  The NetDMA interface is not supported in Windows 8 and later.
 
The NET_DMA_PROVIDER_CHARACTERISTICS structure specifies the characteristics for a NetDMA provider, including the entry points for the ProviderXxx functions.

Syntax

typedef struct _NET_DMA_PROVIDER_CHARACTERISTICS {
  UCHAR                             MajorVersion;
  UCHAR                             MinorVersion;
  USHORT                            Size;
  ULONG                             Flags;
  PDEVICE_OBJECT                    PhysicalDeviceObject;
  ULONG                             MaxDmaChannelCount;
  DMA_CHANNELS_CPU_AFFINITY_HANDLER SetDmaChannelCpuAffinity;
  DMA_CHANNEL_ALLOCATE_HANDLER      AllocateDmaChannel;
  DMA_CHANNEL_FREE_HANDLER          FreeDmaChannel;
  DMA_START_HANDLER                 StartDma;
  DMA_SUSPEND_HANDLER               SuspendDma;
  DMA_RESUME_HANDLER                ResumeDma;
  DMA_ABORT_HANDLER                 AbortDma;
  DMA_APPEND_HANDLER                AppendDma;
  DMA_RESET_HANDLER                 ResetChannel;
  UNICODE_STRING                    FriendlyName;
} NET_DMA_PROVIDER_CHARACTERISTICS, *PNET_DMA_PROVIDER_CHARACTERISTICS;

Members

MajorVersion

The major version number of the DMA provider driver.

MinorVersion

The minor version number of the DMA provider driver.

Size

The size, in bytes, of this NET_DMA_PROVIDER_CHARACTERISTICS structure. Set this member to sizeof(NET_DMA_PROVIDER_CHARACTERISTICS).

Flags

DMA provider characteristics flags. NetDMA 1.0 and 1.1 drivers set this member to zero.

NetDMA 2.0 and later drivers can use the following flags.

NET_DMA_PROVIDER_CHARACTERISTICS_DCA_SUPPORTED

The NetDMA provider supports Direct Cache Access (DCA).

PhysicalDeviceObject

The physical device object (PDO) that is associated with the DMA provider. The Plug and Play (PnP) manager supplies a pointer to the PDO at the PhysicalDeviceObject parameter to the AddDevice routine.

MaxDmaChannelCount

The maximum number of DMA channels that the DMA provider can support.

SetDmaChannelCpuAffinity

The entry point for the ProviderSetDmaChannelCpuAffinity function.

AllocateDmaChannel

The entry point for the ProviderAllocateDmaChannel function.

FreeDmaChannel

The entry point for the ProviderFreeDmaChannel function.

StartDma

The entry point for the ProviderStartDma function.

SuspendDma

The entry point for the ProviderSuspendDma function. If this function is not supported, set this member to NULL.

ResumeDma

The entry point for the ProviderResumeDma function. If this function is not supported, set this member to NULL.

AbortDma

The entry point for the ProviderAbortDma function. If this function is not supported, set this member to NULL.

AppendDma

The entry point for the ProviderAppendDma function.

ResetChannel

The entry point for the ProviderResetChannel function. If this function is not supported, set this member to NULL.

FriendlyName

A Unicode string that represents the user-readable description of the NetDMA provider driver.

Remarks

To register a DMA provider, a DMA provider driver calls the NetDmaRegisterProvider function from its AddDevice routine.

The DMA provider driver supplies a NET_DMA_PROVIDER_CHARACTERISTICS structure at the ProviderCharacteristics parameter of NetDmaRegisterProvider.

Requirements

Requirement Value
Minimum supported client Supported for NetDMA 2.0 drivers in Windows Server 2008. (Added FriendlyName member.) Supported for NetDMA 1.1 drivers in Windows Server 2008. Supported for NetDMA 1.0 drivers in Windows Server 2008 and Windows Vista.
Header netdma.h (include Netdma.h)

See also

AddDevice

NetDmaRegisterProvider

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderAppendDma

ProviderFreeDmaChannel

ProviderResetChannel

ProviderResumeDma

ProviderSetDmaChannelCpuAffinity

ProviderStartDma

ProviderSuspendDma