NetDmaRegisterProvider 函数 (netdma.h)

注意 不支持 NetDMA 接口

Windows 8 及更高版本。

 
NetDmaRegisterProvider 函数注册 DMA 提供程序。

语法

NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
  [in] PVOID                             ProviderContext,
  [in] PVOID                             *pNetDmaProviderHandle,
  [in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);

参数

[in] ProviderContext

指向驱动程序分配的上下文信息块的指针,该块存储有关 DMA 提供程序的信息。 NetDMA 在后续调用中将上下文信息传递给需要 DMA 提供程序上下文的 ProviderXxx 函数。

[in] pNetDmaProviderHandle

指向值的指针,该值是 NetDmaRegisterProvider 提供的用于标识 DMA 提供程序的句柄。 DMA 提供程序驱动程序将此句柄传递给需要提供程序句柄的 NetDmaXxx 函数。

[in] ProviderCharacteristics

指向 NET_DMA_PROVIDER_CHARACTERISTICS 结构,用于定义 DMA 提供程序的特征。

返回值

NetDmaRegisterProvider 可以返回以下值之一:

返回代码 说明
STATUS_SUCCESS
操作已成功完成。
STATUS_RESOURCES
由于资源不足,操作失败。
STATUS_UNSUCCESSFUL
操作因未指定的原因而失败。

注解

DMA 提供程序驱动程序调用 NetDmaRegisterProvider 函数来注册 DMA 提供程序。 DMA 提供程序驱动程序在其 AddDevice 例程中调用 NetDmaRegisterProvider

AddDevice 例程中,DMA 提供程序驱动程序调用 IoCreateDevice 函数以 (FDO) 创建功能设备对象,并将其插入设备堆栈的顶部。 然后,DMA 提供程序驱动程序调用 NetDmaRegisterProvider 来注册关联的 DMA 提供程序。

DMA 提供程序驱动程序提供 NET_DMA_PROVIDER_CHARACTERISTICSNetDmaRegisterProviderProviderCharacteristics 参数的结构。 NET_DMA_PROVIDER_CHARACTERISTICS 结构指定 NetDMA 提供程序的特征,包括 ProviderXxx 函数的入口点。

DMA 提供程序驱动程序在 NetDmaRegisterProviderProviderContext 参数处提供指向驱动程序分配的上下文信息块的指针。 此上下文区域存储有关 DMA 提供程序的信息。 NetDMA 接口在后续调用中传递上下文 信息,这些 函数需要 DMA 提供程序上下文。

当 NetDmaRegisterProvider 返回时,它将在 pNetDmaProviderHandle 参数指定的位置提供句柄。 NetDMA 接口分配此句柄来标识 DMA 提供程序。 DMA 提供程序驱动程序在对 与 DMA 提供程序关联的 NetDmaXxx 函数的所有后续调用中使用此句柄。

如果计算机支持 MSI-X,则 NetDMA 接口在 NetDmaRegisterProvider 函数的上下文中调用 DMA 提供程序驱动程序的 ProviderSetDmaChannelCpuAffinity 函数,用于为每个 DMA 通道指定中断的 CPU 相关性。

如果计算机支持 MSI-X,则 DMA 提供程序驱动程序可以在处理 时指定中断相关性 IRP_MN_FILTER_RESOURCE_REQUIREMENTS Irp。 AddDevice 例程成功返回后,即插即用 (PnP) 管理器会发送 DMA 提供程序的IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP。 DMA 提供程序驱动程序必须尝试根据 NetDMA 接口传递给 ProviderSetDmaChannelCpuAffinity 的关联参数分配 MSI-X 中断资源。

若要取消注册 DMA 提供程序,DMA 提供程序驱动程序会调用 NetDmaDeregisterProvider 函数。

要求

要求
最低受支持的客户端 支持 Windows Vista 中的 NetDMA 1.0 驱动程序。
目标平台 通用
标头 netdma.h (包括 Netdma.h)
IRQL PASSIVE_LEVEL

另请参阅

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity