Compartir a través de


Función NetDmaRegisterProvider (netdma.h)

Nota No se admite la interfaz NetDMA

en Windows 8 y versiones posteriores.

 
La función NetDmaRegisterProvider registra un proveedor DMA.

Sintaxis

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

Parámetros

[in] ProviderContext

Puntero a un bloque de información de contexto asignada por el controlador que almacena información sobre el proveedor DMA. NetDMA pasa la información de contexto en llamadas posteriores a las funciones ProviderXxx que requerían un contexto de proveedor DMA.

[in] pNetDmaProviderHandle

Puntero a un valor que es un identificador que NetDmaRegisterProvider proporciona para identificar el proveedor DMA. El controlador del proveedor DMA pasa este identificador a las funciones De NetDmaXxx que requieren un identificador de proveedor.

[in] ProviderCharacteristics

Puntero a NET_DMA_PROVIDER_CHARACTERISTICS estructura que define las características del proveedor DMA.

Valor devuelto

NetDmaRegisterProvider puede devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_SUCCESS
La operación se ha completado correctamente.
STATUS_RESOURCES
Error en la operación debido a recursos insuficientes.
STATUS_UNSUCCESSFUL
Error en la operación por motivos no especificados.

Comentarios

Los controladores del proveedor DMA llaman a la función NetDmaRegisterProvider para registrar un proveedor DMA. Los controladores del proveedor DMA llaman a NetDmaRegisterProvider en su rutina AddDevice .

En la rutina AddDevice , el controlador del proveedor DMA llama a la función IoCreateDevice para crear un objeto de dispositivo funcional (FDO) e insertarlo en la parte superior de la pila de dispositivos. A continuación, el controlador del proveedor DMA llama a NetDmaRegisterProvider para registrar el proveedor DMA asociado.

El controlador del proveedor DMA proporciona un NET_DMA_PROVIDER_CHARACTERISTICS estructura en el parámetro ProviderCharacteristics de NetDmaRegisterProvider. La estructura NET_DMA_PROVIDER_CHARACTERISTICS especifica las características de un proveedor NetDMA, incluidos los puntos de entrada de las funciones ProviderXxx .

El controlador del proveedor DMA proporciona un puntero a un bloque de información de contexto asignada por el controlador en el parámetro ProviderContext de NetDmaRegisterProvider. Este área de contexto almacena información sobre el proveedor DMA. La interfaz NetDMA pasa la información de contexto en llamadas posteriores a funciones ProviderXxx que requieren un contexto de proveedor DMA.

Cuando NetDmaRegisterProvider devuelve, proporciona un identificador en la ubicación que especifica el parámetro pNetDmaProviderHandle . La interfaz NetDMA asigna este identificador para identificar el proveedor DMA. El controlador del proveedor DMA usa este identificador en todas las llamadas posteriores a funciones De NetDmaXxx asociadas al proveedor DMA.

Si un equipo admite MSI-X, la interfaz NetDMA, mientras que en el contexto de la función NetDmaRegisterProvider , llama al controlador del proveedor DMA. Función ProviderSetDmaChannelCpuAffinity para especificar la afinidad de CPU de la interrupción para cada canal DMA.

Si un equipo admite MSI-X, el controlador del proveedor DMA puede especificar afinidades de interrupción al controlar el IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Después de que la rutina AddDevice se devuelva correctamente, el administrador de Plug and Play (PnP) envía el IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP para el proveedor DMA. El controlador del proveedor DMA debe intentar asignar recursos de interrupción MSI-X según los parámetros de afinidad que la interfaz netDMA pasó a ProviderSetDmaChannelCpuAffinity.

Para anular el registro de un proveedor DMA, un controlador de proveedor DMA llama al Función NetDmaDeregisterProvider .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores netDMA 1.0 en Windows Vista.
Plataforma de destino Universal
Encabezado netdma.h (incluir Netdma.h)
IRQL PASSIVE_LEVEL

Consulte también

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity