// netdma.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
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.
MajorVersionThe major version number of the DMA provider driver.
MinorVersionThe minor version number of the DMA provider driver.
SizeThe size, in bytes, of this NET_DMA_PROVIDER_CHARACTERISTICS structure. Set this member to sizeof(NET_DMA_PROVIDER_CHARACTERISTICS).
FlagsDMA 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.
The NetDMA provider supports Direct Cache Access (DCA).
PhysicalDeviceObjectThe 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.
MaxDmaChannelCountThe maximum number of DMA channels that the DMA provider can support.
SetDmaChannelCpuAffinityThe entry point for the ProviderSetDmaChannelCpuAffinity function.
AllocateDmaChannelThe entry point for the ProviderAllocateDmaChannel function.
FreeDmaChannelThe entry point for the ProviderFreeDmaChannel function.
StartDmaThe entry point for the ProviderStartDma function.
SuspendDmaThe entry point for the ProviderSuspendDma function. If this function is not supported, set this member to NULL.
ResumeDmaThe entry point for the ProviderResumeDma function. If this function is not supported, set this member to NULL.
AbortDmaThe entry point for the ProviderAbortDma function. If this function is not supported, set this member to NULL.
AppendDmaThe entry point for the ProviderAppendDma function.
ResetChannelThe entry point for the ProviderResetChannel function. If this function is not supported, set this member to NULL.
FriendlyNameA Unicode string that represents the user-readable description of the NetDMA provider driver.
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.
ProviderSetDmaChannelCpuAffinity